when preparing a method, do an extra resolve pass in case the objc cache is invalid
--- MacRuby/trunk/vm.cpp 2010-04-15 02:01:47 UTC (rev 3935)
+++ MacRuby/trunk/vm.cpp 2010-04-15 02:02:19 UTC (rev 3936)
@@ -2131,6 +2131,11 @@
prepare_method:
m = class_getInstanceMethod(klass, sel);
+ if (m == NULL && rb_vm_resolve_method(klass, sel)) {
+ m = class_getInstanceMethod(klass, sel);
+ assert(m != NULL);
+ }
+
if (precompiled) {
if (imp == NULL) {
imp = (IMP)data;