diff options
| author | Filippos Karapetis | 2013-12-14 04:16:55 +0200 |
|---|---|---|
| committer | Filippos Karapetis | 2013-12-17 01:16:28 +0200 |
| commit | b585addc23de25c019f250986d50c0373219571d (patch) | |
| tree | a965d0af7a3e5410f00cdb643dffcb96b732cc61 /common | |
| parent | 9466f57978619ee96b00b57e927548b25d916074 (diff) | |
| download | scummvm-rg350-b585addc23de25c019f250986d50c0373219571d.tar.gz scummvm-rg350-b585addc23de25c019f250986d50c0373219571d.tar.bz2 scummvm-rg350-b585addc23de25c019f250986d50c0373219571d.zip | |
COMMON: Fix mismatched new/delete in the MemoryPool class
Memory is allocated with new in Hashmap::allocNode() and incorrectly
freed with free() in ~MemoryPool() and freeUnusedPages().
Issue reported by Dr. Memory
Diffstat (limited to 'common')
| -rw-r--r-- | common/memorypool.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/common/memorypool.cpp b/common/memorypool.cpp index e3742eeae0..3a31fd55ea 100644 --- a/common/memorypool.cpp +++ b/common/memorypool.cpp @@ -56,7 +56,7 @@ MemoryPool::~MemoryPool() { #endif for (size_t i = 0; i < _pages.size(); ++i) - ::free(_pages[i].start); + delete _pages[i].start; } void MemoryPool::allocPage() { @@ -152,7 +152,7 @@ void MemoryPool::freeUnusedPages() { iter2 = *(void ***)iter2; } - ::free(_pages[i].start); + delete _pages[i].start; ++freedPagesCount; _pages[i].start = NULL; } |
