From a19a6edb7c464af9dd4303659ceabe2672882a6b Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Wed, 17 Dec 2014 08:06:44 +0900 Subject: mrb_str_new(mrb, "", len) creates an unmodifiable string object; ref #2674 --- mrbgems/mruby-string-ext/src/string.c | 2 +- src/string.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mrbgems/mruby-string-ext/src/string.c b/mrbgems/mruby-string-ext/src/string.c index fa2c52d67..68d96cd6c 100644 --- a/mrbgems/mruby-string-ext/src/string.c +++ b/mrbgems/mruby-string-ext/src/string.c @@ -356,7 +356,7 @@ mrb_str_prepend(mrb_state *mrb, mrb_value self) } s2 = mrb_str_ptr(other); len = RSTR_LEN(s1) + RSTR_LEN(s2); - temp_str = mrb_str_new(mrb, "", RSTR_LEN(s1)); + temp_str = mrb_str_new(mrb, NULL, RSTR_LEN(s1)); temp_s = mrb_str_ptr(temp_str); memcpy(RSTR_PTR(temp_s), RSTR_PTR(s1), RSTR_LEN(s1)); if (RSTRING_CAPA(self) < len) { diff --git a/src/string.c b/src/string.c index 23cd76747..1c54ffa72 100644 --- a/src/string.c +++ b/src/string.c @@ -163,7 +163,7 @@ str_new(mrb_state *mrb, const char *p, size_t len) { struct RString *s; - if (mrb_ro_data_p(p)) { + if (p && mrb_ro_data_p(p)) { return str_new_static(mrb, p, len); } s = mrb_obj_alloc_string(mrb); -- cgit v1.2.3