diff options
Diffstat (limited to 'src/lj_api.c')
-rw-r--r-- | src/lj_api.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/lj_api.c b/src/lj_api.c index 827ab42f..b93df344 100644 --- a/src/lj_api.c +++ b/src/lj_api.c | |||
@@ -197,9 +197,9 @@ LUA_API int lua_type(lua_State *L, int idx) | |||
197 | } else { /* Magic internal/external tag conversion. ORDER LJ_T */ | 197 | } else { /* Magic internal/external tag conversion. ORDER LJ_T */ |
198 | uint32_t t = ~itype(o); | 198 | uint32_t t = ~itype(o); |
199 | #if LJ_64 | 199 | #if LJ_64 |
200 | int tt = (int)((U64x(7506,98042110) >> 4*t) & 15u); | 200 | int tt = (int)((U64x(75a06,98042110) >> 4*t) & 15u); |
201 | #else | 201 | #else |
202 | int tt = (int)(((t < 8 ? 0x98042110 : 0x7506) >> 4*(t&7)) & 15u); | 202 | int tt = (int)(((t < 8 ? 0x98042110u : 0x75a06u) >> 4*(t&7)) & 15u); |
203 | #endif | 203 | #endif |
204 | lua_assert(tt != LUA_TNIL || tvisnil(o)); | 204 | lua_assert(tt != LUA_TNIL || tvisnil(o)); |
205 | return tt; | 205 | return tt; |
@@ -525,6 +525,8 @@ LUA_API const void *lua_topointer(lua_State *L, int idx) | |||
525 | return uddata(udataV(o)); | 525 | return uddata(udataV(o)); |
526 | else if (tvislightud(o)) | 526 | else if (tvislightud(o)) |
527 | return lightudV(o); | 527 | return lightudV(o); |
528 | else if (tviscdata(o)) | ||
529 | return cdataptr(cdataV(o)); | ||
528 | else if (tvisgcv(o)) | 530 | else if (tvisgcv(o)) |
529 | return gcV(o); | 531 | return gcV(o); |
530 | else | 532 | else |