diff options
Diffstat (limited to 'src/lj_gc.c')
-rw-r--r-- | src/lj_gc.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/lj_gc.c b/src/lj_gc.c index 1f382ea0..646a27b2 100644 --- a/src/lj_gc.c +++ b/src/lj_gc.c | |||
@@ -67,9 +67,10 @@ static void gc_mark(global_State *g, GCobj *o) | |||
67 | gc_markobj(g, tabref(gco2ud(o)->env)); | 67 | gc_markobj(g, tabref(gco2ud(o)->env)); |
68 | if (LJ_HASBUFFER && gco2ud(o)->udtype == UDTYPE_BUFFER) { | 68 | if (LJ_HASBUFFER && gco2ud(o)->udtype == UDTYPE_BUFFER) { |
69 | SBufExt *sbx = (SBufExt *)uddata(gco2ud(o)); | 69 | SBufExt *sbx = (SBufExt *)uddata(gco2ud(o)); |
70 | if (sbufiscow(sbx) && gcref(sbx->cowref) != NULL) { | 70 | if (sbufiscow(sbx) && gcref(sbx->cowref)) |
71 | gc_markobj(g, gcref(sbx->cowref)); | 71 | gc_markobj(g, gcref(sbx->cowref)); |
72 | } | 72 | if (gcref(sbx->dict)) |
73 | gc_markobj(g, gcref(sbx->dict)); | ||
73 | } | 74 | } |
74 | } else if (LJ_UNLIKELY(gct == ~LJ_TUPVAL)) { | 75 | } else if (LJ_UNLIKELY(gct == ~LJ_TUPVAL)) { |
75 | GCupval *uv = gco2uv(o); | 76 | GCupval *uv = gco2uv(o); |