diff --git a/ChangeLog b/ChangeLog index 221e6f9d37..d0fd0dc0ac 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Wed Jun 12 16:41:38 2013 Nobuyoshi Nakada + + * array.c (rb_ary_sort_bang): remove duplicated assertions. + ARY_HEAP_PTR() implies ary not to be embedded. [ruby-dev:47419] + [Bug #8518] + Wed Jun 12 12:44:45 2013 Nobuyoshi Nakada * io.c (io_getc): fix 7bit coderange condition, check if ascii read diff --git a/array.c b/array.c index f3076d7cf3..da22b4c841 100644 --- a/array.c +++ b/array.c @@ -2323,7 +2323,6 @@ rb_ary_sort_bang(VALUE ary) rb_ary_modify(ary); if (ARY_EMBED_P(tmp)) { - assert(ARY_EMBED_P(tmp)); if (ARY_SHARED_P(ary)) { /* ary might be destructively operated in the given block */ rb_ary_unshare(ary); } @@ -2332,9 +2331,7 @@ rb_ary_sort_bang(VALUE ary) ARY_SET_LEN(ary, ARY_EMBED_LEN(tmp)); } else { - assert(!ARY_EMBED_P(tmp)); - if (ARY_HEAP_PTR(ary) == ARY_HEAP_PTR(tmp)) { - assert(!ARY_EMBED_P(ary)); + if (!ARY_EMBED_P(ary) && ARY_HEAP_PTR(ary) == ARY_HEAP_PTR(tmp)) { FL_UNSET_SHARED(ary); ARY_SET_CAPA(ary, RARRAY_LEN(tmp)); }