summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-12-11 06:23:21 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-12-11 06:23:21 +0000
commit25b30f191fb6e4ebe0caaa0c4f604b3da9e466f7 (patch)
tree339b75e18c2e5c76490e4efa33bc492f81b2d668
parentfcc471e2e5650545a45976f4cee0a2f91dcfc98f (diff)
downloadruby-25b30f191fb6e4ebe0caaa0c4f604b3da9e466f7.tar.gz
ruby-25b30f191fb6e4ebe0caaa0c4f604b3da9e466f7.tar.xz
ruby-25b30f191fb6e4ebe0caaa0c4f604b3da9e466f7.zip
* object.c (Init_Object): singleton_method_{added,removed,undefined}
hooks should be defined for BasicObject. [ruby-dev:32531] * eval.c (Init_eval): method_missing should be defined for all objects; moved to BasicObject. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@14193 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog8
-rw-r--r--eval.c3
-rw-r--r--object.c8
3 files changed, 14 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 192b5bca3..38ed367bc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+Tue Dec 11 15:20:39 2007 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * object.c (Init_Object): singleton_method_{added,removed,undefined}
+ hooks should be defined for BasicObject. [ruby-dev:32531]
+
+ * eval.c (Init_eval): method_missing should be defined for all
+ objects; moved to BasicObject.
+
Tue Dec 11 14:27:50 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
* transcode.c (transcode_loop): get rid of SEGV at sequence can not be
diff --git a/eval.c b/eval.c
index 4057b09f6..4d0601c45 100644
--- a/eval.c
+++ b/eval.c
@@ -2731,10 +2731,11 @@ Init_eval(void)
rb_define_virtual_variable("$@", errat_getter, errat_setter);
rb_define_virtual_variable("$!", errinfo_getter, 0);
+ rb_define_private_method(rb_cBasicObject, "method_missing", rb_method_missing, -1);
+
rb_define_global_function("eval", rb_f_eval, -1);
rb_define_global_function("iterator?", rb_f_block_given_p, 0);
rb_define_global_function("block_given?", rb_f_block_given_p, 0);
- rb_define_global_function("method_missing", rb_method_missing, -1);
rb_define_global_function("loop", rb_f_loop, 0);
rb_define_method(rb_mKernel, "respond_to?", obj_respond_to, -1);
diff --git a/object.c b/object.c
index 1fe102f1e..25a9c2975 100644
--- a/object.c
+++ b/object.c
@@ -2351,6 +2351,10 @@ Init_Object(void)
rb_define_method(rb_cBasicObject, "!@", rb_obj_not, 0);
rb_define_method(rb_cBasicObject, "!=", rb_obj_not_equal, 1);
+ rb_define_private_method(rb_cBasicObject, "singleton_method_added", rb_obj_dummy, 1);
+ rb_define_private_method(rb_cBasicObject, "singleton_method_removed", rb_obj_dummy, 1);
+ rb_define_private_method(rb_cBasicObject, "singleton_method_undefined", rb_obj_dummy, 1);
+
rb_mKernel = rb_define_module("Kernel");
rb_include_module(rb_cObject, rb_mKernel);
rb_define_private_method(rb_cClass, "inherited", rb_obj_dummy, 1);
@@ -2396,10 +2400,6 @@ Init_Object(void)
rb_define_method(rb_mKernel, "is_a?", rb_obj_is_kind_of, 1);
rb_define_method(rb_mKernel, "tap", rb_obj_tap, 0);
- rb_define_private_method(rb_mKernel, "singleton_method_added", rb_obj_dummy, 1);
- rb_define_private_method(rb_mKernel, "singleton_method_removed", rb_obj_dummy, 1);
- rb_define_private_method(rb_mKernel, "singleton_method_undefined", rb_obj_dummy, 1);
-
rb_define_global_function("sprintf", rb_f_sprintf, -1); /* in sprintf.c */
rb_define_global_function("format", rb_f_sprintf, -1); /* in sprintf.c */