diff options
Diffstat (limited to 'build/vc++/libs/LuaJIT-2.0.5/src/lj_obj.c')
-rw-r--r-- | build/vc++/libs/LuaJIT-2.0.5/src/lj_obj.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/build/vc++/libs/LuaJIT-2.0.5/src/lj_obj.c b/build/vc++/libs/LuaJIT-2.0.5/src/lj_obj.c new file mode 100644 index 0000000..4779d26 --- /dev/null +++ b/build/vc++/libs/LuaJIT-2.0.5/src/lj_obj.c @@ -0,0 +1,35 @@ +/* +** Miscellaneous object handling. +** Copyright (C) 2005-2017 Mike Pall. See Copyright Notice in luajit.h +*/ + +#define lj_obj_c +#define LUA_CORE + +#include "lj_obj.h" + +/* Object type names. */ +LJ_DATADEF const char *const lj_obj_typename[] = { /* ORDER LUA_T */ + "no value", "nil", "boolean", "userdata", "number", "string", + "table", "function", "userdata", "thread", "proto", "cdata" +}; + +LJ_DATADEF const char *const lj_obj_itypename[] = { /* ORDER LJ_T */ + "nil", "boolean", "boolean", "userdata", "string", "upval", "thread", + "proto", "function", "trace", "cdata", "table", "userdata", "number" +}; + +/* Compare two objects without calling metamethods. */ +int lj_obj_equal(cTValue *o1, cTValue *o2) +{ + if (itype(o1) == itype(o2)) { + if (tvispri(o1)) + return 1; + if (!tvisnum(o1)) + return gcrefeq(o1->gcr, o2->gcr); + } else if (!tvisnumber(o1) || !tvisnumber(o2)) { + return 0; + } + return numberVnum(o1) == numberVnum(o2); +} + |