summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2011-05-30 17:18:41 +0300
committerAndrei Karas <akaras@inbox.ru>2011-05-30 17:18:41 +0300
commitd548e9bc6c987a4834ce3d65b33108f55e0f7a2c (patch)
tree97b58a414c6b8c910afb54bfacfc303e926f849d /src
parenta5406f20dba001d4491eb90296c181857c37eabf (diff)
downloadmanaplus-d548e9bc6c987a4834ce3d65b33108f55e0f7a2c.tar.gz
manaplus-d548e9bc6c987a4834ce3d65b33108f55e0f7a2c.tar.bz2
manaplus-d548e9bc6c987a4834ce3d65b33108f55e0f7a2c.tar.xz
manaplus-d548e9bc6c987a4834ce3d65b33108f55e0f7a2c.zip
Fix memory leaks in being, socialwindow classes.
Diffstat (limited to 'src')
-rw-r--r--src/being.cpp3
-rw-r--r--src/gui/socialwindow.cpp6
-rw-r--r--src/resources/spritedef.cpp2
3 files changed, 10 insertions, 1 deletions
diff --git a/src/being.cpp b/src/being.cpp
index f414400be..27b4721b4 100644
--- a/src/being.cpp
+++ b/src/being.cpp
@@ -1716,7 +1716,10 @@ void Being::addToCache()
beingInfoCache.push_front(entry);
if (beingInfoCache.size() >= CACHE_SIZE)
+ {
+ delete beingInfoCache.back();
beingInfoCache.pop_back();
+ }
}
entry->setName(getName());
entry->setLevel(getLevel());
diff --git a/src/gui/socialwindow.cpp b/src/gui/socialwindow.cpp
index 0be9dd70f..d87b94bad 100644
--- a/src/gui/socialwindow.cpp
+++ b/src/gui/socialwindow.cpp
@@ -470,9 +470,14 @@ public:
}
if (!finded)
+ {
+ delete *ai;
avatars->erase(ai);
+ }
else
+ {
++ai;
+ }
}
std::vector<std::string>::iterator i = names.begin();
@@ -745,6 +750,7 @@ public:
if (ava && ava->getX() == x && ava->getY() == y)
{
+ delete ava;
avatars->erase(i);
return;
}
diff --git a/src/resources/spritedef.cpp b/src/resources/spritedef.cpp
index 2cd59ee29..37610f659 100644
--- a/src/resources/spritedef.cpp
+++ b/src/resources/spritedef.cpp
@@ -353,7 +353,7 @@ SpriteDef::~SpriteDef()
delete *i;
}
-//need actions.clear?
+ mActions.clear();
for (ImageSetIterator i = mImageSets.begin();
i != mImageSets.end(); ++i)