Revision
534
Author
lsansonetti@apple.com
Date
2008-08-30 12:53:28 -0700 (Sat, 30 Aug 2008)

Log Message

fixed respond_to? to respond to objc methods, also honor the priv argument

Modified Paths

Diff

Modified: MacRuby/trunk/vm_method.c (533 => 534)


--- MacRuby/trunk/vm_method.c	2008-08-30 18:00:25 UTC (rev 533)
+++ MacRuby/trunk/vm_method.c	2008-08-30 19:53:28 UTC (rev 534)
@@ -1182,7 +1182,11 @@
 	sel_respondTo = sel_registerName("respond_to?:");
 
     if (rb_objc_method_node2(klass, sel_respondTo, NULL) == basic_respond_to) {
-	rb_objc_method_node(klass, id, &imp, NULL);
+	NODE *method;
+
+	method = rb_objc_method_node(klass, id, &imp, NULL);
+	if (method != NULL && priv == 0 && (method->nd_noex & NOEX_PRIVATE))
+	    return false;
 	return imp != NULL;
     }
 #else
@@ -1223,9 +1227,13 @@
 
     rb_scan_args(argc, argv, "11", &mid, &priv);
     id = rb_to_id(mid);
+#if WITH_OBJC
+    return rb_obj_respond_to(obj, id, RTEST(priv)) ? Qtrue : Qfalse;
+#else
     if (rb_method_boundp(CLASS_OF(obj), id, !RTEST(priv))) {
 	return Qtrue;
     }
+#endif
     return Qfalse;
 }