mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-02-07 23:24:09 +00:00
LJ_GC64: Set correct nil value when clearing a cdata finalizer.
Thanks to Stefan Pejic.
This commit is contained in:
parent
cc05e79181
commit
ce1ad870c3
@ -93,11 +93,13 @@ void lj_cdata_setfin(lua_State *L, GCcdata *cd, GCobj *obj, uint32_t it)
|
||||
setcdataV(L, &tmp, cd);
|
||||
lj_gc_anybarriert(L, t);
|
||||
tv = lj_tab_set(L, t, &tmp);
|
||||
setgcV(L, tv, obj, it);
|
||||
if (!tvisnil(tv))
|
||||
cd->marked |= LJ_GC_CDATA_FIN;
|
||||
else
|
||||
if (it == LJ_TNIL) {
|
||||
setnilV(tv);
|
||||
cd->marked &= ~LJ_GC_CDATA_FIN;
|
||||
} else {
|
||||
setgcV(L, tv, obj, it);
|
||||
cd->marked |= LJ_GC_CDATA_FIN;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user