[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