Make sure destructor is called for each element

This commit is contained in:
baldurk
2015-01-05 01:46:36 +00:00
parent 7d0579c594
commit 85b9d7535a
+6 -1
View File
@@ -55,7 +55,12 @@ struct array
array() : elems(0), count(0) {}
~array() { Delete(); }
void Delete() { deallocate(elems); elems = 0; count = 0; }
void Delete()
{
for(int32_t i=0; i < count; i++) elems[i].~T();
deallocate(elems);
elems = 0; count = 0;
}
static void deallocate(const void *p) { free((void *)p); }
static void *allocate(size_t s) { return malloc(s); }