|
@@ -7,14 +7,18 @@ JPH_NAMESPACE_BEGIN
|
|
|
template <typename Object>
|
|
|
FixedSizeFreeList<Object>::~FixedSizeFreeList()
|
|
|
{
|
|
|
- // Ensure everything is freed before the freelist is destructed
|
|
|
- JPH_ASSERT(mNumFreeObjects.load(memory_order_relaxed) == mNumPages * mPageSize);
|
|
|
-
|
|
|
- // Free memory for pages
|
|
|
- uint32 num_pages = mNumObjectsAllocated / mPageSize;
|
|
|
- for (uint32 page = 0; page < num_pages; ++page)
|
|
|
- AlignedFree(mPages[page]);
|
|
|
- Free(mPages);
|
|
|
+ // Check if we got our Init call
|
|
|
+ if (mPages != nullptr)
|
|
|
+ {
|
|
|
+ // Ensure everything is freed before the freelist is destructed
|
|
|
+ JPH_ASSERT(mNumFreeObjects.load(memory_order_relaxed) == mNumPages * mPageSize);
|
|
|
+
|
|
|
+ // Free memory for pages
|
|
|
+ uint32 num_pages = mNumObjectsAllocated / mPageSize;
|
|
|
+ for (uint32 page = 0; page < num_pages; ++page)
|
|
|
+ AlignedFree(mPages[page]);
|
|
|
+ Free(mPages);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
template <typename Object>
|