diff options
Diffstat (limited to 'src/templates.h')
-rw-r--r-- | src/templates.h | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/src/templates.h b/src/templates.h index d1ef99f0..7ed7043e 100644 --- a/src/templates.h +++ b/src/templates.h @@ -101,26 +101,26 @@ public: n++; return n; } - void ClearStorage(uint8 **flags, U **entries){ - delete[] flags; - delete[] entries; - *flags = nil; - *entries = nil; - } - void CopyBack(uint8 **flags, U **entries){ - memcpy(m_flags, *flags, sizeof(Flags)*m_size); - memcpy(m_entries, *entries, sizeof(U)*m_size); - debug("Size copied:%d (%d)", sizeof(U)*m_size, sizeof(Flags)*m_size); + void ClearStorage(uint8 *&flags, U *&entries){ + free(flags); + free(entries); + flags = nil; + entries = nil; + } + void CopyBack(uint8 *&flags, U *&entries){ + memcpy(m_flags, flags, sizeof(uint8)*m_size); + memcpy(m_entries, entries, sizeof(U)*m_size); + debug("Size copied:%d (%d)\n", sizeof(U)*m_size, sizeof(Flags)*m_size); m_allocPtr = 0; ClearStorage(flags, entries); - debug("CopyBack:%d (/%d)", GetNoOfUsedSpaces(), m_size); /* Assumed inlining */ - } - void Store(uint8 **flags, U** entries){ - *flags = (Flags*)malloc(sizeof(Flags)*m_size); - *entries = (U*)malloc(sizeof(U)*m_size); - memcpy(*flags, m_flags, sizeof(Flags)*m_size); - memcpy(*entries, m_entries, sizeof(U)*m_size); - debug("Stored:%d (/%d)", GetNoOfUsedSpaces(), m_size); /* Assumed inlining */ + debug("CopyBack:%d (/%d)\n", GetNoOfUsedSpaces(), m_size); /* Assumed inlining */ + } + void Store(uint8 *&flags, U *&entries){ + flags = (uint8*)malloc(sizeof(uint8)*m_size); + entries = (U*)malloc(sizeof(U)*m_size); + memcpy(flags, m_flags, sizeof(uint8)*m_size); + memcpy(entries, m_entries, sizeof(U)*m_size); + debug("Stored:%d (/%d)\n", GetNoOfUsedSpaces(), m_size); /* Assumed inlining */ } }; |