summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog2
-rw-r--r--eval.c3
2 files changed, 5 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 7c12422300..2bb33c88be 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
Thu Jan 22 16:21:08 1998 Yukihiro Matsumoto <matz@netlab.co.jp>
+ * eval.c (rb_eval): some singleton class def cause SEGV.
+
* eval.c (ALLOCTMP): replace ALLOCA_N, where thread context switch
may happen.
diff --git a/eval.c b/eval.c
index b256c23b79..e6901c69ae 100644
--- a/eval.c
+++ b/eval.c
@@ -2297,6 +2297,9 @@ rb_eval(self, node)
rb_clear_cache();
class = rb_singleton_class(class);
}
+ else {
+ class = CLASS_OF(class);
+ }
result = module_setup(class, node->nd_body);
}