diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2016-12-12 00:49:23 +0900 |
|---|---|---|
| committer | GitHub <[email protected]> | 2016-12-12 00:49:23 +0900 |
| commit | 1fbad32f8bce2a10c591d0e44796bc34913a0e8c (patch) | |
| tree | 8ba3d7bd9992f0097f99a034012565adb43c4d4a /src/string.c | |
| parent | 3cc913490b708fe4d0e78e48f86e6e39cf3d8576 (diff) | |
| parent | 10bb7ad693e7c7443de924a39c1fedb4461108ba (diff) | |
| download | mruby-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.c | 15 |
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()); } /* |
