summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--eval_method.h6
2 files changed, 7 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index c1c74ec2c0..635d636ec4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Fri Jan 5 13:59:53 2007 Koichi Sasada <ko1@atdot.net>
+
+ * eval_method.h (rb_add_method) : fix to check old_node
+
Fri Jan 5 12:03:07 2007 Koichi Sasada <ko1@atdot.net>
* compile.c (iseq_compile_each, set_block_local_tbl) :
diff --git a/eval_method.h b/eval_method.h
index 59e7cef8dc..7f2c99d1ff 100644
--- a/eval_method.h
+++ b/eval_method.h
@@ -146,13 +146,13 @@ rb_add_method(VALUE klass, ID mid, NODE * node, int noex)
if (nd_type(old_node->nd_body->nd_body) == NODE_CFUNC) {
yarv_check_redefinition_opt_method(old_node);
}
+ if (RTEST(ruby_verbose) && old_node->nd_cnt == 0 && old_node->nd_body) {
+ rb_warning("method redefined; discarding old %s", rb_id2name(mid));
+ }
}
if (klass == rb_cObject && node->nd_mid == init) {
rb_warn("redefining Object#initialize may cause infinite loop");
}
- if (RTEST(ruby_verbose) && old_node->nd_cnt == 0 && old_node->nd_body) {
- rb_warning("method redefined; discarding old %s", rb_id2name(mid));
- }
}
if (mid == object_id || mid == __send || mid == __send_bang) {