From d548e9bc6c987a4834ce3d65b33108f55e0f7a2c Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Mon, 30 May 2011 17:18:41 +0300 Subject: Fix memory leaks in being, socialwindow classes. --- src/being.cpp | 3 +++ src/gui/socialwindow.cpp | 6 ++++++ src/resources/spritedef.cpp | 2 +- 3 files changed, 10 insertions(+), 1 deletion(-) (limited to 'src') 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::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) -- cgit v1.2.3-70-g09d2