summaryrefslogtreecommitdiffhomepage
path: root/src/string.c
diff options
context:
space:
mode:
authorMasaki Muranaka <[email protected]>2013-03-12 18:21:23 +0900
committerMasaki Muranaka <[email protected]>2013-03-12 18:21:23 +0900
commit588f51508bcb05c0a38a53eea9a7acd31046164f (patch)
treea823e2b1b10b2133375b0558313f3c6763bcba4a /src/string.c
parent46d8c51763bd13b69a4234f0d4be05cbfd8ae401 (diff)
downloadmruby-588f51508bcb05c0a38a53eea9a7acd31046164f.tar.gz
mruby-588f51508bcb05c0a38a53eea9a7acd31046164f.zip
Remove str_alloc(). Use mrb_obj_alloc_string instead.
Diffstat (limited to 'src/string.c')
-rw-r--r--src/string.c21
1 files changed, 4 insertions, 17 deletions
diff --git a/src/string.c b/src/string.c
index bcf229388..2e9225f13 100644
--- a/src/string.c
+++ b/src/string.c
@@ -104,21 +104,6 @@ str_mod_check(mrb_state *mrb, mrb_value str, char *p, mrb_int len)
#define mrb_obj_alloc_string(mrb) ((struct RString*)mrb_obj_alloc((mrb), MRB_TT_STRING, (mrb)->string_class))
-static struct RString*
-str_alloc(mrb_state *mrb, struct RClass *c)
-{
- struct RString* s;
-
- s = mrb_obj_alloc_string(mrb);
-
- s->c = c;
- s->ptr = 0;
- s->len = 0;
- s->aux.capa = 0;
-
- return s;
-}
-
/* char offset to byte offset */
int
mrb_str_offset(mrb_state *mrb, mrb_value str, int pos)
@@ -129,8 +114,9 @@ mrb_str_offset(mrb_state *mrb, mrb_value str, int pos)
static struct RString*
str_new(mrb_state *mrb, const char *p, int len)
{
- struct RString *s = str_alloc(mrb, mrb->string_class);
+ struct RString *s;
+ s = mrb_obj_alloc_string(mrb);
s->len = len;
s->aux.capa = len;
s->ptr = (char *)mrb_malloc(mrb, len+1);
@@ -302,7 +288,7 @@ mrb_str_literal(mrb_state *mrb, mrb_value str)
struct RString *s, *orig;
mrb_shared_string *shared;
- s = str_alloc(mrb, mrb->string_class);
+ s = mrb_obj_alloc_string(mrb);
orig = mrb_str_ptr(str);
if (!(orig->flags & MRB_STR_SHARED)) {
str_make_shared(mrb, mrb_str_ptr(str));
@@ -311,6 +297,7 @@ mrb_str_literal(mrb_state *mrb, mrb_value str)
shared->refcnt++;
s->ptr = shared->ptr;
s->len = shared->len;
+ s->aux.capa = 0;
s->aux.shared = shared;
s->flags |= MRB_STR_SHARED;