aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeroen van Rijn <Kelimion@users.noreply.github.com>2023-10-22 13:21:22 +0200
committerJeroen van Rijn <Kelimion@users.noreply.github.com>2023-10-22 13:21:22 +0200
commit75a20152600da5259bdd2a87ff84f2cc9d4ec224 (patch)
tree0f99f3f5da1945c70d486629bb35d4226eb306e3
parent18776aa6b9ce7323d502892306f62bfbf46ab1c1 (diff)
Add clear_soa (for #soa[dynamic]T)
-rw-r--r--core/runtime/core_builtin_soa.odin13
1 files changed, 13 insertions, 0 deletions
diff --git a/core/runtime/core_builtin_soa.odin b/core/runtime/core_builtin_soa.odin
index ee2a5f2d0..f3882a9a8 100644
--- a/core/runtime/core_builtin_soa.odin
+++ b/core/runtime/core_builtin_soa.odin
@@ -413,3 +413,16 @@ delete_soa :: proc{
delete_soa_slice,
delete_soa_dynamic_array,
}
+
+
+clear_soa_dynamic_array :: proc(array: ^$T/#soa[dynamic]$E) {
+ when intrinsics.type_struct_field_count(E) != 0 {
+ footer := raw_soa_footer(array)
+ footer.len = 0
+ }
+}
+
+@builtin
+clear_soa :: proc{
+ clear_soa_dynamic_array,
+} \ No newline at end of file