summaryrefslogtreecommitdiffhomepage
path: root/src/gc.c
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2013-04-28 02:47:22 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2013-04-28 02:47:22 +0900
commit5c68195c88ed45164373b0ca435a7be2421dcc7c (patch)
treec1e56af6ca069a0625ae86a25bc24b8bb409656a /src/gc.c
parent160eb71338205813b9b9c599249b4a5e2bec4217 (diff)
downloadmruby-5c68195c88ed45164373b0ca435a7be2421dcc7c.tar.gz
mruby-5c68195c88ed45164373b0ca435a7be2421dcc7c.zip
mrb_str_new_static(): zero copy string creation
Diffstat (limited to 'src/gc.c')
-rw-r--r--src/gc.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/gc.c b/src/gc.c
index 0e9fd698c..fa6c6e424 100644
--- a/src/gc.c
+++ b/src/gc.c
@@ -531,7 +531,7 @@ obj_free(mrb_state *mrb, struct RBasic *obj)
case MRB_TT_STRING:
if (obj->flags & MRB_STR_SHARED)
mrb_str_decref(mrb, ((struct RString*)obj)->aux.shared);
- else
+ else if ((obj->flags & MRB_STR_STATIC) == 0)
mrb_free(mrb, ((struct RString*)obj)->ptr);
break;