From 4f665d2469e5f278835ea388a76f95e8dadc22d1 Mon Sep 17 00:00:00 2001 From: Cloud Wu Date: Sun, 30 Aug 2015 12:13:23 +0800 Subject: [PATCH] init global string table, See issue #331 --- 3rd/lua/lua.c | 5 ++++- 3rd/lua/luac.c | 2 ++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/3rd/lua/lua.c b/3rd/lua/lua.c index 7a47582c..c6e81a55 100644 --- a/3rd/lua/lua.c +++ b/3rd/lua/lua.c @@ -18,6 +18,7 @@ #include "lauxlib.h" #include "lualib.h" +#include "lstring.h" #if !defined(LUA_PROMPT) @@ -596,7 +597,9 @@ static int pmain (lua_State *L) { int main (int argc, char **argv) { int status, result; - lua_State *L = luaL_newstate(); /* create state */ + lua_State *L; + luaS_initshr(); /* init global short string table */ + L = luaL_newstate(); /* create state */ if (L == NULL) { l_message(argv[0], "cannot create state: not enough memory"); return EXIT_FAILURE; diff --git a/3rd/lua/luac.c b/3rd/lua/luac.c index 0ff987b4..86d47518 100644 --- a/3rd/lua/luac.c +++ b/3rd/lua/luac.c @@ -21,6 +21,7 @@ #include "lobject.h" #include "lstate.h" #include "lundump.h" +#include "lstring.h" static void PrintFunction(const Proto* f, int full); #define luaU_print PrintFunction @@ -195,6 +196,7 @@ int main(int argc, char* argv[]) int i=doargs(argc,argv); argc-=i; argv+=i; if (argc<=0) usage("no input files given"); + luaS_initshr(); L=luaL_newstate(); if (L==NULL) fatal("cannot create state: not enough memory"); lua_pushcfunction(L,&pmain);