瀏覽代碼

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

Mike Pall 5 年之前
父節點
當前提交
46a1b268eb
共有 1 個文件被更改,包括 2 次插入1 次删除
  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;