diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2013-03-12 17:25:23 -0700 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2013-03-12 17:25:23 -0700 |
| commit | e53628eb9d6ee5e5979dca9e686236ab58e3fd23 (patch) | |
| tree | b94accea30c284f99620687fd04d20fdeb1f840c /src | |
| parent | 7ba309600a26c14e799252ebb5bca6e556d7702e (diff) | |
| parent | be506de3fccb5b138140135668043d00b3fa3863 (diff) | |
| download | mruby-e53628eb9d6ee5e5979dca9e686236ab58e3fd23.tar.gz mruby-e53628eb9d6ee5e5979dca9e686236ab58e3fd23.zip | |
Merge pull request #984 from monaka/pr-make-mrb_str_new2-obsolete
Remove mrb_str_new2().
Diffstat (limited to 'src')
| -rw-r--r-- | src/error.c | 6 | ||||
| -rw-r--r-- | src/string.c | 27 |
2 files changed, 17 insertions, 16 deletions
diff --git a/src/error.c b/src/error.c index ed30173bc..421321c3d 100644 --- a/src/error.c +++ b/src/error.c @@ -89,7 +89,7 @@ exc_to_s(mrb_state *mrb, mrb_value exc) { mrb_value mesg = mrb_attr_get(mrb, exc, mrb_intern(mrb, "mesg")); - if (mrb_nil_p(mesg)) return mrb_str_new2(mrb, mrb_obj_classname(mrb, exc)); + if (mrb_nil_p(mesg)) return mrb_str_new_cstr(mrb, mrb_obj_classname(mrb, exc)); return mesg; } @@ -140,7 +140,7 @@ exc_inspect(mrb_state *mrb, mrb_value exc) } } else { - str = mrb_str_new2(mrb, mrb_obj_classname(mrb, exc)); + str = mrb_str_new_cstr(mrb, mrb_obj_classname(mrb, exc)); if (!mrb_nil_p(mesg) && RSTRING_LEN(mesg) > 0) { mrb_str_cat2(mrb, str, ": "); mrb_str_append(mrb, str, mesg); @@ -218,7 +218,7 @@ void mrb_raise(mrb_state *mrb, struct RClass *c, const char *msg) { mrb_value mesg; - mesg = mrb_str_new2(mrb, msg); + mesg = mrb_str_new_cstr(mrb, msg); mrb_exc_raise(mrb, mrb_exc_new3(mrb, c, mesg)); } diff --git a/src/string.c b/src/string.c index 465398b18..bb4b8c1a6 100644 --- a/src/string.c +++ b/src/string.c @@ -236,17 +236,6 @@ mrb_str_new(mrb_state *mrb, const char *p, mrb_int len) return mrb_obj_value(s); } -mrb_value -mrb_str_new2(mrb_state *mrb, const char *ptr) -{ - struct RString *s; - if (!ptr) { - mrb_raise(mrb, E_ARGUMENT_ERROR, "NULL pointer given"); - } - s = str_new(mrb, ptr, strlen(ptr)); - return mrb_obj_value(s); -} - /* * call-seq: (Caution! NULL string) * String.new(str="") => new_str @@ -258,11 +247,23 @@ mrb_value mrb_str_new_cstr(mrb_state *mrb, const char *p) { struct RString *s; - int len = strlen(p); + size_t len; + + if (p) { + len = strlen(p); + if (len > MRB_INT_MAX) { + len = MRB_INT_MAX; + } + } + else { + len = 0; + } s = mrb_obj_alloc_string(mrb); s->ptr = (char *)mrb_malloc(mrb, len+1); - memcpy(s->ptr, p, len); + if (p) { + memcpy(s->ptr, p, len); + } s->ptr[len] = 0; s->len = len; s->aux.capa = len; |
