diff --git a/array.c b/array.c index 27126cefbc..a59cb6c3e9 100644 --- a/array.c +++ b/array.c @@ -30,6 +30,7 @@ VALUE rb_cArray; #define ARY_DEFAULT_SIZE 16 #define ARY_MAX_SIZE (LONG_MAX / (int)sizeof(VALUE)) +#define SMALL_ARRAY_LEN 16 # define ARY_SHARED_P(ary) \ (assert(!FL_TEST((ary), ELTS_SHARED) || !FL_TEST((ary), RARRAY_EMBED_FLAG)), \ @@ -3985,6 +3986,20 @@ rb_ary_includes(VALUE ary, VALUE item) return Qfalse; } +static VALUE +rb_ary_includes_by_eql(VALUE ary, VALUE item) +{ + long i; + VALUE e; + + for (i=0; i