Skip to main content

luaur_vm/functions/
currentpc.rs

1//! Node: `cxx:Function:Luau.VM:VM/src/ldebug.cpp:17:currentpc`
2//! Source: `VM/src/ldebug.cpp`
3//! Graph edges:
4//! - declared_by: source_file VM/src/ldebug.cpp
5//! - source_includes:
6//!   - includes -> source_file VM/src/ldebug.h
7//!   - includes -> source_file VM/src/lapi.h
8//!   - includes -> source_file VM/src/lfunc.h
9//!   - includes -> source_file VM/src/lmem.h
10//!   - includes -> source_file VM/src/lgc.h
11//!   - includes -> source_file VM/src/ldo.h
12//!   - includes -> source_file VM/src/lbytecode.h
13//!   - includes -> source_file VM/src/lstring.h
14//! - incoming:
15//!   - declares <- source_file VM/src/ldebug.cpp
16//!   - calls <- function currentline (VM/src/ldebug.cpp)
17//!   - calls <- function lua_getlocal (VM/src/ldebug.cpp)
18//!   - calls <- function lua_setlocal (VM/src/ldebug.cpp)
19//! - outgoing:
20//!   - calls -> macro pcRel (VM/src/ldebug.h)
21//!   - calls -> macro ci_func (VM/src/lstate.h)
22//!   - translates_to -> rust_item currentpc
23
24use crate::enums::lua_type::lua_Type;
25use crate::macros::ci_func::ci_func;
26use crate::macros::pc_rel::pcRel;
27use crate::records::call_info::CallInfo;
28use crate::type_aliases::lua_state::lua_State;
29
30pub(crate) unsafe fn currentpc(_l: *mut lua_State, ci: *mut CallInfo) -> core::ffi::c_int {
31    let cl = ci_func!(ci);
32    let lcl = core::ptr::addr_of!((*cl).inner.l).cast::<crate::records::closure::LClosure>();
33    pcRel!((*ci).savedpc, (*lcl).p)
34}