builtin: fix a bug in array_delete

pull/5002/head
Delyan Angelov 2020-05-24 11:10:41 +03:00
parent 7963e48ca1
commit 2adfbfc830
1 changed files with 3 additions and 1 deletions

View File

@ -148,7 +148,9 @@ pub fn (mut a array) delete(i int) {
}
}
size := a.element_size
C.memmove(byteptr(a.data) + i * size, byteptr(a.data) + (i + 1) * size, (a.len - i) * size)
// NB: if a is [12,34], a.len = 2, a.delete(0)
// should move (2-0-1) elements = 1 element (the 34) forward
C.memmove(byteptr(a.data) + i * size, byteptr(a.data) + (i + 1) * size, (a.len - i - 1) * size)
a.len--
}