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

source_changes at macosforge.org source_changes at macosforge.org
Thu Apr 17 20:47:56 PDT 2008


Revision: 151
          http://trac.macosforge.org/projects/ruby/changeset/151
Author:   lsansonetti at apple.com
Date:     2008-04-17 20:47:56 -0700 (Thu, 17 Apr 2008)

Log Message:
-----------
better Array#to_a

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

Modified: MacRuby/trunk/array.c
===================================================================
--- MacRuby/trunk/array.c	2008-04-18 03:47:40 UTC (rev 150)
+++ MacRuby/trunk/array.c	2008-04-18 03:47:56 UTC (rev 151)
@@ -102,7 +102,7 @@
 } while (0)
 #endif
 
-static VALUE rb_ary_frozen_p(VALUE ary);
+VALUE rb_ary_frozen_p(VALUE ary);
 
 static inline void
 rb_ary_modify_check(VALUE ary)
@@ -171,7 +171,7 @@
  *  while being sorted).
  */
 
-static VALUE
+VALUE
 rb_ary_frozen_p(VALUE ary)
 {
 #if WITH_OBJC
@@ -1747,15 +1747,11 @@
  *  the receiver to an Array object.
  */
 
-#if WITH_OBJC
-static bool rb_objc_ary_is_pure(VALUE ary);
-#endif
-
 static VALUE
 rb_ary_to_a(VALUE ary)
 {
 #if WITH_OBJC
-    if (!rb_objc_ary_is_pure(ary)) {
+    if (rb_obj_is_kind_of(ary, rb_cArray) == Qfalse) {
 #else
     if (rb_obj_class(ary) != rb_cArray) {
 #endif
@@ -3795,7 +3791,8 @@
 	for (i = 0; i < nlen; i++) {
 	    rb_ary_store(cc, lev, RARRAY_AT(ary, stack[lev+1]));
 	    for (lev++; lev < n; lev++) {
-		rb_ary_store(cc, lev, RARRAY_AT(ary, stack[lev+1] = stack[lev]+1));
+		stack[lev+1] = stack[lev]+1;
+		rb_ary_store(cc, lev, RARRAY_AT(ary, stack[lev+1]));
 	    }
 #if WITH_OBJC
 	    rb_yield(rb_ary_dup(cc));

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/macruby-changes/attachments/20080417/b50e4534/attachment.html


More information about the macruby-changes mailing list