Revision: 400 http://trac.macosforge.org/projects/ruby/changeset/400 Author: lsansonetti@apple.com Date: 2008-08-02 22:23:47 -0700 (Sat, 02 Aug 2008) Log Message: ----------- faster Array#count Modified Paths: -------------- MacRuby/branches/lrz_unstable/array.c Modified: MacRuby/branches/lrz_unstable/array.c =================================================================== --- MacRuby/branches/lrz_unstable/array.c 2008-08-03 05:23:25 UTC (rev 399) +++ MacRuby/branches/lrz_unstable/array.c 2008-08-03 05:23:47 UTC (rev 400) @@ -3351,17 +3351,14 @@ } else { VALUE obj; - long i, count = RARRAY_LEN(ary); + long count = RARRAY_LEN(ary); rb_scan_args(argc, argv, "1", &obj); if (rb_block_given_p()) { rb_warn("given block not used"); } #if WITH_OBJC - for (i = 0; i < count; i++) { - if (rb_equal(RARRAY_AT(ary, i), obj)) - n++; - } + n = CFArrayGetCountOfValue((CFArrayRef)ary, CFRangeMake(0, count), RB2OC(obj)); #else for (p = RARRAY_PTR(ary), pend = p + RARRAY_LEN(ary); p < pend; p++) { if (rb_equal(*p, obj)) n++;