summaryrefslogtreecommitdiffhomepage
path: root/src/string.c
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2016-12-12 00:49:23 +0900
committerGitHub <[email protected]>2016-12-12 00:49:23 +0900
commit1fbad32f8bce2a10c591d0e44796bc34913a0e8c (patch)
tree8ba3d7bd9992f0097f99a034012565adb43c4d4a /src/string.c
parent3cc913490b708fe4d0e78e48f86e6e39cf3d8576 (diff)
parent10bb7ad693e7c7443de924a39c1fedb4461108ba (diff)
downloadmruby-1fbad32f8bce2a10c591d0e44796bc34913a0e8c.tar.gz
mruby-1fbad32f8bce2a10c591d0e44796bc34913a0e8c.zip
Merge pull request #3340 from k0kubun/object-freeze
Implement Object#freeze
Diffstat (limited to 'src/string.c')
-rw-r--r--src/string.c15
1 files changed, 2 insertions, 13 deletions
diff --git a/src/string.c b/src/string.c
index a4f8085ec..7234ecf2b 100644
--- a/src/string.c
+++ b/src/string.c
@@ -501,7 +501,7 @@ str_index(mrb_state *mrb, mrb_value str, mrb_value sub, mrb_int offset)
static void
check_frozen(mrb_state *mrb, struct RString *s)
{
- if (RSTR_FROZEN_P(s)) {
+ if (RBASIC_FROZEN_P(s)) {
mrb_raise(mrb, E_RUNTIME_ERROR, "can't modify frozen string");
}
}
@@ -700,15 +700,6 @@ mrb_str_modify(mrb_state *mrb, struct RString *s)
}
}
-static mrb_value
-mrb_str_freeze(mrb_state *mrb, mrb_value str)
-{
- struct RString *s = mrb_str_ptr(str);
-
- RSTR_SET_FROZEN_FLAG(s);
- return str;
-}
-
MRB_API mrb_value
mrb_str_resize(mrb_state *mrb, mrb_value str, mrb_int len)
{
@@ -2217,7 +2208,7 @@ mrb_string_value_cstr(mrb_state *mrb, mrb_value *ptr)
char *p = RSTR_PTR(ps);
if (!p || p[len] != '\0') {
- if (RSTR_FROZEN_P(ps)) {
+ if (RBASIC_FROZEN_P(ps)) {
*ptr = str = mrb_str_dup(mrb, str);
ps = mrb_str_ptr(str);
}
@@ -2746,8 +2737,6 @@ mrb_init_string(mrb_state *mrb)
mrb_define_method(mrb, s, "upcase!", mrb_str_upcase_bang, MRB_ARGS_NONE()); /* 15.2.10.5.43 */
mrb_define_method(mrb, s, "inspect", mrb_str_inspect, MRB_ARGS_NONE()); /* 15.2.10.5.46(x) */
mrb_define_method(mrb, s, "bytes", mrb_str_bytes, MRB_ARGS_NONE());
-
- mrb_define_method(mrb, s, "freeze", mrb_str_freeze, MRB_ARGS_NONE());
}
/*