[macruby-changes] [1766] MacRuby/branches/experimental/array.c

source_changes at macosforge.org source_changes at macosforge.org
Fri Jun 5 18:50:02 PDT 2009


Revision: 1766
          http://trac.macosforge.org/projects/ruby/changeset/1766
Author:   lsansonetti at apple.com
Date:     2009-06-05 18:50:02 -0700 (Fri, 05 Jun 2009)
Log Message:
-----------
array#flatten!: check if receiver is modifiable

Modified Paths:
--------------
    MacRuby/branches/experimental/array.c

Modified: MacRuby/branches/experimental/array.c
===================================================================
--- MacRuby/branches/experimental/array.c	2009-06-06 01:44:56 UTC (rev 1765)
+++ MacRuby/branches/experimental/array.c	2009-06-06 01:50:02 UTC (rev 1766)
@@ -2107,7 +2107,9 @@
 {
     orig = to_ary(orig);
     rb_ary_modify_check(copy);
-    if (copy == orig) return copy;
+    if (copy == orig) {
+	return copy;
+    }
     CFArrayRemoveAllValues((CFMutableArrayRef)copy);
     CFArrayAppendArray((CFMutableArrayRef)copy,
 	(CFArrayRef)orig,
@@ -2921,11 +2923,18 @@
     VALUE result, lv;
 
     rb_scan_args(argc, argv, "01", &lv);
-    if (!NIL_P(lv)) level = NUM2INT(lv);
-    if (level == 0) return ary;
+    rb_ary_modify(ary);
+    if (!NIL_P(lv)) {
+	level = NUM2INT(lv);
+    }
+    if (level == 0) {
+	return ary;
+    }
 
     result = flatten(ary, level, &mod);
-    if (mod == 0) return Qnil;
+    if (mod == 0) {
+	return Qnil;
+    }
     rb_ary_replace(ary, result);
 
     return ary;
@@ -2956,11 +2965,17 @@
     VALUE result, lv;
 
     rb_scan_args(argc, argv, "01", &lv);
-    if (!NIL_P(lv)) level = NUM2INT(lv);
-    if (level == 0) return ary;
+    if (!NIL_P(lv)) {
+	level = NUM2INT(lv);
+    }
+    if (level == 0) {
+	return ary;
+    }
 
     result = flatten(ary, level, &mod);
-    if (OBJ_TAINTED(ary)) OBJ_TAINT(result);
+    if (OBJ_TAINTED(ary)) {
+	OBJ_TAINT(result);
+    }
 
     return result;
 }
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20090605/47489c5b/attachment-0001.html>


More information about the macruby-changes mailing list