mirror of
https://gitlab.com/Mr_Goldberg/goldberg_emulator.git
synced 2024-11-09 22:28:38 +01:00
Fixed dual hook on last function call
This commit is contained in:
parent
890f19c20a
commit
dda1e3210c
2 changed files with 9 additions and 4 deletions
|
@ -34,7 +34,7 @@ void Base_Hook::UnhookAll()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Base_Hook::HookFuncs(std::pair<void**, void*> hook)
|
void Base_Hook::HookFunc(std::pair<void**, void*> hook)
|
||||||
{
|
{
|
||||||
if( DetourAttach(hook.first, hook.second) == 0 )
|
if( DetourAttach(hook.first, hook.second) == 0 )
|
||||||
_hooked_funcs.emplace_back(hook);
|
_hooked_funcs.emplace_back(hook);
|
||||||
|
|
|
@ -29,13 +29,18 @@ public:
|
||||||
void EndHook();
|
void EndHook();
|
||||||
void UnhookAll();
|
void UnhookAll();
|
||||||
|
|
||||||
void HookFuncs(std::pair<void**, void*> hook);
|
void HookFunc(std::pair<void**, void*> hook);
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
void HookFuncs(std::pair<T*, T> funcs)
|
||||||
|
{
|
||||||
|
HookFunc(funcs);
|
||||||
|
}
|
||||||
|
|
||||||
template<typename T, typename ...Args>
|
template<typename T, typename ...Args>
|
||||||
void HookFuncs(std::pair<T*, T> funcs, Args... args)
|
void HookFuncs(std::pair<T*, T> funcs, Args... args)
|
||||||
{
|
{
|
||||||
_hooked_funcs.emplace_back(std::move(funcs));
|
HookFunc(funcs);
|
||||||
HookFuncs(funcs);
|
|
||||||
HookFuncs(args...);
|
HookFuncs(args...);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue