summaryrefslogtreecommitdiff
path: root/src/gui/widgets
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2011-07-05 22:33:12 +0300
committerAndrei Karas <akaras@inbox.ru>2011-07-05 22:33:12 +0300
commita5e45cef061b921981012176ad7dc9cb5e03dacc (patch)
tree80780eec88ab13b2a05269f70fc84bf3a67780ce /src/gui/widgets
parent710a37891458aaa3b924286950250500fb7b3fc3 (diff)
downloadmanaplus-a5e45cef061b921981012176ad7dc9cb5e03dacc.tar.gz
manaplus-a5e45cef061b921981012176ad7dc9cb5e03dacc.tar.bz2
manaplus-a5e45cef061b921981012176ad7dc9cb5e03dacc.tar.xz
manaplus-a5e45cef061b921981012176ad7dc9cb5e03dacc.zip
Fix memory leak in shop window, add missing initialisation to BeingCacheEntry.
Small code style fix.
Diffstat (limited to 'src/gui/widgets')
-rw-r--r--src/gui/widgets/shopitems.cpp10
-rw-r--r--src/gui/widgets/shopitems.h7
2 files changed, 17 insertions, 0 deletions
diff --git a/src/gui/widgets/shopitems.cpp b/src/gui/widgets/shopitems.cpp
index 85ee0a181..c5bcd88c4 100644
--- a/src/gui/widgets/shopitems.cpp
+++ b/src/gui/widgets/shopitems.cpp
@@ -101,6 +101,16 @@ void ShopItems::erase(unsigned int i)
mShopItems.erase(mShopItems.begin() + i);
}
+void ShopItems::del(unsigned int i)
+{
+ if (i >= mShopItems.size())
+ return;
+
+ ShopItem *item = *(mShopItems.begin() + i);
+ mShopItems.erase(mShopItems.begin() + i);
+ delete item;
+}
+
void ShopItems::clear()
{
delete_all(mShopItems);
diff --git a/src/gui/widgets/shopitems.h b/src/gui/widgets/shopitems.h
index cc444fe85..abfcffb71 100644
--- a/src/gui/widgets/shopitems.h
+++ b/src/gui/widgets/shopitems.h
@@ -96,6 +96,13 @@ class ShopItems : public gcn::ListModel
void erase(unsigned int i);
/**
+ * Removes an element from the shop and destroy it.
+ *
+ * @param i index to remove
+ */
+ void del(unsigned int i);
+
+ /**
* Clears the list of items in the shop.
*/
void clear();