|
@@ -265,7 +265,7 @@ int lj_carith_op(lua_State *L, MMS mm)
|
|
{
|
|
{
|
|
CTState *cts = ctype_cts(L);
|
|
CTState *cts = ctype_cts(L);
|
|
CDArith ca;
|
|
CDArith ca;
|
|
- if (carith_checkarg(L, cts, &ca)) {
|
|
|
|
|
|
+ if (carith_checkarg(L, cts, &ca) && mm != MM_len && mm != MM_concat) {
|
|
if (carith_int64(L, cts, &ca, mm) || carith_ptr(L, cts, &ca, mm)) {
|
|
if (carith_int64(L, cts, &ca, mm) || carith_ptr(L, cts, &ca, mm)) {
|
|
copyTV(L, &G(L)->tmptv2, L->top-1); /* Remember for trace recorder. */
|
|
copyTV(L, &G(L)->tmptv2, L->top-1); /* Remember for trace recorder. */
|
|
return 1;
|
|
return 1;
|
|
@@ -274,15 +274,6 @@ int lj_carith_op(lua_State *L, MMS mm)
|
|
return lj_carith_meta(L, cts, &ca, mm);
|
|
return lj_carith_meta(L, cts, &ca, mm);
|
|
}
|
|
}
|
|
|
|
|
|
-/* No built-in functionality for length of cdata. */
|
|
|
|
-int lj_carith_len(lua_State *L)
|
|
|
|
-{
|
|
|
|
- CTState *cts = ctype_cts(L);
|
|
|
|
- CDArith ca;
|
|
|
|
- carith_checkarg(L, cts, &ca);
|
|
|
|
- return lj_carith_meta(L, cts, &ca, MM_len);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
/* -- 64 bit bit operations helpers --------------------------------------- */
|
|
/* -- 64 bit bit operations helpers --------------------------------------- */
|
|
|
|
|
|
#if LJ_64
|
|
#if LJ_64
|