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}