summaryrefslogtreecommitdiff
path: root/eval.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-09-06 00:48:03 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-09-06 00:48:03 +0000
commitd58885977b5ea50cb177aee491f92386042ae0f5 (patch)
tree473a5d8d4dc78b7be069f98ca1b4a5e081802341 /eval.c
parent6faa93ff25dc1c868810910bec9d27a51a68da3d (diff)
* eval.c (cvar_cbase): singletons should refer outer cvar scope.
[ruby-dev:24223] * eval.c (rb_load): should preserve previous ruby_wrapper value. [ruby-dev:24226] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6857 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/eval.c b/eval.c
index ac3ff420b5..7efec7e57b 100644
--- a/eval.c
+++ b/eval.c
@@ -1773,7 +1773,7 @@ cvar_cbase()
{
NODE *cref = ruby_cref;
- while (cref && cref->nd_next && FL_TEST(cref->nd_clss, FL_SINGLETON)) {
+ while (cref && cref->nd_next && (NIL_P(cref->nd_clss) || FL_TEST(cref->nd_clss, FL_SINGLETON))) {
cref = cref->nd_next;
if (!cref->nd_next) {
rb_warn("class variable access from toplevel singleton method");
@@ -6411,7 +6411,7 @@ rb_load(fname, wrap)
int state;
volatile int prohibit_int = rb_prohibit_interrupt;
volatile ID last_func;
- volatile VALUE wrapper = 0;
+ volatile VALUE wrapper = ruby_wrapper;
volatile VALUE self = ruby_top_self;
NODE *volatile last_node;
NODE *saved_cref = ruby_cref;