From cbd636e0a7ef42f950566fa2ebd6dbcc9a70bdf7 Mon Sep 17 00:00:00 2001 From: Yuichi Nishiwaki Date: Tue, 26 Nov 2013 09:00:16 -0800 Subject: [PATCH] [bugfix] do not release pic->var_tbl when a senv holding it is dead --- src/gc.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/gc.c b/src/gc.c index 5f9c32da..919bc453 100644 --- a/src/gc.c +++ b/src/gc.c @@ -424,9 +424,11 @@ gc_finalize_object(pic_state *pic, struct pic_object *obj) } case PIC_TT_SENV: { struct pic_senv *senv = (struct pic_senv *)obj; - xh_destory(senv->tbl); - if (senv->stx) - pic_free(pic, senv->stx); + if (senv->up) { + xh_destory(senv->tbl); + if (senv->stx) + pic_free(pic, senv->stx); + } break; } case PIC_TT_SYNTAX: {