[macruby-changes] [534] MacRuby/trunk/vm_method.c

source_changes at macosforge.org source_changes at macosforge.org
Sat Aug 30 12:53:28 PDT 2008


Revision: 534
          http://trac.macosforge.org/projects/ruby/changeset/534
Author:   lsansonetti at 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:
--------------
    MacRuby/trunk/vm_method.c

Modified: MacRuby/trunk/vm_method.c
===================================================================
--- 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;
 }
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/macruby-changes/attachments/20080830/49de9bf4/attachment.html 


More information about the macruby-changes mailing list