diff options
Diffstat (limited to 'src/lj_gc.c')
-rw-r--r-- | src/lj_gc.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/lj_gc.c b/src/lj_gc.c index 9f0ff2b6..3c1b847a 100644 --- a/src/lj_gc.c +++ b/src/lj_gc.c | |||
@@ -251,13 +251,13 @@ static void gc_traverse_proto(global_State *g, GCproto *pt) | |||
251 | } | 251 | } |
252 | #endif | 252 | #endif |
253 | /* GC during prototype creation could cause NULL fields. */ | 253 | /* GC during prototype creation could cause NULL fields. */ |
254 | if (pt->chunkname) | 254 | if (gcref(pt->chunkname)) |
255 | gc_mark_str(pt->chunkname); | 255 | gc_mark_str(proto_chunkname(pt)); |
256 | for (i = -(ptrdiff_t)pt->sizekgc; i < 0; i++) /* Mark collectable consts. */ | 256 | for (i = -(ptrdiff_t)pt->sizekgc; i < 0; i++) /* Mark collectable consts. */ |
257 | gc_markobj(g, proto_kgc(pt, i)); | 257 | gc_markobj(g, proto_kgc(pt, i)); |
258 | for (i = 0; i < (ptrdiff_t)pt->sizeuvname; i++) /* Mark upvalue names. */ | 258 | for (i = 0; i < (ptrdiff_t)pt->sizeuvname; i++) /* Mark upvalue names. */ |
259 | if (pt->uvname[i]) | 259 | if (proto_uvname(pt, i)) |
260 | gc_mark_str(pt->uvname[i]); | 260 | gc_mark_str(gco2str(proto_uvname(pt, i))); |
261 | for (i = 0; i < (ptrdiff_t)pt->sizevarinfo; i++) /* Mark names of locals. */ | 261 | for (i = 0; i < (ptrdiff_t)pt->sizevarinfo; i++) /* Mark names of locals. */ |
262 | if (pt->varinfo[i].name) | 262 | if (pt->varinfo[i].name) |
263 | gc_mark_str(pt->varinfo[i].name); | 263 | gc_mark_str(pt->varinfo[i].name); |
@@ -332,7 +332,7 @@ static size_t propagatemark(global_State *g) | |||
332 | sizeof(uint16_t) * pt->sizeuv + | 332 | sizeof(uint16_t) * pt->sizeuv + |
333 | sizeof(int32_t) * pt->sizelineinfo + | 333 | sizeof(int32_t) * pt->sizelineinfo + |
334 | sizeof(VarInfo) * pt->sizevarinfo + | 334 | sizeof(VarInfo) * pt->sizevarinfo + |
335 | sizeof(GCstr *) * pt->sizeuvname; | 335 | sizeof(GCRef) * pt->sizeuvname; |
336 | } else { | 336 | } else { |
337 | lua_State *th = gco2th(o); | 337 | lua_State *th = gco2th(o); |
338 | setgcrefr(th->gclist, g->gc.grayagain); | 338 | setgcrefr(th->gclist, g->gc.grayagain); |