Skip to main content

luaur_vm/functions/
traverseobject.rs

1use crate::macros::markobject::markobject;
2use crate::macros::markvalue::markvalue;
3use crate::records::global_state::global_State;
4use crate::records::lua_t_value::TValue;
5use crate::records::luau_object::LuauObject;
6
7#[allow(non_snake_case)]
8pub fn traverseobject(g: *mut global_State, classinst: *mut LuauObject) {
9    unsafe {
10        // markobject(g, classinst->lclass);
11        markobject!(g, (*classinst).lclass);
12
13        // for (int i = 0; i < classinst->numberofmembers; i++)
14        //     markvalue(g, &classinst->members[i]);
15        let numberofmembers = (*classinst).numberofmembers;
16        let members = (*classinst).members;
17        for i in 0..numberofmembers as usize {
18            let member_ptr = members.add(i);
19            markvalue!(g, member_ptr as *mut TValue);
20        }
21    }
22}