diff options
author | Andrei Karas <akaras@inbox.ru> | 2011-07-05 22:33:12 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2011-07-05 22:33:12 +0300 |
commit | a5e45cef061b921981012176ad7dc9cb5e03dacc (patch) | |
tree | 80780eec88ab13b2a05269f70fc84bf3a67780ce /src/gui/widgets | |
parent | 710a37891458aaa3b924286950250500fb7b3fc3 (diff) | |
download | manaplus-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.cpp | 10 | ||||
-rw-r--r-- | src/gui/widgets/shopitems.h | 7 |
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(); |