[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