diff --git a/ChangeLog b/ChangeLog index d364242095..6637f0c01c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Thu Oct 10 21:36:16 2013 Masaki Matsushita + + * array.c (rb_ary_compact_bang): use ary_resize_smaller(). + Thu Oct 10 21:00:38 2013 Masaki Matsushita * st.c (st_keys): define st_keys() for performance improvement of diff --git a/array.c b/array.c index 7e8617b771..c45c992840 100644 --- a/array.c +++ b/array.c @@ -4166,10 +4166,7 @@ rb_ary_compact_bang(VALUE ary) if (RARRAY_LEN(ary) == n) { return Qnil; } - ARY_SET_LEN(ary, n); - if (n * 2 < ARY_CAPA(ary) && ARY_DEFAULT_SIZE * 2 < ARY_CAPA(ary)) { - ary_resize_capa(ary, n * 2); - } + ary_resize_smaller(ary, n); return ary; }