diff options
| author | Yukihiro Matsumoto <[email protected]> | 2012-05-05 00:21:23 +0900 |
|---|---|---|
| committer | Yukihiro Matsumoto <[email protected]> | 2012-05-05 00:21:23 +0900 |
| commit | eac8e4a303f5e607b151305dfdc811251e52d1ce (patch) | |
| tree | a69efc2ec66d047c2bb9b79ab874526a62d311f2 | |
| parent | 0248ea5ddbe10e43ae66f0fe63085fac58b0bc89 (diff) | |
| download | mruby-eac8e4a303f5e607b151305dfdc811251e52d1ce.tar.gz mruby-eac8e4a303f5e607b151305dfdc811251e52d1ce.zip | |
move mrb_obj_is_instance_of from range.c to kernel.c
| -rw-r--r-- | include/mruby/class.h | 4 | ||||
| -rw-r--r-- | include/mruby/range.h | 2 | ||||
| -rw-r--r-- | src/class.c | 3 | ||||
| -rw-r--r-- | src/kernel.c | 13 | ||||
| -rw-r--r-- | src/range.c | 17 |
5 files changed, 15 insertions, 24 deletions
diff --git a/include/mruby/class.h b/include/mruby/class.h index 0713f9b36..62829bd68 100644 --- a/include/mruby/class.h +++ b/include/mruby/class.h @@ -64,13 +64,15 @@ struct RClass *mrb_vm_define_class(mrb_state*, mrb_value, mrb_value, mrb_sym); struct RClass *mrb_vm_define_module(mrb_state*, mrb_value, mrb_sym); void mrb_define_method_vm(mrb_state*, struct RClass*, mrb_sym, mrb_value); void mrb_define_method_raw(mrb_state*, struct RClass*, mrb_sym, struct RProc *); +void mrb_define_method_id(mrb_state *mrb, struct RClass *c, mrb_sym mid, mrb_func_t func, int aspec); struct RClass *mrb_class_outer_module(mrb_state*, struct RClass *); struct RProc *mrb_method_search_vm(mrb_state*, struct RClass**, mrb_sym); struct RProc *mrb_method_search(mrb_state*, struct RClass*, mrb_sym); int mrb_respond_to(mrb_state *mrb, mrb_value obj, mrb_sym mid); -void mrb_define_method_id(mrb_state *mrb, struct RClass *c, mrb_sym mid, mrb_func_t func, int aspec); +int mrb_obj_is_instance_of(mrb_state *mrb, mrb_value obj, struct RClass* c); +struct RClass* mrb_class_real(struct RClass* cl); void mrb_obj_call_init(mrb_state *mrb, mrb_value obj, int argc, mrb_value *argv); diff --git a/include/mruby/range.h b/include/mruby/range.h index 9a59f645a..1b07ca197 100644 --- a/include/mruby/range.h +++ b/include/mruby/range.h @@ -21,7 +21,5 @@ struct RRange { mrb_value mrb_range_new(mrb_state*, mrb_value, mrb_value, int); mrb_int mrb_range_beg_len(mrb_state *mrb, mrb_value range, mrb_int *begp, mrb_int *lenp, mrb_int len, mrb_int err); -int mrb_obj_is_instance_of(mrb_state *mrb, mrb_value obj, struct RClass* c); -struct RClass* mrb_class_real(struct RClass* cl); #endif /* MRUBY_RANGE_H */ diff --git a/src/class.c b/src/class.c index 366bde96d..5f98cf696 100644 --- a/src/class.c +++ b/src/class.c @@ -835,7 +835,8 @@ mrb_check_inheritable(mrb_state *mrb, struct RClass *super) * \param super a class from which the new class derives. * \exception TypeError \a super is not inheritable. * \exception TypeError \a super is the Class class. - */struct RClass * + */ +struct RClass * mrb_class_new(mrb_state *mrb, struct RClass *super) { struct RClass *c; diff --git a/src/kernel.c b/src/kernel.c index 8d7b38880..76ef9fa69 100644 --- a/src/kernel.c +++ b/src/kernel.c @@ -638,6 +638,13 @@ mrb_obj_instance_eval(mrb_state *mrb, mrb_value self) return mrb_yield_with_self(mrb, b, 0, 0, self); } +int +mrb_obj_is_instance_of(mrb_state *mrb, mrb_value obj, struct RClass* c) +{ + if (mrb_obj_class(mrb, obj) == c) return TRUE; + return FALSE; +} + /* 15.3.1.3.19 */ /* * call-seq: @@ -646,8 +653,8 @@ mrb_obj_instance_eval(mrb_state *mrb, mrb_value self) * Returns <code>true</code> if <i>obj</i> is an instance of the given * class. See also <code>Object#kind_of?</code>. */ -mrb_value -rb_obj_is_instance_of(mrb_state *mrb, mrb_value self) +static mrb_value +obj_is_instance_of(mrb_state *mrb, mrb_value self) { mrb_value arg; @@ -1417,7 +1424,7 @@ mrb_init_kernel(mrb_state *mrb) mrb_define_method(mrb, krn, "initialize_copy", mrb_obj_init_copy, ARGS_REQ(1)); /* 15.3.1.3.16 */ mrb_define_method(mrb, krn, "inspect", mrb_obj_inspect, ARGS_NONE()); /* 15.3.1.3.17 */ mrb_define_method(mrb, krn, "instance_eval", mrb_obj_instance_eval, ARGS_ANY()); /* 15.3.1.3.18 */ - mrb_define_method(mrb, krn, "instance_of?", rb_obj_is_instance_of, ARGS_REQ(1)); /* 15.3.1.3.19 */ + mrb_define_method(mrb, krn, "instance_of?", obj_is_instance_of, ARGS_REQ(1)); /* 15.3.1.3.19 */ mrb_define_method(mrb, krn, "instance_variable_defined?", mrb_obj_ivar_defined, ARGS_REQ(1)); /* 15.3.1.3.20 */ mrb_define_method(mrb, krn, "instance_variable_get", mrb_obj_ivar_get, ARGS_REQ(1)); /* 15.3.1.3.21 */ mrb_define_method(mrb, krn, "instance_variable_set", mrb_obj_ivar_set, ARGS_REQ(2)); /* 15.3.1.3.22 */ diff --git a/src/range.c b/src/range.c index 020ae7ec0..f298d336e 100644 --- a/src/range.c +++ b/src/range.c @@ -31,23 +31,6 @@ mrb_value mrb_exec_recursive_paired(mrb_state *mrb, mrb_value (*func) (mrb_state mrb_value obj, mrb_value paired_obj, void* arg); int printf (const char*, ...); -/*--------- <1.8.7>object.c ---------> */ - -/* - * call-seq: - * obj.instance_of?(class) => true or false - * - * Returns <code>true</code> if <i>obj</i> is an instance of the given - * class. See also <code>Object#kind_of?</code>. - */ - -int -mrb_obj_is_instance_of(mrb_state *mrb, mrb_value obj, struct RClass* c) -{ - if (mrb_obj_class(mrb, obj) == c) return TRUE; - return FALSE; -} -/*--------- <1.8.7>object.c ---------< */ mrb_value mrb_range_new(mrb_state *mrb, mrb_value beg, mrb_value end, int excl) |
