summaryrefslogtreecommitdiffstats
path: root/eval_method.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-01-23 01:20:51 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-01-23 01:20:51 +0000
commitf2d22879086a858bfb28dbd8d1b591848d720c70 (patch)
treee4accb3714459b89fcbef2590a5958a19e9c07b8 /eval_method.c
parent8f1db1cbc41e8eececb4824b5cd2838c8867327c (diff)
downloadruby-f2d22879086a858bfb28dbd8d1b591848d720c70.tar.gz
ruby-f2d22879086a858bfb28dbd8d1b591848d720c70.tar.xz
ruby-f2d22879086a858bfb28dbd8d1b591848d720c70.zip
* eval_method.c (rb_export_method): set ruby_vm_redefined_flag for
visibility change as well. reported by K.Kosako in http://d.hatena.ne.jp/kkos/20080122#1201012720. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15175 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'eval_method.c')
-rw-r--r--eval_method.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/eval_method.c b/eval_method.c
index ff26ebe08..f7043c006 100644
--- a/eval_method.c
+++ b/eval_method.c
@@ -388,6 +388,9 @@ rb_export_method(VALUE klass, ID name, ID noex)
rb_print_undef(klass, name, 0);
}
if (fbody->nd_body->nd_noex != noex) {
+ if (nd_type(fbody->nd_body->nd_body) == NODE_CFUNC) {
+ rb_vm_check_redefinition_opt_method(fbody);
+ }
if (klass == origin) {
fbody->nd_body->nd_noex = noex;
}