diff options
-rw-r--r-- | src/lib_ffi.c | 2 | ||||
-rw-r--r-- | src/lj_carith.c | 9 | ||||
-rw-r--r-- | src/lj_carith.h | 1 |
3 files changed, 11 insertions, 1 deletions
diff --git a/src/lib_ffi.c b/src/lib_ffi.c index f2f2ede4..83483d95 100644 --- a/src/lib_ffi.c +++ b/src/lib_ffi.c | |||
@@ -193,7 +193,7 @@ LJLIB_CF(ffi_meta___eq) LJLIB_REC(cdata_arith MM_eq) | |||
193 | 193 | ||
194 | LJLIB_CF(ffi_meta___len) LJLIB_REC(cdata_arith MM_len) | 194 | LJLIB_CF(ffi_meta___len) LJLIB_REC(cdata_arith MM_len) |
195 | { | 195 | { |
196 | return ffi_arith(L); | 196 | return lj_carith_len(L); |
197 | } | 197 | } |
198 | 198 | ||
199 | LJLIB_CF(ffi_meta___lt) LJLIB_REC(cdata_arith MM_lt) | 199 | LJLIB_CF(ffi_meta___lt) LJLIB_REC(cdata_arith MM_lt) |
diff --git a/src/lj_carith.c b/src/lj_carith.c index 6224dee6..c34596ca 100644 --- a/src/lj_carith.c +++ b/src/lj_carith.c | |||
@@ -272,6 +272,15 @@ int lj_carith_op(lua_State *L, MMS mm) | |||
272 | return lj_carith_meta(L, cts, &ca, mm); | 272 | return lj_carith_meta(L, cts, &ca, mm); |
273 | } | 273 | } |
274 | 274 | ||
275 | /* No built-in functionality for length of cdata. */ | ||
276 | int lj_carith_len(lua_State *L) | ||
277 | { | ||
278 | CTState *cts = ctype_cts(L); | ||
279 | CDArith ca; | ||
280 | carith_checkarg(L, cts, &ca); | ||
281 | return lj_carith_meta(L, cts, &ca, MM_len); | ||
282 | } | ||
283 | |||
275 | /* -- 64 bit integer arithmetic helpers ----------------------------------- */ | 284 | /* -- 64 bit integer arithmetic helpers ----------------------------------- */ |
276 | 285 | ||
277 | #if LJ_32 && LJ_HASJIT | 286 | #if LJ_32 && LJ_HASJIT |
diff --git a/src/lj_carith.h b/src/lj_carith.h index 3c155910..82fc8245 100644 --- a/src/lj_carith.h +++ b/src/lj_carith.h | |||
@@ -11,6 +11,7 @@ | |||
11 | #if LJ_HASFFI | 11 | #if LJ_HASFFI |
12 | 12 | ||
13 | LJ_FUNC int lj_carith_op(lua_State *L, MMS mm); | 13 | LJ_FUNC int lj_carith_op(lua_State *L, MMS mm); |
14 | LJ_FUNC int lj_carith_len(lua_State *L); | ||
14 | 15 | ||
15 | #if LJ_32 && LJ_HASJIT | 16 | #if LJ_32 && LJ_HASJIT |
16 | LJ_FUNC int64_t lj_carith_mul64(int64_t x, int64_t k); | 17 | LJ_FUNC int64_t lj_carith_mul64(int64_t x, int64_t k); |