summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2023-10-09 10:40:57 -0400
committerJonathan Bradley <jcb@pikum.xyz>2023-10-09 10:40:57 -0400
commit96ea43e609e59a166fd6fe65511db3fe9fe777e9 (patch)
treea1b03c77dfc51e3200c9006f52f33323cc559fd9 /src
parent5a7d0e4f91736aa3794c0fd94741565ba96babec (diff)
bucket teardown
Diffstat (limited to 'src')
-rw-r--r--src/asset-manager.cpp3
-rw-r--r--src/asset-manager.hpp1
-rw-r--r--src/ecs.cpp3
-rw-r--r--src/main.cpp3
-rw-r--r--src/memory.hpp7
5 files changed, 16 insertions, 1 deletions
diff --git a/src/asset-manager.cpp b/src/asset-manager.cpp
index ef5a3b4..d463cff 100644
--- a/src/asset-manager.cpp
+++ b/src/asset-manager.cpp
@@ -99,3 +99,6 @@ void AM_DebugPrint() {
}
}
+void AM_Teardown() {
+ Buckets_Destroy(Asset_BucketContainer);
+}
diff --git a/src/asset-manager.hpp b/src/asset-manager.hpp
index 6d0259b..7c7f878 100644
--- a/src/asset-manager.hpp
+++ b/src/asset-manager.hpp
@@ -22,6 +22,7 @@ AssetHandle AM_Register(const void *data, int64_t size, const char *key);
AssetHandle AM_Register(const char *path);
void AM_Destroy(AssetHandle assetHandle);
const Asset *AM_Get(AssetHandle assetHandle);
+void AM_Teardown();
void AM_DebugPrint();
#endif /* PKE_ASSET_MANAGER_HPP */
diff --git a/src/ecs.cpp b/src/ecs.cpp
index 88088f5..fe1dfb6 100644
--- a/src/ecs.cpp
+++ b/src/ecs.cpp
@@ -397,4 +397,7 @@ void ECS_Teardown() {
entitiesYetToBeRemoved.~DynArray();
EntitiesToBeRemoved.~DynArray();
entitiesMarkedForRemoval.~DynArray();
+ Buckets_Destroy(Entities_BucketContainer);
+ Buckets_Destroy(Comp_GrBinds_BucketContainer);
+ Buckets_Destroy(Comp_Instance_BucketContainer);
}
diff --git a/src/main.cpp b/src/main.cpp
index 5026013..9a6a955 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -100,9 +100,10 @@ int main() {
Event_Teardown();
EntityType_Teardown();
ECS_Teardown();
+ AM_DebugPrint();
+ AM_Teardown();
DestroyWindow();
Pke_DebugPrint();
- AM_DebugPrint();
printf("PKE EXITING\n");
return 0;
}
diff --git a/src/memory.hpp b/src/memory.hpp
index 6d431fc..50be56b 100644
--- a/src/memory.hpp
+++ b/src/memory.hpp
@@ -98,4 +98,11 @@ static inline constexpr uint64_t Buckets_GetItemIndex(uint64_t handle) {
return handle >> 32;
}
+template <typename T, typename CT>
+static inline constexpr void Buckets_Destroy(BucketContainer<T, CT> &bktContainer) {
+ if (bktContainer.buckets == nullptr || bktContainer.buckets == CAFE_BABE(T)) return;
+ Pke_Delete<T>(bktContainer.buckets, bktContainer.bucketCounter);
+ bktContainer.buckets = CAFE_BABE(T);
+}
+
#endif /* PKE_MEMORY_HPP */