diff --git a/loader/src/loader/Hook.cpp b/loader/src/loader/Hook.cpp index 7dc5ffb3..376b231f 100644 --- a/loader/src/loader/Hook.cpp +++ b/loader/src/loader/Hook.cpp @@ -3,7 +3,7 @@ using namespace geode::prelude; -Hook::Hook(std::shared_ptr&& impl) : m_impl(std::move(impl)) {} +Hook::Hook(std::shared_ptr&& impl) : m_impl(std::move(impl)) { m_impl->m_self = this; } Hook::~Hook() = default; Hook* Hook::create( diff --git a/loader/src/loader/HookImpl.cpp b/loader/src/loader/HookImpl.cpp index e11bf1be..2fab7464 100644 --- a/loader/src/loader/HookImpl.cpp +++ b/loader/src/loader/HookImpl.cpp @@ -39,9 +39,7 @@ Hook* Hook::Impl::create( auto impl = std::make_shared( address, detour, displayName, handlerMetadata, hookMetadata ); - auto hook = new Hook(std::move(impl)); - impl->m_self = hook; - return hook; + return new Hook(std::move(impl)); } Result<> Hook::Impl::enable() { diff --git a/loader/src/loader/Patch.cpp b/loader/src/loader/Patch.cpp index 88f4b602..180d7368 100644 --- a/loader/src/loader/Patch.cpp +++ b/loader/src/loader/Patch.cpp @@ -3,7 +3,7 @@ using namespace geode::prelude; -Patch::Patch(std::shared_ptr&& impl) : m_impl(std::move(impl)) {} +Patch::Patch(std::shared_ptr&& impl) : m_impl(std::move(impl)) { m_impl->m_self = this; } Patch::~Patch() = default; Patch* Patch::create(void* address, const ByteVector& patch) { diff --git a/loader/src/loader/PatchImpl.cpp b/loader/src/loader/PatchImpl.cpp index dfe511ae..db571b98 100644 --- a/loader/src/loader/PatchImpl.cpp +++ b/loader/src/loader/PatchImpl.cpp @@ -35,9 +35,7 @@ Patch* Patch::Impl::create(void* address, const geode::ByteVector& patch) { auto impl = std::make_shared( address, readMemory(address, patch.size()), patch ); - auto p = new Patch(std::move(impl)); - impl->m_self = p; - return p; + return new Patch(std::move(impl)); } Result<> Patch::Impl::enable() {