From e4529c065dfcd844dbea11ba3822af7528393450 Mon Sep 17 00:00:00 2001 From: Yukihiro Matsumoto Date: Sun, 3 Jun 2012 23:05:31 +0900 Subject: make arrays to share bodies --- src/gc.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/gc.c') diff --git a/src/gc.c b/src/gc.c index b269ecfb4..b7c08de65 100644 --- a/src/gc.c +++ b/src/gc.c @@ -457,7 +457,10 @@ obj_free(mrb_state *mrb, struct RBasic *obj) break; case MRB_TT_ARRAY: - mrb_free(mrb, ((struct RArray*)obj)->buf); + if (obj->flags & MRB_ARY_SHARED) + mrb_ary_decref(mrb, ((struct RArray*)obj)->aux.shared); + else + mrb_free(mrb, ((struct RArray*)obj)->buf); break; case MRB_TT_HASH: -- cgit v1.2.3