Zero existing memory when using resize_soa (fixes #5614)

This commit is contained in:
Damian Tarnawski
2025-08-23 14:28:25 +02:00
parent 2b6ed996be
commit 18a2980d26
2 changed files with 58 additions and 0 deletions
+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