diff options
| author | Yukihiro Matsumoto <[email protected]> | 2012-05-31 11:11:55 +0900 |
|---|---|---|
| committer | Yukihiro Matsumoto <[email protected]> | 2012-05-31 11:11:55 +0900 |
| commit | 3e8d330c2cca7b67edbfa2a03331c03499dbdbf5 (patch) | |
| tree | 1798fffa8eb05728e804aa973feb6727f726a009 /src/class.c | |
| parent | 0e5958d4043001d242c2677d37a9c7db2bb0bf56 (diff) | |
| download | mruby-3e8d330c2cca7b67edbfa2a03331c03499dbdbf5.tar.gz mruby-3e8d330c2cca7b67edbfa2a03331c03499dbdbf5.zip | |
remove #new from immediate classes
Diffstat (limited to 'src/class.c')
| -rw-r--r-- | src/class.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/class.c b/src/class.c index b1ed7c0dc..fa349a015 100644 --- a/src/class.c +++ b/src/class.c @@ -1100,8 +1100,8 @@ mrb_mod_alias(mrb_state *mrb, mrb_value mod) } -void -mrb_undef_method(mrb_state *mrb, struct RClass *c, mrb_sym a) +static void +undef_method(mrb_state *mrb, struct RClass *c, mrb_sym a) { mrb_value m; @@ -1110,6 +1110,12 @@ mrb_undef_method(mrb_state *mrb, struct RClass *c, mrb_sym a) mrb_define_method_vm(mrb, c, a, m); } +void +mrb_undef_method(mrb_state *mrb, struct RClass *c, const char *name) +{ + undef_method(mrb, c, mrb_intern(mrb, name)); +} + mrb_value mrb_mod_undef(mrb_state *mrb, mrb_value mod) { @@ -1119,7 +1125,7 @@ mrb_mod_undef(mrb_state *mrb, mrb_value mod) mrb_get_args(mrb, "*", &argv, &argc); while (argc--) { - mrb_undef_method(mrb, c, mrb_symbol(*argv)); + undef_method(mrb, c, mrb_symbol(*argv)); argv++; } return mrb_nil_value(); @@ -1170,7 +1176,7 @@ mrb_init_class(mrb_state *mrb) mrb_name_class(mrb, mod, mrb_intern(mrb, "Module")); mrb_name_class(mrb, cls, mrb_intern(mrb, "Class")); - mrb_undef_method(mrb, mod, mrb_intern(mrb, "new")); + mrb_undef_method(mrb, mod, "new"); MRB_SET_INSTANCE_TT(cls, MRB_TT_CLASS); mrb_define_method(mrb, bob, "initialize", mrb_bob_init, ARGS_NONE()); mrb_define_method(mrb, bob, "!", mrb_bob_not, ARGS_NONE()); |
