This commit is contained in:
CraftyBoss
2026-03-21 00:56:15 -04:00
20 changed files with 44 additions and 15 deletions
@@ -217,11 +217,14 @@ public:
#if TARGET_PC
void setName(const char* name);
void setNamef(const char* fmt, ...);
const char* getName() const;
#define JKRHEAP_NAME(heap, name) (heap)->setName(name)
#define JKRHEAP_NAMEF(heap, name, ...) (heap)->setNamef(name, __VA_ARGS__)
#else
#define JKRHEAP_NAME(heap, name)
#define JKRHEAP_NAMEF(heap, name)
#endif
};
@@ -264,7 +264,7 @@ void J3DModelLoader::setupBBoardInfo() {
mpModelData->getJointNodePointer(i)->setMtxType(0);
break;
default:
OSReport("WRONG SHAPE MATRIX TYPE (__FILE__)\n");
OSReport("WRONG SHAPE MATRIX TYPE (%d)\n", r26->mShapeMtxType);
break;
}
}
@@ -45,7 +45,6 @@ void JFWSystem::firstInit() {
OSInit();
DVDInit();
rootHeap = JKRExpHeap::createRoot(CSetUpParam::maxStdHeaps, false);
JKRHEAP_NAME(rootHeap, "Root");
systemHeap = JKRExpHeap::create(CSetUpParam::sysHeapSize, rootHeap, false);
JKRHEAP_NAME(systemHeap, "System");
}
+1
View File
@@ -51,6 +51,7 @@ JKRExpHeap* JKRExpHeap::createRoot(int maxHeaps, bool errorFlag) {
#endif
heap = JKR_NEW_ARGS (mem1) JKRExpHeap(start1, alignedSize, NULL, errorFlag);
sRootHeap = heap;
JKRHEAP_NAME(sRootHeap, "Root");
}
heap->field_0x6e = true;
return heap;
+8
View File
@@ -699,6 +699,14 @@ void JKRHeap::setName(const char* name) {
strncpy(mName, name, sizeof(mName) - 1);
mName[sizeof(mName) - 1] = '\0';
}
void JKRHeap::setNamef(const char* fmt, ...) {
va_list args;
va_start(args, fmt);
vsnprintf(mName, sizeof(mName), fmt, args);
va_end(args);
}
const char* JKRHeap::getName() const {
return mName;
}
+1
View File
@@ -43,6 +43,7 @@ void daAlink_c::setOriginalHeap(JKRExpHeap** i_ppheap, u32 i_size) {
JKRHeap* parent = mDoExt_getGameHeap();
JKRExpHeap* heap = JKRExpHeap::create(size + (var_r29 + var_r28), parent, true);
JKRHEAP_NAME(heap, "Alink original");
*i_ppheap = heap;
}
}
+1
View File
@@ -260,6 +260,7 @@ void daPy_anmHeap_c::createHeap(daPy_anmHeap_c::daAlinkHEAP_TYPE i_heapType) {
JKRHeap* tmp;
mAnimeHeap = mDoExt_createSolidHeapFromGameToCurrent(&tmp, size, 0x20);
JKRHEAP_NAMEF(mAnimeHeap, "Alink anime type %d", i_heapType);
if (i_heapType == 4) {
tmpWork = JKR_NEW_ARRAY(char, size);
+1
View File
@@ -138,6 +138,7 @@ int daTitle_c::create() {
m2DHeap = JKRCreateExpHeap(0x8000, mDoExt_getGameHeap(), false);
JUT_ASSERT(345, m2DHeap != NULL);
JKRHEAP_NAME(m2DHeap, "daTitle_c::m2DHeap");
loadWait_init();
g_daTitHIO.id = mDoHIO_CREATE_CHILD("タイトルロゴ", &g_daTitHIO);
+1
View File
@@ -2080,6 +2080,7 @@ void dComIfGp_createSubExpHeap2D() {
if (dComIfGp_getSubExpHeap2D(i) == NULL) {
JKRExpHeap* i_heap = JKRCreateExpHeap(size, dComIfGp_getExpHeap2D(), false);
JUT_ASSERT(3576, i_heap != NULL);
JKRHEAP_NAMEF(i_heap, "SubExpHeap2D %d", i);
dComIfGp_setSubExpHeap2D(i, i_heap);
}
}
+1
View File
@@ -38,6 +38,7 @@ int dkWpillar_c::create() {
mpHeap = mDoExt_createSolidHeapFromGameToCurrent(0x2200, 0x20);
if (mpHeap != NULL) {
JKRHEAP_NAME(mpHeap, "d_k_wpillar::mpModel");
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 0x1C);
JUT_ASSERT(96, modelData);
+1
View File
@@ -100,6 +100,7 @@ dMenu_DmapBg_c::dMenu_DmapBg_c(JKRExpHeap* i_heap, STControl* i_stick) {
mpTalkHeap = JKRCreateExpHeap(0x32000, mpHeap, false);
JUT_ASSERT(624, mpTalkHeap != NULL);
JKRHEAP_NAME(mpTalkHeap, "dMenu_DmapBg_c::mpTalkHeap");
mpItemExplain = NULL;
+1
View File
@@ -192,6 +192,7 @@ dMenu_Fmap_c::dMenu_Fmap_c(JKRExpHeap* i_heap, STControl* i_stick, CSTControl* i
mpTalkHeap = JKRCreateExpHeap(HEAP_SIZE(0x32000, 0x40000), mpHeap, false);
JUT_ASSERT(359, mpTalkHeap != NULL);
JKRHEAP_NAME(mpTalkHeap, "dMenu_Fmap_c::mpTalkHeap");
field_0x200 = 0;
mIsWarpMap = false;
+1
View File
@@ -1173,6 +1173,7 @@ dPa_control_c::dPa_control_c() {
size_t heapSize = 0x96000;
#endif
m_resHeap = JKRCreateExpHeap(heapSize, mDoExt_getArchiveHeap(), false);
JKRHEAP_NAME(m_resHeap, "Particle control");
JUT_ASSERT(2426, m_resHeap != NULL);
mHeap = NULL;
mSceneHeap = NULL;
+2
View File
@@ -606,6 +606,7 @@ int dRes_info_c::setRes() {
heap->lock();
mDataHeap = mDoExt_createSolidHeapToCurrent(0, heap, 0x20);
JUT_ASSERT(1260, mDataHeap != NULL);
JKRHEAP_NAMEF(mDataHeap, "Resource (%s)", mArchiveName);
int rt = loadResource();
mDoExt_restoreCurrentHeap();
@@ -624,6 +625,7 @@ int dRes_info_c::setRes() {
OSReport_Error("<%s.arc> mDMCommandsetRes: can't alloc memory\n", mArchiveName);
return -1;
}
JKRHEAP_NAMEF(mDataHeap, "Resource (%s)", mArchiveName);
int rt = loadResource();
mDoExt_restoreCurrentHeap();
r28 = mDoExt_adjustSolidHeap(mDataHeap);
+2
View File
@@ -945,9 +945,11 @@ static int phase_0(dScnLogo_c* i_this) {
i_this->mLogoHeap = JKRExpHeap::create(i_this->dummyGameAlloc, var_r29, NULL, false);
JUT_ASSERT(1525, i_this->mLogoHeap != NULL);
JKRHEAP_NAME(i_this->mLogoHeap, "Logo");
i_this->mLogo01Heap = JKRCreateExpHeap(var_r28, i_this->mLogoHeap, false);
JUT_ASSERT(1528, i_this->mLogo01Heap != NULL);
JKRHEAP_NAME(i_this->mLogo01Heap, "Logo01");
#if VERSION == VERSION_GCN_PAL
switch (i_this->getPalLanguage()) {
+1
View File
@@ -71,6 +71,7 @@ s32 dScnName_c::create() {
if (phase_state == cPhs_COMPLEATE_e) {
mHeap = JKRCreateExpHeap(HEAP_SIZE(0x180000, 0x1C0000), mDoExt_getGameHeap(), false);
JUT_ASSERT(289, mHeap != NULL);
JKRHEAP_NAME(mHeap, "File select");
field_0x1d0 = (JKRExpHeap*)mDoExt_setCurrentHeap(mHeap);
+13 -5
View File
@@ -1,4 +1,5 @@
#include <array>
#include <optional>
#include "JSystem/JFramework/JFWSystem.h"
#include "JSystem/JKernel/JKRHeap.h"
@@ -58,10 +59,10 @@ namespace dusk {
};
}
static const char* GetHeapName(const JKRHeap* heap) {
static std::optional<const char*> GetHeapName(const JKRHeap* heap) {
const auto name = heap->getName();
if (strlen(name) == 0) {
return "Unknown";
return std::nullopt;
}
return name;
@@ -74,13 +75,20 @@ namespace dusk {
auto indentSize = depth * 16;
if (indentSize != 0)
ImGui::Indent(indentSize);
ImGui::TextUnformatted(GetHeapName(heap));
auto heapName = GetHeapName(heap);
if (heapName.has_value()) {
ImGui::TextUnformatted(heapName.value());
} else {
char unkNameBuf[32];
snprintf(unkNameBuf, sizeof(unkNameBuf), "Unknown (%p)", heap);
ImGui::TextUnformatted(unkNameBuf);
}
if (indentSize != 0)
ImGui::Unindent(indentSize);
ImGui::TableNextColumn();
ImGui::ProgressBar(
1 - (f32)heap->getFreeSize() / (f32)heap->getSize(),
heap->getSize() > 0 ? 1 - (f32)heap->getFreeSize() / (f32)heap->getSize() : 0.0f,
ImVec2(ImGui::GetContentRegionAvail().x, 0));
ImGui::TableNextColumn();
@@ -100,4 +108,4 @@ namespace dusk {
DrawHeap(*iter, depth + 1);
}
}
}
}
+3 -8
View File
@@ -412,6 +412,7 @@ bool fopAcM_entrySolidHeap_(fopAc_ac_c* i_actor, heapCallbackFunc i_heapCallback
if (dummy_heap != NULL) {
heap = mDoExt_createSolidHeap(-1, dummy_heap, 0x20);
JUT_ASSERT(1211, heap);
JKRHEAP_NAMEF(heap, "Actor mng (%s)", procNameString);
if (fopAcM::HeapAdjustVerbose) {
// Attempting registration with max dummy heap.
@@ -453,6 +454,7 @@ bool fopAcM_entrySolidHeap_(fopAc_ac_c* i_actor, heapCallbackFunc i_heapCallback
heap = mDoExt_createSolidHeapFromGame(i_size, 0x20);
if (heap != NULL) {
JKRHEAP_NAMEF(heap, "Actor mng (%s)", procNameString);
if (fopAcM::HeapAdjustVerbose) {
// Attempting registration with estimated heap size. %08x [%s]
OS_REPORT("見積もりヒープサイズで登録してみます。%08x [%s]\n", heap,
@@ -734,14 +736,7 @@ u8 var_r30 = fopAcM::HeapAdjustEntry;
fopAcM::HeapAdjustEntry = var_r30;
#if TARGET_PC
char buf[32];
snprintf(
buf,
sizeof(buf),
"Actor %d (%s)",
i_actor->id,
GetProcName(i_actor->profname));
JKRHEAP_NAME(i_actor->heap, buf);
JKRHEAP_NAMEF(i_actor->heap, "Actor %d (%s)", i_actor->id, GetProcName(i_actor->profname));
#endif
return result;
+1
View File
@@ -659,6 +659,7 @@ static JKRAssertHeap* AssertHeap;
JKRAssertHeap* mDoExt_createAssertHeap(JKRHeap* parentHeap) {
JUT_ASSERT(1666, AssertHeap == NULL);
AssertHeap = JKRAssertHeap::create(parentHeap);
JKRHEAP_NAME(AssertHeap, "Assert");
return AssertHeap;
}
+1
View File
@@ -2220,6 +2220,7 @@ static void dummy() {
int mDoGph_Create() {
JKRSolidHeap* heap = mDoExt_createSolidHeapToCurrent(0, NULL, 0);
JKRHEAP_NAME(heap, "mDoGph");
mDoGph_gInf_c::create();
dComIfGd_init();
u32 var_r30 = mDoExt_adjustSolidHeap(heap);