Commit 63eddaa6 authored by Yukihiro "Matz" Matsumoto's avatar Yukihiro "Matz" Matsumoto

Merge branch 'master' of github.com:mruby/mruby

parents 18ee842b fcd6e4a7
...@@ -134,9 +134,7 @@ mrb_irep_free(mrb_state *mrb, mrb_irep *irep) ...@@ -134,9 +134,7 @@ mrb_irep_free(mrb_state *mrb, mrb_irep *irep)
mrb_free(mrb, irep->iseq); mrb_free(mrb, irep->iseq);
for (i=0; i<irep->plen; i++) { for (i=0; i<irep->plen; i++) {
if (mrb_type(irep->pool[i]) == MRB_TT_STRING) { if (mrb_type(irep->pool[i]) == MRB_TT_STRING) {
if ((mrb_str_ptr(irep->pool[i])->flags & (MRB_STR_NOFREE|MRB_STR_EMBED)) == 0) { mrb_gc_free_str(mrb, RSTRING(irep->pool[i]));
mrb_free(mrb, RSTRING_PTR(irep->pool[i]));
}
mrb_free(mrb, mrb_obj_ptr(irep->pool[i])); mrb_free(mrb, mrb_obj_ptr(irep->pool[i]));
} }
#ifdef MRB_WORD_BOXING #ifdef MRB_WORD_BOXING
......
...@@ -796,10 +796,11 @@ mrb_str_index(mrb_state *mrb, mrb_value str, mrb_value sub, mrb_int offset) ...@@ -796,10 +796,11 @@ mrb_str_index(mrb_state *mrb, mrb_value str, mrb_value sub, mrb_int offset)
mrb_value mrb_value
mrb_str_dup(mrb_state *mrb, mrb_value str) mrb_str_dup(mrb_state *mrb, mrb_value str)
{ {
/* should return shared string */
struct RString *s = mrb_str_ptr(str); struct RString *s = mrb_str_ptr(str);
struct RString *dup = str_new(mrb, 0, 0);
return mrb_str_new(mrb, STR_PTR(s), STR_LEN(s)); str_with_class(mrb, dup, str);
return str_replace(mrb, dup, s);
} }
static mrb_value static mrb_value
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment