mirror of
https://github.com/ruby/ruby.git
synced 2025-08-15 13:39:04 +02:00
* time.c (time_new_internal): avoid loop to calculate negative
div, mod. * time.c (time_cmp): should handle Bignums. * array.c (rb_ary_pop): should ELTS_SHARED flag check before REALLOC. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1909 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
a59c599209
commit
d8c75ddad3
5 changed files with 51 additions and 22 deletions
4
array.c
4
array.c
|
@ -336,7 +336,9 @@ rb_ary_pop(ary)
|
|||
{
|
||||
rb_ary_modify_check(ary);
|
||||
if (RARRAY(ary)->len == 0) return Qnil;
|
||||
if (RARRAY(ary)->len * 10 < RARRAY(ary)->aux.capa && RARRAY(ary)->aux.capa > ARY_DEFAULT_SIZE) {
|
||||
if (!FL_TEST(ary, ELTS_SHARED) &&
|
||||
RARRAY(ary)->len * 10 < RARRAY(ary)->aux.capa &&
|
||||
RARRAY(ary)->aux.capa > ARY_DEFAULT_SIZE) {
|
||||
RARRAY(ary)->aux.capa = RARRAY(ary)->len * 2;
|
||||
REALLOC_N(RARRAY(ary)->ptr, VALUE, RARRAY(ary)->aux.capa);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue