summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--array.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 4f9c8e0759..47adb06b32 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Mon Jul 22 13:19:22 2013 Koichi Sasada <ko1@atdot.net>
+
+ * array.c (ary_resize_capa): use RARRAY_RAWPTR() because
+ this code creates no new references.
+
Mon Jul 22 12:58:18 2013 Koichi Sasada <ko1@atdot.net>
* array.c (ary_memfill): added.
diff --git a/array.c b/array.c
index c05ee1a23d..8022ab2cc6 100644
--- a/array.c
+++ b/array.c
@@ -263,12 +263,12 @@ ary_resize_capa(VALUE ary, long capacity)
else {
if (!ARY_EMBED_P(ary)) {
long len = RARRAY_LEN(ary);
- VALUE *ptr = RARRAY_PTR(ary);
+ const VALUE *ptr = RARRAY_RAWPTR(ary);
if (len > capacity) len = capacity;
MEMCPY((VALUE *)RARRAY(ary)->as.ary, ptr, VALUE, len);
FL_SET_EMBED(ary);
ARY_SET_LEN(ary, len);
- xfree(ptr);
+ xfree((VALUE *)ptr);
}
}
}