From 772a5ceae56fc911a4d70b1aadd1d9eb985c1ed4 Mon Sep 17 00:00:00 2001 From: Yuichi Nishiwaki Date: Mon, 19 Jan 2015 14:09:47 +0900 Subject: [PATCH] [bugfix] pic_intern must count up reference of the return value --- extlib/benz/symbol.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/extlib/benz/symbol.c b/extlib/benz/symbol.c index 879f48ae..7acbbece 100644 --- a/extlib/benz/symbol.c +++ b/extlib/benz/symbol.c @@ -25,7 +25,9 @@ pic_intern(pic_state *pic, pic_str *str) e = xh_get_str(&pic->syms, pic_str_cstr(str)); if (e) { - return xh_val(e, pic_sym); + sym = xh_val(e, pic_sym); + pic_gc_protect(pic, pic_obj_value(sym)); + return sym; } cstr = pic_malloc(pic, pic_strlen(str) + 1);