mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Improve Array#- efficiency [Fixes GH-1756]
When doing the difference of a small array with a big one it is not efficient in both time and memory to convert the second one to a hash. From: Ana María Martínez Gómez <ammartinez@suse.de> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61330 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
5c3f9641c0
commit
0d09ee1e73
1 changed files with 1 additions and 1 deletions
2
array.c
2
array.c
|
@ -4163,7 +4163,7 @@ rb_ary_diff(VALUE ary1, VALUE ary2)
|
|||
ary2 = to_ary(ary2);
|
||||
ary3 = rb_ary_new();
|
||||
|
||||
if (RARRAY_LEN(ary2) <= SMALL_ARRAY_LEN) {
|
||||
if (RARRAY_LEN(ary1) <= SMALL_ARRAY_LEN || RARRAY_LEN(ary2) <= SMALL_ARRAY_LEN) {
|
||||
for (i=0; i<RARRAY_LEN(ary1); i++) {
|
||||
VALUE elt = rb_ary_elt(ary1, i);
|
||||
if (rb_ary_includes_by_eql(ary2, elt)) continue;
|
||||
|
|
Loading…
Add table
Reference in a new issue