mirror of
https://github.com/lua/lua.git
synced 2024-11-23 18:23:43 +08:00
loop of 'dostring' may never reclaim memory
This commit is contained in:
parent
426d3e43bd
commit
42224ca553
4
bugs
4
bugs
@ -255,3 +255,7 @@ Thu Feb 1 11:55:45 EDT 2001
|
||||
>> lua_pushuserdata(L, NULL) is buggy
|
||||
(by Edgar Toernig; since 4.0)
|
||||
|
||||
** ldo.c
|
||||
Fri Feb 2 14:06:40 EDT 2001
|
||||
>> «while 1 dostring[[print('hello\n')]] end» never reclaims memory
|
||||
(by Andrew Paton; since 4.0b)
|
||||
|
6
ldo.c
6
ldo.c
@ -1,5 +1,5 @@
|
||||
/*
|
||||
** $Id: ldo.c,v 1.120 2001/02/01 17:40:48 roberto Exp roberto $
|
||||
** $Id: ldo.c,v 1.121 2001/02/02 15:13:05 roberto Exp roberto $
|
||||
** Stack and Call structure of Lua
|
||||
** See Copyright Notice in lua.h
|
||||
*/
|
||||
@ -251,7 +251,9 @@ static int protectedparser (lua_State *L, ZIO *z, int bin) {
|
||||
int status;
|
||||
LUA_LOCK(L);
|
||||
p.z = z; p.bin = bin;
|
||||
luaC_checkGC(L);
|
||||
/* before parsing, give a (good) chance to GC */
|
||||
if (G(L)->nblocks/8 >= G(L)->GCthreshold/10)
|
||||
luaC_collectgarbage(L);
|
||||
old_blocks = G(L)->nblocks;
|
||||
status = luaD_runprotected(L, f_parser, &p);
|
||||
if (status == 0) {
|
||||
|
4
lgc.c
4
lgc.c
@ -1,5 +1,5 @@
|
||||
/*
|
||||
** $Id: lgc.c,v 1.84 2001/02/01 17:40:48 roberto Exp roberto $
|
||||
** $Id: lgc.c,v 1.85 2001/02/02 15:13:05 roberto Exp roberto $
|
||||
** Garbage Collector
|
||||
** See Copyright Notice in lua.h
|
||||
*/
|
||||
@ -375,7 +375,7 @@ void luaC_collect (lua_State *L, int all) {
|
||||
}
|
||||
|
||||
|
||||
static void luaC_collectgarbage (lua_State *L) {
|
||||
void luaC_collectgarbage (lua_State *L) {
|
||||
markall(L);
|
||||
invalidaterefs(G(L)); /* check unlocked references */
|
||||
luaC_collect(L, 0);
|
||||
|
3
lgc.h
3
lgc.h
@ -1,5 +1,5 @@
|
||||
/*
|
||||
** $Id: lgc.h,v 1.7 1999/11/22 13:12:07 roberto Exp roberto $
|
||||
** $Id: lgc.h,v 1.8 2000/10/02 14:47:43 roberto Exp roberto $
|
||||
** Garbage Collector
|
||||
** See Copyright Notice in lua.h
|
||||
*/
|
||||
@ -12,6 +12,7 @@
|
||||
|
||||
|
||||
void luaC_collect (lua_State *L, int all);
|
||||
void luaC_collectgarbage (lua_State *L);
|
||||
void luaC_checkGC (lua_State *L);
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user