summaryrefslogtreecommitdiff
path: root/source/luametatex/source/luacore/lua54/src/lua.c
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2023-01-26 19:34:21 +0100
committerContext Git Mirror Bot <phg@phi-gamma.net>2023-01-26 19:34:21 +0100
commit83667a906d7cac842635bc5243db70f55b346562 (patch)
tree6d22734798c775c081c3aecb7f05faf590e6570b /source/luametatex/source/luacore/lua54/src/lua.c
parentb47e8c2cdeeab0bcdb1c4c32328c933f3f8599de (diff)
downloadcontext-83667a906d7cac842635bc5243db70f55b346562.tar.gz
2023-01-26 18:34:00
Diffstat (limited to 'source/luametatex/source/luacore/lua54/src/lua.c')
-rw-r--r--source/luametatex/source/luacore/lua54/src/lua.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/source/luametatex/source/luacore/lua54/src/lua.c b/source/luametatex/source/luacore/lua54/src/lua.c
index 7f7dc2b22..715430a0d 100644
--- a/source/luametatex/source/luacore/lua54/src/lua.c
+++ b/source/luametatex/source/luacore/lua54/src/lua.c
@@ -633,7 +633,8 @@ static int pmain (lua_State *L) {
}
luaL_openlibs(L); /* open standard libraries */
createargtable(L, argv, argc, script); /* create table 'arg' */
- lua_gc(L, LUA_GCGEN, 0, 0); /* GC in generational mode */
+ lua_gc(L, LUA_GCRESTART); /* start GC... */
+ lua_gc(L, LUA_GCGEN, 0, 0); /* ...in generational mode */
if (!(args & has_E)) { /* no option '-E'? */
if (handle_luainit(L) != LUA_OK) /* run LUA_INIT */
return 0; /* error running LUA_INIT */
@@ -665,6 +666,7 @@ int main (int argc, char **argv) {
l_message(argv[0], "cannot create state: not enough memory");
return EXIT_FAILURE;
}
+ lua_gc(L, LUA_GCSTOP); /* stop GC while buidling state */
lua_pushcfunction(L, &pmain); /* to call 'pmain' in protected mode */
lua_pushinteger(L, argc); /* 1st argument */
lua_pushlightuserdata(L, argv); /* 2nd argument */