diff options
author | Adam Borowski <kilobyte@angband.pl> | 2011-08-09 16:34:23 +0200 |
---|---|---|
committer | Adam Borowski <kilobyte@angband.pl> | 2011-08-10 16:42:58 +0200 |
commit | 224edcce586cdb9ca41cadd76d54b5ac4b34a2cd (patch) | |
tree | 19f74b4a3de10722f92f9adc017da1ea9f7011ef /crawl-ref/source/colour.cc | |
parent | 0b752a20f1d3266a055d3b11c8e88c1668ed9abc (diff) | |
download | crawl-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.cc | 14 |
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; } |