summaryrefslogtreecommitdiff
path: root/eval.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1999-11-08 03:57:01 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1999-11-08 03:57:01 +0000
commit28412851825d1bc7c8e885387e1f1b257cf8a0cf (patch)
treef80f1bfa6e480e75f6af94fc2202576b2dfaabd7 /eval.c
parenta9e9697994a08600f5dbb46a1fe2a07233cb4890 (diff)
19991108
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@558 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/eval.c b/eval.c
index 6e9ad5e9fb..75a2ddaf30 100644
--- a/eval.c
+++ b/eval.c
@@ -1498,6 +1498,7 @@ is_defined(self, node, buf)
case NODE_SUPER:
case NODE_ZSUPER:
if (ruby_frame->last_func == 0) return 0;
+ else if (ruby_frame->last_class == 0) return 0;
else if (rb_method_boundp(RCLASS(ruby_frame->last_class)->super,
ruby_frame->last_func, 0)) {
if (nd_type(node) == NODE_SUPER) {
@@ -5305,6 +5306,7 @@ Init_eval()
rb_define_global_function("untrace_var", rb_f_untrace_var, -1);
rb_define_global_function("set_trace_func", set_trace_func, 1);
+ rb_global_variable(&trace_func);
rb_define_virtual_variable("$SAFE", safe_getter, safe_setter);
}
@@ -6087,6 +6089,7 @@ thread_mark(th)
rb_gc_mark(th->errinfo);
rb_gc_mark(th->last_line);
rb_gc_mark(th->last_match);
+ rb_gc_mark(th->trace);
rb_mark_tbl(th->locals);
/* mark data in copied stack */