Skip to main content

luaur_code_gen/functions/
get_counter_data.rs

1use crate::functions::get_native_proto_exec_data_header_native_proto_exec_data_alt_b::get_native_proto_exec_data_header;
2use crate::macros::codegen_assert::CODEGEN_ASSERT;
3
4pub fn get_counter_data(
5    l: *mut crate::type_aliases::lua_state::lua_State,
6    proto: *mut luaur_vm::records::proto::Proto,
7    count: *mut usize,
8) -> *mut core::ffi::c_char {
9    let _ = l;
10
11    unsafe {
12        CODEGEN_ASSERT!(!count.is_null());
13
14        let exec_data = (*proto).execdata as *mut u32;
15        let exec_data_header = &*get_native_proto_exec_data_header(exec_data);
16
17        *count = exec_data_header.extra_data_count as usize / 4;
18        exec_data.add((*proto).sizecode as usize) as *mut core::ffi::c_char
19    }
20}
21
22#[export_name = "get_counter_data"]
23pub unsafe extern "C" fn get_counter_data_export(
24    l: *mut crate::type_aliases::lua_state::lua_State,
25    proto: *mut luaur_vm::records::proto::Proto,
26    count: *mut usize,
27) -> *mut core::ffi::c_char {
28    get_counter_data(l, proto, count)
29}