diff options
| author | Yukihiro Matsumoto <[email protected]> | 2012-08-08 00:25:35 +0900 |
|---|---|---|
| committer | Yukihiro Matsumoto <[email protected]> | 2012-08-08 00:25:35 +0900 |
| commit | 8af5a999bfcaecbc9c1ff791d03f5904b1e5172f (patch) | |
| tree | 0848b9ce90996a2dce3cf1103da6b002b49023e8 /src | |
| parent | f0462b4122edd6a6fb42d07f469813a05f0620d8 (diff) | |
| download | mruby-8af5a999bfcaecbc9c1ff791d03f5904b1e5172f.tar.gz mruby-8af5a999bfcaecbc9c1ff791d03f5904b1e5172f.zip | |
store :initialize in mrb structure
Diffstat (limited to 'src')
| -rw-r--r-- | src/class.c | 6 | ||||
| -rw-r--r-- | src/symbol.c | 1 |
2 files changed, 4 insertions, 3 deletions
diff --git a/src/class.c b/src/class.c index 7802c34bd..ae4d45ff1 100644 --- a/src/class.c +++ b/src/class.c @@ -921,7 +921,7 @@ mrb_funcall(mrb_state *mrb, mrb_value self, const char *name, int argc, ...) void mrb_obj_call_init(mrb_state *mrb, mrb_value obj, int argc, mrb_value *argv) { - mrb_funcall_argv(mrb, obj, mrb_intern(mrb, "initialize"), argc, argv); + mrb_funcall_argv(mrb, obj, mrb->init_sym, argc, argv); } /* @@ -960,7 +960,7 @@ mrb_class_new_instance_m(mrb_state *mrb, mrb_value klass) c = (struct RClass*)mrb_obj_alloc(mrb, k->tt, k); c->super = k; obj = mrb_obj_value(c); - mrb_funcall_with_block(mrb, obj, mrb_intern(mrb, "initialize"), argc, argv, blk); + mrb_funcall_with_block(mrb, obj, mrb->init_sym, argc, argv, blk); return obj; } @@ -979,7 +979,7 @@ mrb_instance_new(mrb_state *mrb, mrb_value cv) o = (struct RObject*)mrb_obj_alloc(mrb, ttype, c); obj = mrb_obj_value(o); mrb_get_args(mrb, "*&", &argv, &argc, &blk); - mrb_funcall_with_block(mrb, obj, mrb_intern(mrb, "initialize"), argc, argv, blk); + mrb_funcall_with_block(mrb, obj, mrb->init_sym, argc, argv, blk); return obj; } diff --git a/src/symbol.c b/src/symbol.c index b81296929..fdb0aa861 100644 --- a/src/symbol.c +++ b/src/symbol.c @@ -404,4 +404,5 @@ mrb_init_symbol(mrb_state *mrb) mrb_define_method(mrb, sym, "to_sym", sym_to_sym, ARGS_NONE()); /* 15.2.11.3.4 */ mrb_define_method(mrb, sym, "inspect", sym_inspect, ARGS_NONE()); /* 15.2.11.3.5(x) */ mrb_define_method(mrb, sym, "<=>", sym_cmp, ARGS_REQ(1)); + mrb->init_sym = mrb_intern(mrb, "initialize"); } |
