aboutsummaryrefslogtreecommitdiff
path: root/primedev/core/hooks.cpp
diff options
context:
space:
mode:
authorJack <66967891+ASpoonPlaysGames@users.noreply.github.com>2024-08-25 21:49:45 +0100
committerGitHub <noreply@github.com>2024-08-25 22:49:45 +0200
commit3e2d4035ada7a91e0ecffd0fde050cf47fce0427 (patch)
tree6f0f81f80a9dfcf35c3d0ab33f959b7cf7992b26 /primedev/core/hooks.cpp
parent5aae42126a062f1d184aff1c8217ef50259ccc53 (diff)
downloadNorthstarLauncher-3e2d4035ada7a91e0ecffd0fde050cf47fce0427.tar.gz
NorthstarLauncher-3e2d4035ada7a91e0ecffd0fde050cf47fce0427.zip
Fix manual hooks storing their name badly (#774)v1.27.3-rc4v1.27.3-rc3
Fix manual hooks storing their name wrong and move to just using std::string since it's much more convenient and this isn't C
Diffstat (limited to 'primedev/core/hooks.cpp')
-rw-r--r--primedev/core/hooks.cpp22
1 files changed, 6 insertions, 16 deletions
diff --git a/primedev/core/hooks.cpp b/primedev/core/hooks.cpp
index 5026f837..d8fad409 100644
--- a/primedev/core/hooks.cpp
+++ b/primedev/core/hooks.cpp
@@ -85,19 +85,9 @@ void __fileAutohook::DispatchForModule(const char* pModuleName)
hook->Dispatch();
}
-ManualHook::ManualHook(const char* funcName, LPVOID func) : pHookFunc(func), ppOrigFunc(nullptr)
-{
- const size_t iFuncNameStrlen = strlen(funcName);
- pFuncName = new char[iFuncNameStrlen];
- memcpy(pFuncName, funcName, iFuncNameStrlen);
-}
+ManualHook::ManualHook(const char* funcName, LPVOID func) : svFuncName(funcName), pHookFunc(func), ppOrigFunc(nullptr) {}
-ManualHook::ManualHook(const char* funcName, LPVOID* orig, LPVOID func) : pHookFunc(func), ppOrigFunc(orig)
-{
- const size_t iFuncNameStrlen = strlen(funcName);
- pFuncName = new char[iFuncNameStrlen];
- memcpy(pFuncName, funcName, iFuncNameStrlen);
-}
+ManualHook::ManualHook(const char* funcName, LPVOID* orig, LPVOID func) : svFuncName(funcName), pHookFunc(func), ppOrigFunc(orig) {}
bool ManualHook::Dispatch(LPVOID addr, LPVOID* orig)
{
@@ -105,19 +95,19 @@ bool ManualHook::Dispatch(LPVOID addr, LPVOID* orig)
ppOrigFunc = orig;
if (!addr)
- spdlog::error("Address for hook {} is invalid", pFuncName);
+ spdlog::error("Address for hook {} is invalid", svFuncName);
else if (MH_CreateHook(addr, pHookFunc, ppOrigFunc) == MH_OK)
{
if (MH_EnableHook(addr) == MH_OK)
{
- spdlog::info("Enabling hook {}", pFuncName);
+ spdlog::info("Enabling hook {}", svFuncName);
return true;
}
else
- spdlog::error("MH_EnableHook failed for function {}", pFuncName);
+ spdlog::error("MH_EnableHook failed for function {}", svFuncName);
}
else
- spdlog::error("MH_CreateHook failed for function {}", pFuncName);
+ spdlog::error("MH_CreateHook failed for function {}", svFuncName);
return false;
}