summaryrefslogtreecommitdiffhomepage
path: root/src/string.c
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2019-04-10 06:03:32 +0900
committerGitHub <[email protected]>2019-04-10 06:03:32 +0900
commitd0b30f4ce22e7f9e2396a2159d1a1ff81fcc6ca6 (patch)
treec4670a8bd9ad3aa93a92e3e603f8b26589d7504b /src/string.c
parentb433001a1b0676b1bfbd9850c51fd8caed2c8c7b (diff)
parente3beef065c2de80a843f329599b424676d83086c (diff)
downloadmruby-d0b30f4ce22e7f9e2396a2159d1a1ff81fcc6ca6.tar.gz
mruby-d0b30f4ce22e7f9e2396a2159d1a1ff81fcc6ca6.zip
Merge pull request #4367 from shuujii/extract-frozen-checking-to-function
Extract frozen checking to function
Diffstat (limited to 'src/string.c')
-rw-r--r--src/string.c12
1 files changed, 2 insertions, 10 deletions
diff --git a/src/string.c b/src/string.c
index 63c592d59..f7a805a94 100644
--- a/src/string.c
+++ b/src/string.c
@@ -493,20 +493,12 @@ str_index_str(mrb_state *mrb, mrb_value str, mrb_value str2, mrb_int offset)
return mrb_str_index(mrb, str, ptr, len, offset);
}
-static void
-check_frozen(mrb_state *mrb, struct RString *s)
-{
- if (MRB_FROZEN_P(s)) {
- mrb_raise(mrb, E_FROZEN_ERROR, "can't modify frozen string");
- }
-}
-
static mrb_value
str_replace(mrb_state *mrb, struct RString *s1, struct RString *s2)
{
mrb_int len;
- check_frozen(mrb, s1);
+ mrb_check_frozen(mrb, s1);
if (s1 == s2) return mrb_obj_value(s1);
s1->flags &= ~MRB_STR_NO_UTF;
s1->flags |= s2->flags&MRB_STR_NO_UTF;
@@ -646,7 +638,7 @@ mrb_locale_from_utf8(const char *utf8, int len)
MRB_API void
mrb_str_modify(mrb_state *mrb, struct RString *s)
{
- check_frozen(mrb, s);
+ mrb_check_frozen(mrb, s);
s->flags &= ~MRB_STR_NO_UTF;
if (RSTR_SHARED_P(s)) {
mrb_shared_string *shared = s->as.heap.aux.shared;