summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjacob1 <jfu614@gmail.com>2013-02-24 20:23:34 (GMT)
committer jacob1 <jfu614@gmail.com>2013-02-24 20:23:34 (GMT)
commitb92bd245c8b1311b6cd63171611e47a6468e410f (patch)
tree141f09ef4f17901013442c2dd381ac0032178836 /src
parent0939494747908bb702f24598e883c3d1f70e3710 (diff)
downloadpowder-b92bd245c8b1311b6cd63171611e47a6468e410f.zip
powder-b92bd245c8b1311b6cd63171611e47a6468e410f.tar.gz
fix 4 MB memory leak on every save
Diffstat (limited to 'src')
-rw-r--r--src/client/GameSave.cpp10
-rw-r--r--src/game/GameModel.cpp4
2 files changed, 14 insertions, 0 deletions
diff --git a/src/client/GameSave.cpp b/src/client/GameSave.cpp
index af8bbf2..f50d8bd 100644
--- a/src/client/GameSave.cpp
+++ b/src/client/GameSave.cpp
@@ -2064,6 +2064,16 @@ fin:
free(partsSaveIndex);
if (soapLinkData)
free(soapLinkData);
+ if (partsPosData)
+ free(partsPosData);
+ if (partsPosFirstMap)
+ free(partsPosFirstMap);
+ if (partsPosLastMap)
+ free(partsPosLastMap);
+ if (partsPosCount)
+ free(partsPosCount);
+ if (partsPosLink)
+ free(partsPosLink);
return (char*)outputData;
}
diff --git a/src/game/GameModel.cpp b/src/game/GameModel.cpp
index bc8ec4f..0dbf2f7 100644
--- a/src/game/GameModel.cpp
+++ b/src/game/GameModel.cpp
@@ -175,6 +175,10 @@ GameModel::~GameModel()
{
delete brushList[i];
}
+ for(std::deque<Snapshot*>::iterator iter = history.begin(), end = history.end(); iter != end; ++iter)
+ {
+ delete *iter;
+ }
delete sim;
delete ren;
if(placeSave)