irep->pool not to be GCed

This commit is contained in:
Yukihiro "Matz" Matsumoto
2013-11-07 04:20:46 +09:00
parent e92d4e2680
commit 677a2ac226
8 changed files with 88 additions and 114 deletions
-28
View File
@@ -331,34 +331,6 @@ str_make_shared(mrb_state *mrb, struct RString *s)
}
}
/*
* call-seq: (Caution! string literal)
* String.new(str="") => new_str
*
* Returns a new string object containing a copy of <i>str</i>.
*/
mrb_value
mrb_str_literal(mrb_state *mrb, mrb_value str)
{
struct RString *s, *orig;
mrb_shared_string *shared;
s = mrb_obj_alloc_string(mrb);
orig = mrb_str_ptr(str);
if (!(orig->flags & MRB_STR_SHARED)) {
str_make_shared(mrb, orig);
}
shared = orig->aux.shared;
shared->refcnt++;
s->ptr = shared->ptr;
s->len = shared->len;
s->aux.shared = shared;
s->flags |= MRB_STR_SHARED;
return mrb_obj_value(s);
}
/*
* call-seq:
* char* str = String("abcd"), len=strlen("abcd")