diff --git a/ChangeLog b/ChangeLog index 532672021c..4959beb352 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Thu Nov 7 10:34:12 2013 Masaki Matsushita + + * array.c (rb_ary_sample): use rb_ary_dup(). + Thu Nov 7 09:39:41 2013 Nobuyoshi Nakada * vm_trace.c (rb_threadptr_exec_event_hooks_orig): errinfo should not diff --git a/array.c b/array.c index f1919fd1fe..6b2c6b2945 100644 --- a/array.c +++ b/array.c @@ -4596,8 +4596,7 @@ rb_ary_sample(int argc, VALUE *argv, VALUE ary) }); } else { - result = rb_ary_subseq(ary, 0, len); - rb_ary_modify(result); + result = rb_ary_dup(ary); RBASIC_CLEAR_CLASS(result); RB_GC_GUARD(ary); RARRAY_PTR_USE(result, ptr_result, {