Fixed a memory leak in cPrefabPiecePool.
The pool pieces weren't freed upon pool destruction.
This commit is contained in:
parent
e06f786f11
commit
d29b242674
@ -26,6 +26,34 @@ cPrefabPiecePool::cPrefabPiecePool(
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
cPrefabPiecePool::~cPrefabPiecePool()
|
||||||
|
{
|
||||||
|
Clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void cPrefabPiecePool::Clear(void)
|
||||||
|
{
|
||||||
|
m_PiecesByConnector.clear();
|
||||||
|
for (cPieces::iterator itr = m_AllPieces.begin(), end = m_AllPieces.end(); itr != end; ++itr)
|
||||||
|
{
|
||||||
|
delete *itr;
|
||||||
|
}
|
||||||
|
m_AllPieces.clear();
|
||||||
|
for (cPieces::iterator itr = m_StartingPieces.begin(), end = m_StartingPieces.end(); itr != end; ++itr)
|
||||||
|
{
|
||||||
|
delete *itr;
|
||||||
|
}
|
||||||
|
m_StartingPieces.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void cPrefabPiecePool::AddPieceDefs(const cPrefab::sDef * a_PieceDefs, size_t a_NumPieceDefs)
|
void cPrefabPiecePool::AddPieceDefs(const cPrefab::sDef * a_PieceDefs, size_t a_NumPieceDefs)
|
||||||
{
|
{
|
||||||
ASSERT(a_PieceDefs != NULL);
|
ASSERT(a_PieceDefs != NULL);
|
||||||
|
@ -34,6 +34,12 @@ public:
|
|||||||
const cPrefab::sDef * a_StartingPieceDefs, size_t a_NumStartingPieceDefs
|
const cPrefab::sDef * a_StartingPieceDefs, size_t a_NumStartingPieceDefs
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/** Destroys the pool, freeing all pieces. */
|
||||||
|
~cPrefabPiecePool();
|
||||||
|
|
||||||
|
/** Removes and frees all pieces from this pool. */
|
||||||
|
void Clear(void);
|
||||||
|
|
||||||
/** Adds pieces from the specified definitions into m_AllPieces. Also adds the pieces into
|
/** Adds pieces from the specified definitions into m_AllPieces. Also adds the pieces into
|
||||||
the m_PiecesByConnector map.
|
the m_PiecesByConnector map.
|
||||||
May be called multiple times with different PieceDefs, will add all such pieces. */
|
May be called multiple times with different PieceDefs, will add all such pieces. */
|
||||||
@ -44,7 +50,6 @@ public:
|
|||||||
May be called multiple times with different PieceDefs, will add all such pieces. */
|
May be called multiple times with different PieceDefs, will add all such pieces. */
|
||||||
void AddStartingPieceDefs(const cPrefab::sDef * a_StartingPieceDefs, size_t a_NumStartingPieceDefs);
|
void AddStartingPieceDefs(const cPrefab::sDef * a_StartingPieceDefs, size_t a_NumStartingPieceDefs);
|
||||||
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
/** The type used to map a connector type to the list of pieces with that connector */
|
/** The type used to map a connector type to the list of pieces with that connector */
|
||||||
|
Loading…
Reference in New Issue
Block a user