diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2025-06-26 09:54:00 -0400 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2025-06-26 09:54:00 -0400 |
| commit | 73795506229111ac8b65082921d563e53b5bdecd (patch) | |
| tree | 764d0bcd52f2f819a463fbc18d21c3d783d28b03 /src | |
| parent | 769d4eae3cd98e717a9bda7612cf755ac0083f6f (diff) | |
pke: clean up memory leaks
Diffstat (limited to 'src')
| -rw-r--r-- | src/entities.cpp | 5 | ||||
| -rw-r--r-- | src/thread-pool.cpp | 1 |
2 files changed, 6 insertions, 0 deletions
diff --git a/src/entities.cpp b/src/entities.cpp index dc54cdf..6fc56a8 100644 --- a/src/entities.cpp +++ b/src/entities.cpp @@ -1141,6 +1141,7 @@ void EntityType_Load(EntityType &et) { // cleanup AM_Release(modelBinHandle); AM_Release(assetHandle); + cgltf_free(const_cast<cgltf_data*>(helper.gltfData)); helper.etdHelpers.bkt = nullptr; helper.vertMemoryRequirements.bkt = nullptr; helper.instMemoryRequirements.bkt = nullptr; @@ -1158,6 +1159,10 @@ void EntityType_Unload(EntityType &et, CompGrBinds *grBindsArr[1]) { EntityType_Inner_DestroyDescriptors(&et); for (long k = 0; k < et.detailsCount; ++k) { EntityTypeDetails &etd = et.details[k]; + + // TODO maybe i should just change `shape` to the actual type rather than a parent type? + if (etd.bt.shape != nullptr) pk_delete_bkt(etd.bt.shape, sizeof(btConvexHullShape), MemBkt_Bullet); + auto *grBinds = grBindsArr[k]; if (grBinds != nullptr) { if (grBinds->vertexBD.buffer != VK_NULL_HANDLE) diff --git a/src/thread-pool.cpp b/src/thread-pool.cpp index f110e42..68353b9 100644 --- a/src/thread-pool.cpp +++ b/src/thread-pool.cpp @@ -43,6 +43,7 @@ void ThreadRun(ThreadPool *tp) { } assert(j != nullptr); (*j)(); + j->~packaged_task<void()>(); pk_delete<std::packaged_task<void()>>(j, tp->bkt); tp->completedCount = tp->completedCount + 1; } |
