You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In the case where ix->oldv is the global nilnode since the key is not in the table the following check might actually succeed in GC64 since MSize is only 32 bit.
In the case where
ix->oldv
is the global nilnode since the key is not in the table the following check might actually succeed in GC64 since MSize is only 32 bit.LuaJIT/src/lj_record.c
Lines 1451 to 1452 in 3ee3c9c
This will result in res being
TREF_NIL
andrbref > TREF_NIL
which will trigger the rollback removing the check for the nilnode.LuaJIT/src/lj_record.c
Lines 1556 to 1565 in 3ee3c9c
The following code demonstrates the issue:
The ffi is used there to find a table for which the check assumes that nilnode is in the hash array.
The result of the print is
nil
but1
is expected.This can be fixed by using GCSize instead of MSize.
Note:
t->hmask > 0
is not required as it is checked for the empty hash part shortcut a view lines above.The text was updated successfully, but these errors were encountered: