summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-01-22 08:22:26 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-01-22 08:22:26 +0000
commit6e8189235c9af616e85905eb6f74e3142c466c04 (patch)
tree0bd6c1235306b11762bd2e3add2cf080d506da86
parent6e17ab51e98672e0c28890561ba602f30938ec94 (diff)
singleton class def causes SEGV
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@43 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-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);
}