From b1d2f4ad1895684d513ac40553516263bc8a5876 Mon Sep 17 00:00:00 2001 From: assiduous Date: Fri, 4 Dec 2020 17:59:50 -0800 Subject: DynamicAtlasManager: fixed dtor to allow moved-out objects --- .../GraphicsAccessories/src/DynamicAtlasManager.cpp | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'Graphics') diff --git a/Graphics/GraphicsAccessories/src/DynamicAtlasManager.cpp b/Graphics/GraphicsAccessories/src/DynamicAtlasManager.cpp index 5596d935..61da8516 100644 --- a/Graphics/GraphicsAccessories/src/DynamicAtlasManager.cpp +++ b/Graphics/GraphicsAccessories/src/DynamicAtlasManager.cpp @@ -49,14 +49,23 @@ DynamicAtlasManager::DynamicAtlasManager(Uint32 Width, Uint32 Height) : DynamicAtlasManager::~DynamicAtlasManager() { + if (m_RegionMap) + { #if DILIGENT_DEBUG - DbgVerifyConsistency(); + DbgVerifyConsistency(); #endif - VERIFY_EXPR(m_FreeRegionsByWidth.size() == m_FreeRegionsByHeight.size()); - VERIFY(m_dbgRegions.size() == 1 && m_dbgRegions.begin()->R == Region(0, 0, m_Width, m_Height) && !m_dbgRegions.begin()->IsAllocated, - "Not all allocations have been freed"); - DEV_CHECK_ERR(m_FreeRegionsByWidth.size() == 1, "There expected to be a single free region"); + VERIFY_EXPR(m_FreeRegionsByWidth.size() == m_FreeRegionsByHeight.size()); + VERIFY(m_dbgRegions.size() == 1 && m_dbgRegions.begin()->R == Region(0, 0, m_Width, m_Height) && !m_dbgRegions.begin()->IsAllocated, + "Not all allocations have been freed"); + DEV_CHECK_ERR(m_FreeRegionsByWidth.size() == 1, "There expected to be a single free region"); + } + else + { + VERIFY_EXPR(m_FreeRegionsByWidth.empty()); + VERIFY_EXPR(m_FreeRegionsByHeight.empty()); + VERIFY_EXPR(m_dbgRegions.empty()); + } } DynamicAtlasManager::Region DynamicAtlasManager::Allocate(Uint32 Width, Uint32 Height) -- cgit v1.2.3