summaryrefslogtreecommitdiffhomepage
path: root/src/array.c
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2017-08-19 11:08:46 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2017-08-19 11:08:46 +0900
commit8b3298b2d699e7affbc326a1d67e9004e0e5c4ce (patch)
tree29355d5410c7116d2f1e86d1074007dedb908fee /src/array.c
parent29ad0a796498993b9b839162c47d41536df7cf93 (diff)
downloadmruby-8b3298b2d699e7affbc326a1d67e9004e0e5c4ce.tar.gz
mruby-8b3298b2d699e7affbc326a1d67e9004e0e5c4ce.zip
Unshift pointer move size was wrong (not `len` but `alen`); fix #3780
Diffstat (limited to 'src/array.c')
-rw-r--r--src/array.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/array.c b/src/array.c
index 0360f2177..cec08b351 100644
--- a/src/array.c
+++ b/src/array.c
@@ -570,7 +570,7 @@ mrb_ary_unshift_m(mrb_state *mrb, mrb_value self)
&& a->as.heap.aux.shared->refcnt == 1 /* shared only referenced from this array */
&& a->as.heap.ptr - a->as.heap.aux.shared->ptr >= alen) /* there's room for unshifted item */ {
ary_modify_check(mrb, a);
- a->as.heap.ptr -= len;
+ a->as.heap.ptr -= alen;
ptr = a->as.heap.ptr;
}
else {