diff options
Diffstat (limited to 'src/lj_gc.c')
-rw-r--r-- | src/lj_gc.c | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/src/lj_gc.c b/src/lj_gc.c index bcef576b..d8221740 100644 --- a/src/lj_gc.c +++ b/src/lj_gc.c | |||
@@ -254,8 +254,8 @@ static void gc_traverse_proto(global_State *g, GCproto *pt) | |||
254 | gc_mark_str(proto_chunkname(pt)); | 254 | gc_mark_str(proto_chunkname(pt)); |
255 | for (i = -(ptrdiff_t)pt->sizekgc; i < 0; i++) /* Mark collectable consts. */ | 255 | for (i = -(ptrdiff_t)pt->sizekgc; i < 0; i++) /* Mark collectable consts. */ |
256 | gc_markobj(g, proto_kgc(pt, i)); | 256 | gc_markobj(g, proto_kgc(pt, i)); |
257 | for (i = 0; i < (ptrdiff_t)pt->sizeuvname; i++) /* Mark upvalue names. */ | 257 | for (i = 0; i < (ptrdiff_t)pt->sizeuv; i++) /* Mark upvalue names. */ |
258 | gc_mark_str(gco2str(proto_uvname(pt, i))); | 258 | gc_mark_str(proto_uvname(pt, i)); |
259 | for (i = 0; i < (ptrdiff_t)pt->sizevarinfo; i++) /* Mark names of locals. */ | 259 | for (i = 0; i < (ptrdiff_t)pt->sizevarinfo; i++) /* Mark names of locals. */ |
260 | gc_mark_str(gco2str(gcref(proto_varinfo(pt)[i].name))); | 260 | gc_mark_str(gco2str(gcref(proto_varinfo(pt)[i].name))); |
261 | } | 261 | } |
@@ -323,13 +323,7 @@ static size_t propagatemark(global_State *g) | |||
323 | } else if (LJ_LIKELY(o->gch.gct == ~LJ_TPROTO)) { | 323 | } else if (LJ_LIKELY(o->gch.gct == ~LJ_TPROTO)) { |
324 | GCproto *pt = gco2pt(o); | 324 | GCproto *pt = gco2pt(o); |
325 | gc_traverse_proto(g, pt); | 325 | gc_traverse_proto(g, pt); |
326 | return sizeof(GCproto) + sizeof(BCIns) * pt->sizebc + | 326 | return pt->sizept; |
327 | sizeof(GCRef) * pt->sizekgc + | ||
328 | sizeof(lua_Number) * pt->sizekn + | ||
329 | sizeof(uint16_t) * pt->sizeuv + | ||
330 | sizeof(BCLine) * pt->sizelineinfo + | ||
331 | sizeof(VarInfo) * pt->sizevarinfo + | ||
332 | sizeof(GCRef) * pt->sizeuvname; | ||
333 | } else { | 327 | } else { |
334 | lua_State *th = gco2th(o); | 328 | lua_State *th = gco2th(o); |
335 | setgcrefr(th->gclist, g->gc.grayagain); | 329 | setgcrefr(th->gclist, g->gc.grayagain); |