diff options
author | Nikolay Korolev <nickvnuk@gmail.com> | 2019-06-22 20:16:29 +0200 |
---|---|---|
committer | Nikolay Korolev <nickvnuk@gmail.com> | 2019-06-22 20:17:25 +0200 |
commit | 8b47a5b9f49d94192d9a4f077fdd22712fa90df6 (patch) | |
tree | 27a6dffe3624b3aa89a2aefd286d4a8dfa92d7f2 /src/templates.h | |
parent | First commit of replay system (diff) | |
download | re3-8b47a5b9f49d94192d9a4f077fdd22712fa90df6.tar re3-8b47a5b9f49d94192d9a4f077fdd22712fa90df6.tar.gz re3-8b47a5b9f49d94192d9a4f077fdd22712fa90df6.tar.bz2 re3-8b47a5b9f49d94192d9a4f077fdd22712fa90df6.tar.lz re3-8b47a5b9f49d94192d9a4f077fdd22712fa90df6.tar.xz re3-8b47a5b9f49d94192d9a4f077fdd22712fa90df6.tar.zst re3-8b47a5b9f49d94192d9a4f077fdd22712fa90df6.zip |
Diffstat (limited to 'src/templates.h')
-rw-r--r-- | src/templates.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/templates.h b/src/templates.h index 65f92a2a..7da0b3d6 100644 --- a/src/templates.h +++ b/src/templates.h @@ -101,6 +101,27 @@ 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); + 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)*size); + *entries = (U*)malloc(sizeof(U)*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 */ + } }; template<typename T> |