summaryrefslogtreecommitdiffhomepage
path: root/src/gc.c
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2013-04-29 07:47:12 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2013-04-29 07:47:12 +0900
commita1df3fdb0c47dd8f4501c85bf1d50a70ef48ea1f (patch)
tree3124e0deaebd6faa8832e94ed7a9f30ab566daa9 /src/gc.c
parent5077f9ec8bca9bc5d8c2802d89290415ec1baea0 (diff)
downloadmruby-a1df3fdb0c47dd8f4501c85bf1d50a70ef48ea1f.tar.gz
mruby-a1df3fdb0c47dd8f4501c85bf1d50a70ef48ea1f.zip
fix mrb_string_shared memory leaks
Diffstat (limited to 'src/gc.c')
-rw-r--r--src/gc.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/src/gc.c b/src/gc.c
index fa6c6e424..9799dd4df 100644
--- a/src/gc.c
+++ b/src/gc.c
@@ -529,10 +529,7 @@ obj_free(mrb_state *mrb, struct RBasic *obj)
break;
case MRB_TT_STRING:
- if (obj->flags & MRB_STR_SHARED)
- mrb_str_decref(mrb, ((struct RString*)obj)->aux.shared);
- else if ((obj->flags & MRB_STR_STATIC) == 0)
- mrb_free(mrb, ((struct RString*)obj)->ptr);
+ mrb_gc_free_str(mrb, (struct RString*)obj);
break;
case MRB_TT_RANGE: