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 + + * array.c (ary_resize_capa): use RARRAY_RAWPTR() because + this code creates no new references. + Mon Jul 22 12:58:18 2013 Koichi Sasada * 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); } } }