[macruby-changes] [5067] MacRuby/trunk/array.c
source_changes at macosforge.org
source_changes at macosforge.org
Tue Dec 21 20:15:41 PST 2010
Revision: 5067
http://trac.macosforge.org/projects/ruby/changeset/5067
Author: lsansonetti at apple.com
Date: 2010-12-21 20:15:37 -0800 (Tue, 21 Dec 2010)
Log Message:
-----------
fix a bug in Array#== when called with recursive arrays
Modified Paths:
--------------
MacRuby/trunk/array.c
Modified: MacRuby/trunk/array.c
===================================================================
--- MacRuby/trunk/array.c 2010-12-22 04:00:02 UTC (rev 5066)
+++ MacRuby/trunk/array.c 2010-12-22 04:15:37 UTC (rev 5067)
@@ -2444,9 +2444,12 @@
*
*/
-VALUE
-rb_ary_equal(VALUE ary1, VALUE ary2)
+static VALUE
+recursive_equal(VALUE ary1, VALUE ary2, int recur)
{
+ if (recur) {
+ return Qtrue; // like Ruby 1.9...
+ }
if (IS_RARY(ary1) && IS_RARY(ary2)) {
if (RARY(ary1)->len != RARY(ary2)->len) {
return Qfalse;
@@ -2469,6 +2472,12 @@
return CFEqual((CFTypeRef)ary1, (CFTypeRef)ary2) ? Qtrue : Qfalse;
}
+VALUE
+rb_ary_equal(VALUE ary1, VALUE ary2)
+{
+ return rb_exec_recursive(recursive_equal, ary1, ary2);
+}
+
static VALUE
rary_equal(VALUE ary1, SEL sel, VALUE ary2)
{
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20101221/6074ec1b/attachment-0001.html>
More information about the macruby-changes
mailing list