Explorar o código

Add stricter check for print() vs. tostring() shortcut.

Mike Pall %!s(int64=5) %!d(string=hai) anos
pai
achega
46a1b268eb
Modificáronse 1 ficheiros con 2 adicións e 1 borrados
  1. 2 1
      src/lib_base.c

+ 2 - 1
src/lib_base.c

@@ -504,7 +504,8 @@ LJLIB_CF(print)
     lua_gettable(L, LUA_GLOBALSINDEX);
     tv = L->top-1;
   }
-  shortcut = (tvisfunc(tv) && funcV(tv)->c.ffid == FF_tostring);
+  shortcut = (tvisfunc(tv) && funcV(tv)->c.ffid == FF_tostring)
+              && !gcrefu(basemt_it(G(L), LJ_TNUMX));
   for (i = 0; i < nargs; i++) {
     const char *str;
     size_t size;