hookSystem: fix anchoring in seekNewPageAddr()

otherwise we might miss the chance to get an anchor
This commit is contained in:
Vaxry 2025-10-07 01:44:03 +01:00
parent dc72259a54
commit c3747fab56
No known key found for this signature in database
GPG key ID: 665806380871D640
2 changed files with 9 additions and 7 deletions

View file

@ -71,6 +71,8 @@ void Debug::log(eLogLevel level, std::string str) {
}
// log it to the stdout too.
if (!m_disableStdout)
if (!m_disableStdout) {
std::println("{}", ((m_coloredLogs && !**m_coloredLogs) ? str : coloredStr));
std::fflush(stdout);
}
}

View file

@ -245,6 +245,7 @@ bool CFunctionHook::unhook() {
m_hookLen = 0;
m_trampoLen = 0;
m_trampolineAddr = nullptr; // no unmapping, it's managed by the HookSystem
m_original = nullptr;
m_originalBytes.clear();
return true;
@ -305,12 +306,6 @@ static uintptr_t seekNewPageAddr() {
lastStart = start;
lastEnd = end;
continue;
} else if (!anchoredToHyprland) {
Debug::log(LOG, "seekNewPageAddr: Anchored to hyprland at 0x{:x}", start);
anchoredToHyprland = true;
lastStart = start;
lastEnd = end;
continue;
}
Debug::log(LOG, "seekNewPageAddr: found gap: 0x{:x}-0x{:x} ({} bytes)", lastEnd, start, start - lastEnd);
@ -318,6 +313,11 @@ static uintptr_t seekNewPageAddr() {
return lastEnd;
}
if (!anchoredToHyprland && line.contains("Hyprland")) {
Debug::log(LOG, "seekNewPageAddr: Anchored to hyprland at 0x{:x}", start);
anchoredToHyprland = true;
}
lastStart = start;
lastEnd = end;
}