summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2006-11-24 01:23:50 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2006-11-24 01:23:50 +0000
commitbfaffbf00a6124ff3214cc1593210651887fb64b (patch)
tree70311104cabc46d4d69e41be450f747629802e54
parent97b130f21ffe1cd5c20c1b4ad40ce36e751d3c9b (diff)
downloadruby-bfaffbf00a6124ff3214cc1593210651887fb64b.tar.gz
ruby-bfaffbf00a6124ff3214cc1593210651887fb64b.tar.xz
ruby-bfaffbf00a6124ff3214cc1593210651887fb64b.zip
* eval.c (rb_mod_define_method): set implicit visibility only when
it's called for the target class (ruby_cbase). git-svn-id: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8@11304 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--eval.c16
2 files changed, 13 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 68baa81d8..37c0a24b5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Thu Nov 23 10:38:40 2006 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * eval.c (rb_mod_define_method): set implicit visibility only when
+ it's called for the target class (ruby_cbase).
+
Wed Nov 22 16:00:49 2006 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
* ext/tk/extconf.rb: support --with-X11/--without-X11 option.
diff --git a/eval.c b/eval.c
index 6b9a674a1..2b6fda37f 100644
--- a/eval.c
+++ b/eval.c
@@ -9552,14 +9552,14 @@ rb_mod_define_method(argc, argv, mod)
rb_raise(rb_eTypeError, "wrong argument type (expected Proc/Method)");
}
- if (SCOPE_TEST(SCOPE_PRIVATE)) {
- noex = NOEX_PRIVATE;
- }
- else if (SCOPE_TEST(SCOPE_PROTECTED)) {
- noex = NOEX_PROTECTED;
- }
- else {
- noex = NOEX_PUBLIC;
+ noex = NOEX_PUBLIC;
+ if (ruby_cbase == mod) {
+ if (SCOPE_TEST(SCOPE_PRIVATE)) {
+ noex = NOEX_PRIVATE;
+ }
+ else if (SCOPE_TEST(SCOPE_PROTECTED)) {
+ noex = NOEX_PROTECTED;
+ }
}
rb_add_method(mod, id, node, noex);
return body;