Skip to content

Commit ff93e8a

Browse files
committed
builtin: eliminate the usage of _us32_eq for frequent builtin array operations
1 parent fee56b1 commit ff93e8a

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

vlib/builtin/array.v

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -116,10 +116,11 @@ pub fn (a array) repeat(count int) array {
116116
len: count * a.len
117117
cap: count * a.len
118118
}
119+
size_of_array := int(sizeof(array))
119120
for i in 0 .. count {
120-
if a.len > 0 && a.element_size == sizeof(array) {
121+
if a.len > 0 && a.element_size == size_of_array {
121122
ary := array{}
122-
unsafe {C.memcpy(&ary, a.data, sizeof(array))}
123+
unsafe {C.memcpy(&ary, a.data, size_of_array)}
123124
ary_clone := ary.clone()
124125
unsafe {C.memcpy(arr.get_unsafe(i * a.len), &ary_clone, a.len * a.element_size)}
125126
} else {
@@ -328,10 +329,11 @@ pub fn (a &array) clone() array {
328329
cap: a.cap
329330
}
330331
// Recursively clone-generated elements if array element is array type
331-
if a.element_size == sizeof(array) {
332+
size_of_array := int(sizeof(array))
333+
if a.element_size == size_of_array {
332334
for i in 0 .. a.len {
333335
ar := array{}
334-
unsafe {C.memcpy(&ar, a.get_unsafe(i), sizeof(array))}
336+
unsafe {C.memcpy(&ar, a.get_unsafe(i), size_of_array)}
335337
ar_clone := ar.clone()
336338
unsafe {arr.set_unsafe(i, &ar_clone)}
337339
}

0 commit comments

Comments
 (0)