summaryrefslogtreecommitdiff
path: root/eval.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1999-09-22 04:30:11 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1999-09-22 04:30:11 +0000
commit8aad024e3ac6524f8bc09d839a331f926eab30ec (patch)
tree826107ddf61a637dcb32d60f334bf56c27d72dc1 /eval.c
parent70a444b0cc703a2fd3e05045cd1e36266221149e (diff)
19990922
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@534 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/eval.c b/eval.c
index 8d69936d03..d22cf137ee 100644
--- a/eval.c
+++ b/eval.c
@@ -648,6 +648,10 @@ static struct tag *prot_tag;
prot_tag = _tag.prev; \
}
+#define POP_TMPTAG() \
+ prot_tag = _tag.prev; \
+}
+
#define TAG_RETURN 0x1
#define TAG_BREAK 0x2
#define TAG_NEXT 0x3
@@ -1724,7 +1728,7 @@ call_trace_func(event, file, line, self, id, klass)
self?rb_f_binding(self):Qnil,
klass));
}
- POP_TAG();
+ POP_TMPTAG(); /* do not propagate retval */
POP_FRAME();
rb_thread_critical--;
@@ -4488,7 +4492,7 @@ specific_eval(argc, argv, klass, self)
VALUE *argv;
VALUE klass, self;
{
- char *file = 0;
+ char *file = "(eval)";
int line = 1;
int iter = rb_iterator_p();