summaryrefslogtreecommitdiffstats
path: root/src/templates.h
diff options
context:
space:
mode:
authorNikolay Korolev <nickvnuk@gmail.com>2019-06-22 20:16:29 +0200
committerNikolay Korolev <nickvnuk@gmail.com>2019-06-22 20:17:25 +0200
commit8b47a5b9f49d94192d9a4f077fdd22712fa90df6 (patch)
tree27a6dffe3624b3aa89a2aefd286d4a8dfa92d7f2 /src/templates.h
parentFirst commit of replay system (diff)
downloadre3-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.h21
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>