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

cgen: array_init_with_default

This commit is contained in:
yuyi
2020-05-16 21:21:37 +08:00
committed by GitHub
parent 5767576deb
commit 9b6ee8e77d
3 changed files with 38 additions and 3 deletions

View File

@ -27,6 +27,22 @@ fn __new_array(mylen int, cap int, elm_size int) array {
return arr
}
fn __new_array_with_default(mylen int, cap int, elm_size int, val voidptr) array {
cap_ := if cap < mylen { mylen } else { cap }
arr := array{
len: mylen
cap: cap_
element_size: elm_size
data: vcalloc(cap_ * elm_size)
}
if val != 0 {
for i in 0..arr.len {
C.memcpy(charptr(arr.data) + i*elm_size, val, elm_size)
}
}
return arr
}
// Private function, used by V (`nums := [1, 2, 3]`)
fn new_array_from_c_array(len, cap, elm_size int, c_array voidptr) array {
cap_ := if cap < len { len } else { cap }