[MemoryMapper] Adds debug only GetPointer with size check.

This commit is contained in:
Ryan Houdek authored and Stefanos Kornilios Mitsis Poiitidis committed 2020-03-06 07:52:35 +02:00
1 parent 92d4aaf2e2
commit 0d20ec0f2c
4 files changed
+686

No files matched your search

+15
View File
@@ -57,5 +57,20 @@ namespace FEXCore::Memory {
return nullptr;
}
#ifndef NDEBUG
void *MemMapper::GetPointerSizeCheck(uint64_t Offset, uint64_t Size) {
for (auto const &Region : MappedRegions) {
if (Region.contains(Offset)) {
LogMan::Throw::A((Region.Offset + Region.Size) >= (Offset + Size), "Pointer in region but region isn't large enough. Needs 0x%lx more", Offset - Region.Offset + Size - Region.Size);
if ((Region.Offset + Region.Size) < (Offset + Size)) {
return reinterpret_cast<void*>(reinterpret_cast<uintptr_t>(Region.Ptr) + (Offset - Region.Offset));
}
}
}
return nullptr;
}
#endif
}