diff options
author | erorcun <erorcunerorcun@hotmail.com.tr> | 2020-12-09 04:34:04 +0100 |
---|---|---|
committer | erorcun <erorcunerorcun@hotmail.com.tr> | 2020-12-09 04:34:04 +0100 |
commit | ba0c9e8b295cc988077df68a71573d3ebcff2b60 (patch) | |
tree | 0532f46e3335ca84ff32caa4884a145ba06e0e10 /src/core/templates.h | |
parent | Frontend cleanup, .INI, CFO, scrollable pages (diff) | |
parent | Merge pull request #872 from withmorten/sized-enums-miami (diff) | |
download | re3-ba0c9e8b295cc988077df68a71573d3ebcff2b60.tar re3-ba0c9e8b295cc988077df68a71573d3ebcff2b60.tar.gz re3-ba0c9e8b295cc988077df68a71573d3ebcff2b60.tar.bz2 re3-ba0c9e8b295cc988077df68a71573d3ebcff2b60.tar.lz re3-ba0c9e8b295cc988077df68a71573d3ebcff2b60.tar.xz re3-ba0c9e8b295cc988077df68a71573d3ebcff2b60.tar.zst re3-ba0c9e8b295cc988077df68a71573d3ebcff2b60.zip |
Diffstat (limited to 'src/core/templates.h')
-rw-r--r-- | src/core/templates.h | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/core/templates.h b/src/core/templates.h index 9f5bd5ea..704331c3 100644 --- a/src/core/templates.h +++ b/src/core/templates.h @@ -124,12 +124,18 @@ public: (T*)&m_entries[handle >> 8] : nil; } int GetIndex(T *entry){ - int i = GetJustIndex(entry); + int i = GetJustIndex_NoFreeAssert(entry); return m_flags[i].u + (i<<8); } int GetJustIndex(T *entry){ - // TODO: the cast is unsafe - return (int)((U*)entry - m_entries); + int index = GetJustIndex_NoFreeAssert(entry); + assert(!IsFreeSlot(index)); + return index; + } + int GetJustIndex_NoFreeAssert(T* entry){ + int index = ((U*)entry - m_entries); + assert((U*)entry == (U*)&m_entries[index]); // cast is unsafe - check required + return index; } int GetNoOfUsedSpaces(void) const { int i; |