summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/colour.cc
diff options
context:
space:
mode:
authorAdam Borowski <kilobyte@angband.pl>2011-08-09 16:34:23 +0200
committerAdam Borowski <kilobyte@angband.pl>2011-08-10 16:42:58 +0200
commit224edcce586cdb9ca41cadd76d54b5ac4b34a2cd (patch)
tree19f74b4a3de10722f92f9adc017da1ea9f7011ef /crawl-ref/source/colour.cc
parent0b752a20f1d3266a055d3b11c8e88c1668ed9abc (diff)
downloadcrawl-ref-224edcce586cdb9ca41cadd76d54b5ac4b34a2cd.tar.gz
crawl-ref-224edcce586cdb9ca41cadd76d54b5ac4b34a2cd.zip
Fix a slight memory leak on restart_after_game.
Diffstat (limited to 'crawl-ref/source/colour.cc')
-rw-r--r--crawl-ref/source/colour.cc14
1 files changed, 10 insertions, 4 deletions
diff --git a/crawl-ref/source/colour.cc b/crawl-ref/source/colour.cc
index 65b34f6279..8ac6c92d95 100644
--- a/crawl-ref/source/colour.cc
+++ b/crawl-ref/source/colour.cc
@@ -272,10 +272,16 @@ void add_element_colour(element_colour_calc *colour)
{
// or else lookups won't work: we strip high bits (because of colflags)
ASSERT(colour->type < 128);
- ASSERT(colour->type >= ETC_FIRST_LUA ||
- element_colours.find(colour->type) == element_colours.end());
- ASSERT(colour->type >= ETC_FIRST_LUA ||
- element_colours_str.find(colour->name) == element_colours_str.end());
+ if (colour->type >= ETC_FIRST_LUA)
+ {
+ ASSERT(element_colours[colour->type] == element_colours_str[colour->name]);
+ delete element_colours[colour->type];
+ }
+ else
+ {
+ ASSERT(element_colours.find(colour->type) == element_colours.end());
+ ASSERT(element_colours_str.find(colour->name) == element_colours_str.end());
+ }
element_colours[colour->type] = colour;
element_colours_str[colour->name] = colour;
}