diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | array.c | 5 |
2 files changed, 7 insertions, 4 deletions
@@ -1,3 +1,9 @@ +Wed Jun 12 16:41:38 2013 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * 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 <nobu@ruby-lang.org> * io.c (io_getc): fix 7bit coderange condition, check if ascii read @@ -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)); } |