Revision
4407
Author
lsansonetti@apple.com
Date
2010-08-05 01:12:49 -0700 (Thu, 05 Aug 2010)

Log Message

#instance_eval: don't attempt to create singleton classes on symbols

Modified Paths

Diff

Modified: MacRuby/trunk/vm_eval.c (4406 => 4407)


--- MacRuby/trunk/vm_eval.c	2010-08-05 00:34:39 UTC (rev 4406)
+++ MacRuby/trunk/vm_eval.c	2010-08-05 08:12:49 UTC (rev 4407)
@@ -521,19 +521,16 @@
 {
     VALUE klass;
 
-    if (SPECIAL_CONST_P(self)) {
+    if (SPECIAL_CONST_P(self) || CLASS_OF(self) == rb_cSymbol) {
 	klass = 0;
     }
     else {
-	switch (TYPE(self)) {
-	    default:
-		klass = rb_singleton_class(self);
-		switch (TYPE(top)) {
-		    case T_CLASS:
-		    case T_MODULE:
-			rb_vm_set_outer(klass, top);
-			break;
-		}
+	klass = rb_singleton_class(self);
+	switch (TYPE(top)) {
+	    case T_CLASS:
+	    case T_MODULE:
+		rb_vm_set_outer(klass, top);
+		break;
 	}
     }
     return specific_eval(argc, argv, klass, self);