aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--array.c3
2 files changed, 5 insertions, 2 deletions
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 <glass.saga@gmail.com>
+
+ * array.c (rb_ary_sample): use rb_ary_dup().
+
Thu Nov 7 09:39:41 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* 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, {