diff --git a/3rd/lua/lgc.c b/3rd/lua/lgc.c index 6370db74..dfe12044 100644 --- a/3rd/lua/lgc.c +++ b/3rd/lua/lgc.c @@ -733,8 +733,13 @@ static void freeobj (lua_State *L, GCObject *o) { } -#define sweepwholelist(L,p) sweeplist(L,p,MAX_LUMEM) -static GCObject **sweeplist (lua_State *L, GCObject **p, lu_mem count); +static void sweepwholelist (lua_State *L, GCObject **p) { + while (*p != NULL) { + GCObject *curr = *p; + *p = curr->next; /* remove 'curr' from list */ + freeobj(L, curr); /* erase 'curr' */ + } +} /*