diff --git a/lib/libimhex/include/hex/providers/memory_provider.hpp b/lib/libimhex/include/hex/providers/memory_provider.hpp index 594fa3788..5c7508a9c 100644 --- a/lib/libimhex/include/hex/providers/memory_provider.hpp +++ b/lib/libimhex/include/hex/providers/memory_provider.hpp @@ -35,15 +35,6 @@ namespace hex::prv { [[nodiscard]] std::string getName() const override { return ""; } [[nodiscard]] std::string getTypeName() const override { return "MemoryProvider"; } - - std::pair getRegionValidity(u64 address) const { - address -= this->getBaseAddress(); - - if (address < this->getActualSize()) - return { Region { this->getBaseAddress() + address, this->getActualSize() - address }, true }; - else - return { Region::Invalid(), false }; - } private: void renameFile(); diff --git a/lib/libimhex/source/providers/provider.cpp b/lib/libimhex/source/providers/provider.cpp index 2cc436e6d..d45702256 100644 --- a/lib/libimhex/source/providers/provider.cpp +++ b/lib/libimhex/source/providers/provider.cpp @@ -230,8 +230,11 @@ namespace hex::prv { } std::pair Provider::getRegionValidity(u64 address) const { - if ((address - this->getBaseAddress()) > this->getActualSize()) - return { Region::Invalid(), false }; + u64 absoluteAddress = address - this->getBaseAddress(); + + if (absoluteAddress < this->getActualSize()) + return { Region { this->getBaseAddress() + absoluteAddress, this->getActualSize() - absoluteAddress }, true }; + bool insideValidRegion = false;