summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--eval.c4
2 files changed, 9 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 30fa6b5f0f..27a3b8c122 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Wed May 30 05:17:55 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * eval.c (rb_eval): get rid of SEGV at ZSUPER in a block
+ [ruby-dev:30836]
+
Wed May 30 04:29:43 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
* eval.c (thread_timer): timer thread should not receive any
diff --git a/eval.c b/eval.c
index d921f07a44..7ede489611 100644
--- a/eval.c
+++ b/eval.c
@@ -3504,6 +3504,10 @@ rb_eval(self, n)
}
argv = RARRAY(RBASIC(ruby_scope)->klass)->ptr;
}
+ else if (!ruby_scope->local_vars) {
+ argc = 0;
+ argv = 0;
+ }
else {
argv = ruby_scope->local_vars + 2;
}