Revision: 534 http://trac.macosforge.org/projects/ruby/changeset/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: -------------- 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; }
participants (1)
-
source_changes@macosforge.org