From 3f2e21f0ea97e09cf4d6360803705b9d9281a215 Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Tue, 13 Jan 2015 15:24:22 -0200 Subject: [PATCH] Long double needs a larger LUAL_BUFFERSIZE (because 'string.format("%.99f", 1e4900)' can generate quite long strings), but otherwise buffer can be 1~2K --- luaconf.h | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/luaconf.h b/luaconf.h index 69075810..ff5dc8ef 100644 --- a/luaconf.h +++ b/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 ** See Copyright Notice in lua.h */ @@ -702,9 +702,16 @@ /* @@ 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 /* }================================================================== */