[macruby-changes] [2310] MacRuby/trunk/array.c

source_changes at macosforge.org source_changes at macosforge.org
Thu Aug 13 15:40:54 PDT 2009


Revision: 2310
          http://trac.macosforge.org/projects/ruby/changeset/2310
Author:   lsansonetti at apple.com
Date:     2009-08-13 15:40:54 -0700 (Thu, 13 Aug 2009)
Log Message:
-----------
Array#dup/clone: fixed for extended RubyArray objects

Modified Paths:
--------------
    MacRuby/trunk/array.c

Modified: MacRuby/trunk/array.c
===================================================================
--- MacRuby/trunk/array.c	2009-08-13 20:44:16 UTC (rev 2309)
+++ MacRuby/trunk/array.c	2009-08-13 22:40:54 UTC (rev 2310)
@@ -1600,18 +1600,17 @@
 {
     VALUE dup;
 
-    if (IS_RARY(ary)) {
+    if (rb_obj_is_kind_of(ary, rb_cRubyArray)) {
 	dup = rb_ary_new();
 	rary_concat(RARY(dup), RARY(ary), 0, RARY(ary)->len);
     }
     else {
 	dup = (VALUE)CFArrayCreateMutableCopy(NULL, 0, (CFArrayRef)ary);
-	if (*(Class *)ary != (Class)rb_cCFArray) {
-	    *(Class *)dup = *(Class *)ary;
-	}
 	CFMakeCollectable((CFMutableArrayRef)dup);
     }
 
+    *(VALUE *)dup = *(VALUE *)ary;
+
     if (OBJ_TAINTED(ary)) {
 	OBJ_TAINT(dup);
     }
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20090813/b82a475c/attachment.html>


More information about the macruby-changes mailing list