Zero existing memory when using resize_soa (fixes #5614)

This commit is contained in:
Damian Tarnawski committed 2025-08-23 14:28:25 +02:00
1 parent 2b6ed996be
commit 18a2980d26
2 files changed
+58

No files matched your search

+34
View File
@@ -179,6 +179,40 @@ test_map_get :: proc(t: ^testing.T) {
}
}
@(test)
test_soa_array_resize :: proc(t: ^testing.T) {
V :: struct {x: int, y: u8}
array := make(#soa[dynamic]V, 0, 2)
defer delete(array)
append(&array, V{1, 2}, V{3, 4})
testing.expect_value(t, len(array), 2)
testing.expect_value(t, array[0], V{1, 2})
testing.expect_value(t, array[1], V{3, 4})
resize(&array, 1)
testing.expect_value(t, len(array), 1)
testing.expect_value(t, array[0], V{1, 2})
resize(&array, 2)
testing.expect_value(t, len(array), 2)
testing.expect_value(t, array[0], V{1, 2})
testing.expect_value(t, array[1], V{0, 0})
resize(&array, 0)
resize(&array, 3)
testing.expect_value(t, len(array), 3)
testing.expect_value(t, array[0], V{0, 0})
testing.expect_value(t, array[1], V{0, 0})
testing.expect_value(t, array[2], V{0, 0})
}
@(test)
test_memory_equal :: proc(t: ^testing.T) {
data: [256]u8