diff options
Diffstat (limited to '')
-rw-r--r-- | src/lj_gc.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/lj_gc.c b/src/lj_gc.c index 9cabdef0..69e78706 100644 --- a/src/lj_gc.c +++ b/src/lj_gc.c | |||
@@ -604,12 +604,11 @@ void lj_gc_finalize_cdata(lua_State *L) | |||
604 | /* Free all remaining GC objects. */ | 604 | /* Free all remaining GC objects. */ |
605 | void lj_gc_freeall(global_State *g) | 605 | void lj_gc_freeall(global_State *g) |
606 | { | 606 | { |
607 | MSize i, strmask; | 607 | MSize i; |
608 | /* Free everything, except super-fixed objects (the main thread). */ | 608 | /* Free everything, except super-fixed objects (the main thread). */ |
609 | g->gc.currentwhite = LJ_GC_WHITES | LJ_GC_SFIXED; | 609 | g->gc.currentwhite = LJ_GC_WHITES | LJ_GC_SFIXED; |
610 | gc_fullsweep(g, &g->gc.root); | 610 | gc_fullsweep(g, &g->gc.root); |
611 | strmask = g->str.mask; | 611 | for (i = g->str.mask; i != ~(MSize)0; i--) /* Free all string hash chains. */ |
612 | for (i = 0; i <= strmask; i++) /* Free all string hash chains. */ | ||
613 | gc_sweepstr(g, &g->str.tab[i]); | 612 | gc_sweepstr(g, &g->str.tab[i]); |
614 | } | 613 | } |
615 | 614 | ||