Przeglądaj źródła

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

Mike Pall 5 lat temu
rodzic
commit
46a1b268eb
1 zmienionych plików z 2 dodań i 1 usunięć
  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;