Commit e9ee9a57 authored by Nick Andrew's avatar Nick Andrew
Browse files

Remove the lobject.c:88 assertion failures



When lua assertions are enabled, normal operation results in many:

lobject.c:88: (((t1)->tt) == 4)
lobject.c:88: (((t2)->tt) == 4)
lobject.c:88: (((t1)->tt) == 4)
lobject.c:88: (((t2)->tt) == 4)
lobject.c:88: (((t1)->tt) == 4)
lobject.c:88: (((t2)->tt) == 4)

It comes from using the pvalue() macro for 3 pointer types, where
pvalue() also checks the type of pointer and complains through the
assertion where the type == 4 (TLIGHTUSERDATA).

Use the correct macro according to the type of data being compared
to eliminate this assertion error.
Signed-off-by: default avatarNick Andrew <nick@nick-andrew.net>
parent 09650c0a
...@@ -83,9 +83,11 @@ int luaO_rawequalObj (const TValue *t1, const TValue *t2) { ...@@ -83,9 +83,11 @@ int luaO_rawequalObj (const TValue *t1, const TValue *t2) {
case LUA_TBOOLEAN: case LUA_TBOOLEAN:
return bvalue(t1) == bvalue(t2); /* boolean true must be 1 !! */ return bvalue(t1) == bvalue(t2); /* boolean true must be 1 !! */
case LUA_TLIGHTUSERDATA: case LUA_TLIGHTUSERDATA:
return pvalue(t1) == pvalue(t2);
case LUA_TROTABLE: case LUA_TROTABLE:
return rvalue(t1) == rvalue(t2);
case LUA_TLIGHTFUNCTION: case LUA_TLIGHTFUNCTION:
return pvalue(t1) == pvalue(t2); return fvalue(t1) == fvalue(t2);
default: default:
lua_assert(iscollectable(t1)); lua_assert(iscollectable(t1));
return gcvalue(t1) == gcvalue(t2); return gcvalue(t1) == gcvalue(t2);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment