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
This commit is contained in:
Filippos Karapetis 2013-12-14 04:16:55 +02:00
parent 9466f57978
commit b585addc23

View File

@ -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;
}