* array.c (rb_ary_join): do not repeat self in a recursive array.
[ruby-dev:37019]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_7@22058 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* array.c (rb_ary_fill): check if beg is too big.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_7@17761 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
ArgumentError on negative length. This behaviour shall change
in a future release.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_7@17713 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* array.c (rb_ary_fill): not depend on unspecified behavior at integer
overflow. reported by Vincenzo Iozzo <snagg AT openssl.it>.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_7@17686 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
rb_ary_aplice, rb_ary_times): integer overflows should be
checked. based on patches from Drew Yao <ayao at apple.com>
fixed CVE-2008-2726
* string.c (rb_str_buf_append): fixed unsafe use of alloca,
which led memory corruption. based on a patch from Drew Yao
<ayao at apple.com> fixed CVE-2008-2726
* sprintf.c (rb_str_format): backported from trunk.
* intern.h: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_7@17460 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Enumerable#count and #find_index; backported from 1.9.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@16004 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
possible.
* array.c (rb_ary_pop, rb_ary_pop_m, rb_ary_shift, rb_ary_shift_m):
Array#pop and Array#shift can take an optional argument
specifying the number of elements to remove and return;
backported from 1.9.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@15952 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
rb_ary_reject_bang): Calling Array#each, #each_index,
#reverse_each, #reject! or #delete_if without a block now
returns an enumerator; backported from 1.9.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@15938 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
take a block instead of an argument; backported from 1.9.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@15936 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
suggested by Bertram Scharpf <lists@bertram-scharpf.de> in
[ruby-talk:134083].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@15917 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-size) is given, do not raise an exception but return nil just
like slice() does.
* test/ruby/test_array.rb (TestArray::test_slice,
TestArray::test_slice!): Pull in test cases from trunk.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@14184 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
using #to_ary.
* hash.c (rb_hash_s_create): check and convert argument hash
using #to_hash.
* hash.c (rb_hash_s_create): Hash#[] now takes assocs as source of
hash conversion.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@13803 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
body is shared. a patch from Kent Sibilev <ksruby at gmail.com>.
[ruby-core:08922]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@11058 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
uninitialized array element. a patch from Pat Eyler
<rubypate at gmail.com>. [ruby-core:07809]
* array.c (rb_ary_fill): initialize local variables first. a
patch from Pat Eyler <rubypate at gmail.com>. [ruby-core:07810]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10128 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
gcc 3.3.5 (Debian 1:3.3.5-13).
When rb_ary_push is called, there was no register which contains
`hash' but `&RHASH(hash)->tbl' instead.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9683 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
a = [0,1,2,3,4,5,6,7,8,9]
a.fill {|i| a[i] * 10} #=> [nil, nil, ...., nil]
previous commit has advantange for early garbage collection, but
potensially would break some script. so I reverted behavior.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9543 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
an array is expanded in the fill process. [ruby-core:06625]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9539 b2dd03c8-39d4-4d8f-98ff-823fe69b080e