Revision
3935
Author
lsansonetti@apple.com
Date
2010-04-14 19:01:47 -0700 (Wed, 14 Apr 2010)

Log Message

reset current super state when doing normal dispatch

Modified Paths

Diff

Modified: MacRuby/trunk/dispatcher.cpp (3934 => 3935)


--- MacRuby/trunk/dispatcher.cpp	2010-04-15 02:00:40 UTC (rev 3934)
+++ MacRuby/trunk/dispatcher.cpp	2010-04-15 02:01:47 UTC (rev 3935)
@@ -261,9 +261,12 @@
     const int count = RARRAY_LEN(ary);
     bool klass_located = false;
 #if ROXOR_VM_DEBUG
-    printf("locating super method %s of class %s in ancestor chain %s\n", 
-	    sel_getName(sel), rb_class2name((VALUE)klass),
-	    RSTRING_PTR(rb_inspect(ary)));
+    printf("locating super method %s of class %s in ancestor chain: ", 
+	    sel_getName(sel), rb_class2name((VALUE)klass));
+    for (int i = 0; i < count; i++) {
+	printf("%s ", rb_class2name(RARRAY_AT(ary, i)));
+    }
+    printf("\n");
 #endif
     for (int i = 0; i < count; i++) {
         if (!klass_located && RARRAY_AT(ary, i) == (VALUE)self_class) {
@@ -598,6 +601,7 @@
 		    &current_super_class);
 	}
 	else {
+	    current_super_sel = 0;
 	    method = class_getInstanceMethod(klass, sel);
 	}