Selaa lähdekoodia

Long double needs a larger LUAL_BUFFERSIZE (because
'string.format("%.99f", 1e4900)' can generate quite long strings),
but otherwise buffer can be 1~2K

Roberto Ierusalimschy 10 vuotta sitten
vanhempi
commit
3f2e21f0ea
1 muutettua tiedostoa jossa 10 lisäystä ja 3 poistoa
  1. 10 3
      luaconf.h

+ 10 - 3
luaconf.h

@@ -1,5 +1,5 @@
 /*
 /*
-** $Id: luaconf.h,v 1.237 2014/12/26 14:44:44 roberto Exp roberto $
+** $Id: luaconf.h,v 1.238 2014/12/29 13:27:55 roberto Exp roberto $
 ** Configuration file for Lua
 ** Configuration file for Lua
 ** See Copyright Notice in lua.h
 ** See Copyright Notice in lua.h
 */
 */
@@ -702,9 +702,16 @@
 
 
 /*
 /*
 @@ LUAL_BUFFERSIZE is the buffer size used by the lauxlib buffer system.
 @@ LUAL_BUFFERSIZE is the buffer size used by the lauxlib buffer system.
-** CHANGE it if it uses too much C-stack space.
+** CHANGE it if it uses too much C-stack space. (For long double,
+** 'string.format("%.99f", 1e4932)' needs ~5030 bytes, so a
+** smaller buffer would force a memory allocation for each call to
+** 'string.format'.)
 */
 */
-#define LUAL_BUFFERSIZE	((int)(0x80 * sizeof(void*) * sizeof(lua_Integer)))
+#if defined(LUA_REAL_LONGDOUBLE)
+#define LUAL_BUFFERSIZE		8192
+#else
+#define LUAL_BUFFERSIZE		(256 * (int)sizeof(lua_Integer))
+#endif
 
 
 /* }================================================================== */
 /* }================================================================== */