* Push the pointer as DF object ref using metatable on the stack. */
| 166 | * Push the pointer as DF object ref using metatable on the stack. |
| 167 | */ |
| 168 | void LuaWrapper::push_object_ref(lua_State *state, void *ptr) |
| 169 | { |
| 170 | // stack: [metatable] |
| 171 | void* stg = lua_newuserdata(state, sizeof(DFRefHeader)); |
| 172 | new (stg) DFRefHeader |
| 173 | { |
| 174 | .ptr = ptr, |
| 175 | .field_info = NULL, |
| 176 | .tag_ptr = NULL, |
| 177 | .tag_identity = NULL, |
| 178 | .tag_attr = NULL, |
| 179 | }; |
| 180 | |
| 181 | lua_swap(state); |
| 182 | lua_setmetatable(state, -2); |
| 183 | // stack: [userdata] |
| 184 | } |
| 185 | |
| 186 | DFRefHeader *LuaWrapper::get_object_ref_header(lua_State *state, int val_index) |
| 187 | { |
nothing calls this directly
no test coverage detected