Skip to main content

luaur_vm/functions/
dumprefs.rs

1use crate::functions::dumpref::dumpref;
2use crate::macros::gcvalue::gcvalue;
3use crate::macros::iscollectable::iscollectable;
4use crate::type_aliases::t_value::TValue;
5
6#[allow(non_snake_case)]
7pub(crate) unsafe fn dumprefs(f: *mut core::ffi::c_void, data: *mut TValue, size: usize) {
8    let mut first = true;
9
10    for i in 0..size {
11        let val_ptr = data.add(i);
12        if iscollectable!(val_ptr) {
13            if !first {
14                extern "C" {
15                    fn fputc(
16                        c: core::ffi::c_int,
17                        stream: *mut core::ffi::c_void,
18                    ) -> core::ffi::c_int;
19                }
20                fputc(',' as core::ffi::c_int, f);
21            }
22            first = false;
23
24            dumpref(f, gcvalue!(val_ptr));
25        }
26    }
27}