From aed6bddf4e79cdd14e82841d9b533d989d4f6f84 Mon Sep 17 00:00:00 2001 From: matz Date: Sat, 28 Aug 2004 14:14:11 +0000 Subject: * bignum.c (rb_big_and): protect parameters from GC. [ruby-talk:110664] * error.c (exc_equal): exceptions are equal if they share same class, message and backtrace. [ruby-talk:110354] * error.c (name_err_mesg_equal): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@6826 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- eval.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'eval.c') diff --git a/eval.c b/eval.c index 19e6a361c..3829be617 100644 --- a/eval.c +++ b/eval.c @@ -3765,6 +3765,9 @@ rb_eval(self, n) ID cname; int gen = Qfalse; + cbase = class_prefix(self, node->nd_cpath); + cname = node->nd_cpath->nd_mid; + if (NIL_P(ruby_cbase)) { rb_raise(rb_eTypeError, "no outer class/module"); } @@ -3775,8 +3778,6 @@ rb_eval(self, n) super = 0; } - cbase = class_prefix(self, node->nd_cpath); - cname = node->nd_cpath->nd_mid; if (rb_const_defined_at(cbase, cname)) { klass = rb_const_get_at(cbase, cname); if (TYPE(klass) != T_CLASS) { -- cgit