MCPcopy Create free account
hub / github.com/FEX-Emu/FEX / QueryExecutableRange

Method QueryExecutableRange

Source/Windows/Common/InvalidationTracker.cpp:214–227  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

212}
213
214FEXCore::HLE::ExecutableRangeInfo InvalidationTracker::QueryExecutableRange(uint64_t Address) {
215 std::shared_lock Lock(IntervalsLock);
216 const auto XResult = XIntervals.Query(Address);
217 if (!XResult.Enclosed) {
218 return {};
219 }
220 const auto RWXResult = RWXIntervals.Query(Address);
221 if (RWXResult.Enclosed) {
222 return {RWXResult.Interval.Offset, RWXResult.Interval.End - RWXResult.Interval.Offset, true};
223 } else if (RWXResult.Size && RWXResult.Size < XResult.Size) {
224 return {XResult.Interval.Offset, RWXResult.Interval.Offset - XResult.Interval.Offset, false};
225 }
226 return {XResult.Interval.Offset, XResult.Interval.End - XResult.Interval.Offset, false};
227}
228
229void InvalidationTracker::DetectMonoBackpatcherBlock(FEXCore::Core::InternalThreadState* Thread, uint64_t HostPc) {
230 if (!MonoBackpatcherDetectionPending) {

Callers 2

Calls 1

QueryMethod · 0.80

Tested by

no test coverage detected