1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00

array: fix multiple array.repeat index error

This commit is contained in:
yuyi
2020-06-12 17:42:26 +08:00
committed by GitHub
parent 827a9e221f
commit b4ad174b7f
2 changed files with 12 additions and 1 deletions

View File

@ -119,7 +119,14 @@ pub fn (a array) repeat(count int) array {
cap: count * a.len
}
for i in 0..count {
C.memcpy(byteptr(arr.data) + i * a.len * a.element_size, byteptr(a.data), a.len * a.element_size)
if a.len > 0 && a.element_size == sizeof(array) {
ary := array{}
C.memcpy(&ary, a.data, sizeof(array))
ary_clone := ary.clone()
C.memcpy(byteptr(arr.data) + i * a.len * a.element_size, &ary_clone, a.len * a.element_size)
} else {
C.memcpy(byteptr(arr.data) + i * a.len * a.element_size, byteptr(a.data), a.len * a.element_size)
}
}
return arr
}