Revision
112
Author
lsansonetti@apple.com
Date
2008-03-20 12:42:07 -0700 (Thu, 20 Mar 2008)

Log Message

fix for #39

Modified Paths

Diff

Modified: MacRuby/trunk/eval.c (111 => 112)


--- MacRuby/trunk/eval.c	2008-03-20 17:25:10 UTC (rev 111)
+++ MacRuby/trunk/eval.c	2008-03-20 19:42:07 UTC (rev 112)
@@ -1376,19 +1376,22 @@
     ID id = mid;
     struct cache_entry *ent;
     rb_thread_t *th = GET_THREAD();
+#if WITH_OBJC
+    unsigned redo = 0;
+#endif
 
 rb_call0_redo:
 
 #if WITH_OBJC
 # define REDO_PERHAPS() \
-    do { \
+    if (!redo) { \
 	ID newid = rb_objc_missing_sel(mid, argc); \
 	if (newid != mid) { \
 	    id = mid = newid; \
+	    redo = 1; \
 	    goto rb_call0_redo; \
 	} \
-    } \
-    while (0)
+    } 
 #else
 # define REDO_PERHAPS()
 #endif