summaryrefslogtreecommitdiff
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
commit105a66963140e7b3e8056c67c4e4e61b1d5a60d0 (patch)
treee4accb3714459b89fcbef2590a5958a19e9c07b8 /eval_method.c
parent008d77d27cf2e468ca5e1d8a7d0c5f8cc102fd89 (diff)
* 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: svn+ssh://ci.ruby-lang.org/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 ff26ebe083..f7043c0069 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;
}