summaryrefslogtreecommitdiffstats
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
commit97de3ac1f2886427faec0d15b32af1bcd434f95d (patch)
treef80f1bfa6e480e75f6af94fc2202576b2dfaabd7 /eval.c
parentfbf1b1ead9323a7f5909f483c137c46f65d3f68c (diff)
downloadruby-97de3ac1f2886427faec0d15b32af1bcd434f95d.tar.gz
ruby-97de3ac1f2886427faec0d15b32af1bcd434f95d.tar.xz
ruby-97de3ac1f2886427faec0d15b32af1bcd434f95d.zip
19991108
git-svn-id: http://svn.ruby-lang.org/repos/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 6e9ad5e9f..75a2ddaf3 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 */