From cab6612285d96ff5e5e995e8fe9062ee66754d6e Mon Sep 17 00:00:00 2001 From: collett Date: Wed, 1 Jan 2020 22:08:17 +0900 Subject: [PATCH] Fix navmesh memory leak. --- src/tools/nav_export/nav/TiledNavmeshGenerator.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/tools/nav_export/nav/TiledNavmeshGenerator.cpp b/src/tools/nav_export/nav/TiledNavmeshGenerator.cpp index 0204910f..82db7831 100644 --- a/src/tools/nav_export/nav/TiledNavmeshGenerator.cpp +++ b/src/tools/nav_export/nav/TiledNavmeshGenerator.cpp @@ -316,8 +316,14 @@ unsigned char* TiledNavmeshGenerator::buildTileMesh( const int tx, const int ty, int cid[512];// TODO: Make grow when returning too many items. const int ncid = rcGetChunksOverlappingRect( m_chunkyMesh, tbmin, tbmax, cid, 512 ); - if( !ncid ) + if ( !ncid ) + { + rcFreeHeightField(m_solid); + m_solid = nullptr; + delete[] m_triareas; + m_triareas = nullptr; return nullptr; + } m_tileTriCount = 0; @@ -452,6 +458,10 @@ unsigned char* TiledNavmeshGenerator::buildTileMesh( const int tx, const int ty, if( m_cset->nconts == 0 ) { + rcFreeCompactHeightfield(m_chf); + rcFreeContourSet(m_cset); + m_chf = nullptr; + m_cset = nullptr; return nullptr; }