Mercurial
comparison third_party/luajit/src/lj_obj.c @ 178:94705b5986b3
[ThirdParty] Added WRK and luajit for load testing.
| author | MrJuneJune <me@mrjunejune.com> |
|---|---|
| date | Thu, 22 Jan 2026 20:10:30 -0800 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 177:24fe8ff94056 | 178:94705b5986b3 |
|---|---|
| 1 /* | |
| 2 ** Miscellaneous object handling. | |
| 3 ** Copyright (C) 2005-2023 Mike Pall. See Copyright Notice in luajit.h | |
| 4 */ | |
| 5 | |
| 6 #define lj_obj_c | |
| 7 #define LUA_CORE | |
| 8 | |
| 9 #include "lj_obj.h" | |
| 10 | |
| 11 /* Object type names. */ | |
| 12 LJ_DATADEF const char *const lj_obj_typename[] = { /* ORDER LUA_T */ | |
| 13 "no value", "nil", "boolean", "userdata", "number", "string", | |
| 14 "table", "function", "userdata", "thread", "proto", "cdata" | |
| 15 }; | |
| 16 | |
| 17 LJ_DATADEF const char *const lj_obj_itypename[] = { /* ORDER LJ_T */ | |
| 18 "nil", "boolean", "boolean", "userdata", "string", "upval", "thread", | |
| 19 "proto", "function", "trace", "cdata", "table", "userdata", "number" | |
| 20 }; | |
| 21 | |
| 22 /* Compare two objects without calling metamethods. */ | |
| 23 int LJ_FASTCALL lj_obj_equal(cTValue *o1, cTValue *o2) | |
| 24 { | |
| 25 if (itype(o1) == itype(o2)) { | |
| 26 if (tvispri(o1)) | |
| 27 return 1; | |
| 28 if (!tvisnum(o1)) | |
| 29 return gcrefeq(o1->gcr, o2->gcr); | |
| 30 } else if (!tvisnumber(o1) || !tvisnumber(o2)) { | |
| 31 return 0; | |
| 32 } | |
| 33 return numberVnum(o1) == numberVnum(o2); | |
| 34 } | |
| 35 | |
| 36 /* Return pointer to object or its object data. */ | |
| 37 const void * LJ_FASTCALL lj_obj_ptr(global_State *g, cTValue *o) | |
| 38 { | |
| 39 UNUSED(g); | |
| 40 if (tvisudata(o)) | |
| 41 return uddata(udataV(o)); | |
| 42 else if (tvislightud(o)) | |
| 43 return lightudV(g, o); | |
| 44 else if (LJ_HASFFI && tviscdata(o)) | |
| 45 return cdataptr(cdataV(o)); | |
| 46 else if (tvisgcv(o)) | |
| 47 return gcV(o); | |
| 48 else | |
| 49 return NULL; | |
| 50 } | |
| 51 |