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