From dff75e03e837bd35a650871543dff0fc5851d322 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Lam?= Date: Thu, 15 Oct 2026 22:56:22 +0100 Subject: [PATCH] ksys/util: bind tryCreateDualHeap to the function body The 8-byte function only masks the bool argument and branches to the body right after it, so the body is tryCreateDualHeap and the wrapper is createDualHeap (name from the IDB). GameData calls the wrapper, so it now calls createDualHeap. (AI assisted using Claude Opus 5.5) --- data/uking_functions.csv | 4 ++-- src/KingSystem/GameData/gdtManager.cpp | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/data/uking_functions.csv b/data/uking_functions.csv index 844740c4..6917cbfc 100644 --- a/data/uking_functions.csv +++ b/data/uking_functions.csv @@ -89368,8 +89368,8 @@ Address,Quality,Size,Name 0x00000071010bdce4,U,000012,GameSceneStatusMgr::x 0x00000071010bdcf0,U,000012,GameSceneStatusMgr::__auto1 0x00000071010bdcfc,U,000012,GameSceneStatusMgr::__auto0 -0x00000071010bdd08,U,000008,_ZN4ksys4util17tryCreateDualHeapEmRKN4sead14SafeStringBaseIcEEPNS1_4HeapES7_NS6_13HeapDirectionEb -0x00000071010bdd10,U,000676,DualHeapOrDualFrameHeap::tryAlloc +0x00000071010bdd08,U,000008,_ZN4ksys4util14createDualHeapEmRKN4sead14SafeStringBaseIcEEPNS1_4HeapES7_NS6_13HeapDirectionEb +0x00000071010bdd10,U,000676,_ZN4ksys4util17tryCreateDualHeapEmRKN4sead14SafeStringBaseIcEEPNS1_4HeapES7_NS6_13HeapDirectionEb 0x00000071010bdfb4,U,000288,DualHeapOrDualFrameHeap::tryAllocFromFrameHeapOrEmergency 0x00000071010be0d4,U,000068,DualFrameHeap::dtor 0x00000071010be118,U,000076,DualFrameHeap::dtorDelete diff --git a/src/KingSystem/GameData/gdtManager.cpp b/src/KingSystem/GameData/gdtManager.cpp index ff628407..4d418f3d 100644 --- a/src/KingSystem/GameData/gdtManager.cpp +++ b/src/KingSystem/GameData/gdtManager.cpp @@ -622,8 +622,8 @@ FlagHandle Manager::getRevivalFlagHandle(const sead::SafeString& object_name, void Manager::allocParam1() { auto* parent_heap = OverlayArenaSystem::instance()->getGameDataWorkHeap(); - auto* heap = util::tryCreateDualHeap(0, "param1", parent_heap, nullptr, - sead::Heap::cHeapDirection_Forward, false); + auto* heap = util::createDualHeap(0, "param1", parent_heap, nullptr, + sead::Heap::cHeapDirection_Forward, false); mFlagBuffer1 = new (heap) TriggerParam; mFlagBuffer1->copyAllFlags(*mFlagBuffer, heap, true); heap->adjust(); @@ -649,8 +649,8 @@ void Manager::allocRetryBuffer(sead::Heap* heap) { if (mRetryBuffer) return; - auto* buffer_heap = util::tryCreateDualHeap(0x100000, "RetryBuffer", heap, nullptr, - sead::Heap::cHeapDirection_Reverse, false); + auto* buffer_heap = util::createDualHeap(0x100000, "RetryBuffer", heap, nullptr, + sead::Heap::cHeapDirection_Reverse, false); mRetryBuffer = new (buffer_heap) TriggerParam; mRetryBuffer->copyPermanentFlags(*mFlagBuffer1, buffer_heap); buffer_heap->adjust();