diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-06-12 07:41:40 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-06-12 07:41:40 +0000 |
commit | 221496de7cb970c67de14766c4aecb314626ded1 (patch) | |
tree | ddf680b0d73609b32de35dcbbd66ceb5926fb706 | |
parent | c3b81910196894e486fec0c0a5a1273fc35955ea (diff) | |
download | ruby-221496de7cb970c67de14766c4aecb314626ded1.tar.gz |
array.c: fix false assertions
* array.c (rb_ary_sort_bang): remove duplicated assertions.
ARY_HEAP_PTR() implies ary not to be embedded. [ruby-dev:47419]
[Bug #8518]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41253 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-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)); } |