mirror of
https://github.com/zeldaret/ss
synced 2026-05-24 23:21:41 -04:00
+11
-11
@@ -2232,7 +2232,7 @@ __nw__FUl = .text:0x80054EC0; // type:function size:0xC
|
||||
__nwa__FUl = .text:0x80054ED0; // type:function size:0xC
|
||||
__dl__FPv = .text:0x80054EE0; // type:function size:0x8
|
||||
__dla__FPv = .text:0x80054EF0; // type:function size:0x8
|
||||
__sinit_\d_heap_cpp = .text:0x80054F00; // type:function size:0x30
|
||||
__sinit_\d_heap_cpp = .text:0x80054F00; // type:function size:0x30 scope:local
|
||||
fn_80054F30 = .text:0x80054F30; // type:function size:0x4
|
||||
fn_80054F40 = .text:0x80054F40; // type:function size:0x4
|
||||
getUsedLanguageNTSCNum = .text:0x80054F50; // type:function size:0x38
|
||||
@@ -27836,15 +27836,15 @@ DYNAMIC_NAME_TABLE = .rodata:0x804DCBF0; // type:object size:0x13E0
|
||||
lbl_804DDFD0 = .rodata:0x804DDFD0; // type:object size:0xC data:4byte
|
||||
lbl_804DDFDC = .rodata:0x804DDFDC; // type:object size:0x14 data:4byte
|
||||
fontMgrIndex = .rodata:0x804DDFF0; // type:object size:0x14
|
||||
@stringBase@ = .rodata:0x804DE008; // type:object size:0x28 scope:local data:string_table
|
||||
WORK_2_HEAP_DEF = .rodata:0x804DE030; // type:object size:0x28
|
||||
WORK_EX_HEAP_DEF = .rodata:0x804DE058; // type:object size:0x2C
|
||||
LAYOUT_HEAP_DEF = .rodata:0x804DE084; // type:object size:0x2C
|
||||
LAYOUT_EX_HEAP_DEF = .rodata:0x804DE0B0; // type:object size:0x30
|
||||
LAYOUT_EX_HEAP2_DEF = .rodata:0x804DE0E0; // type:object size:0x34
|
||||
LAYOUT_RES_HEAP_INIT = .rodata:0x804DE114; // type:object size:0x34
|
||||
FONT_HEAP_DEF = .rodata:0x804DE148; // type:object size:0x24
|
||||
HBM_HEAP_DEF = .rodata:0x804DE16C; // type:object size:0x1C
|
||||
@LOCAL@createWork1Heap__5dHeapFUlPQ23EGG4Heap@name = .rodata:0x804DE008; // type:object size:0x27 scope:local
|
||||
@LOCAL@createWork2Heap__5dHeapFUlPQ23EGG4Heap@name = .rodata:0x804DE030; // type:object size:0x27 scope:local
|
||||
@LOCAL@createWorkExHeap__5dHeapFUlPQ23EGG4Heap@name = .rodata:0x804DE058; // type:object size:0x2C scope:local
|
||||
@LOCAL@createLayoutHeap__5dHeapFUlPQ23EGG4Heap@name = .rodata:0x804DE084; // type:object size:0x2A scope:local
|
||||
@LOCAL@createLayoutExHeap__5dHeapFUlPQ23EGG4Heap@name = .rodata:0x804DE0B0; // type:object size:0x30 scope:local
|
||||
@LOCAL@createLayoutEx2Heap__5dHeapFUlPQ23EGG4Heap@name = .rodata:0x804DE0E0; // type:object size:0x32 scope:local
|
||||
@LOCAL@createLayoutResHeap__5dHeapFUlPQ23EGG4Heap@name = .rodata:0x804DE114; // type:object size:0x31 scope:local
|
||||
@LOCAL@createFontHeap__5dHeapFUlPQ23EGG4Heap@name = .rodata:0x804DE148; // type:object size:0x22 scope:local
|
||||
@LOCAL@createHBMHeap__5dHeapFUlPQ23EGG4Heap@name = .rodata:0x804DE16C; // type:object size:0x1C scope:local
|
||||
lbl_804DE188 = .rodata:0x804DE188; // type:object size:0x60
|
||||
lbl_804DE1E8 = .rodata:0x804DE1E8; // type:object size:0xC
|
||||
lbl_804DE1F4 = .rodata:0x804DE1F4; // type:object size:0xC data:string
|
||||
@@ -30709,7 +30709,7 @@ lbl_8050D3B0 = .data:0x8050D3B0; // type:object size:0x11 data:string
|
||||
fonts = .data:0x8050D3C4; // type:object size:0x14
|
||||
lbl_8050D420 = .data:0x8050D420; // type:object size:0x9 data:string
|
||||
lbl_8050D42C = .data:0x8050D42C; // type:object size:0xF data:string
|
||||
__vt__14dHeapAllocator = .data:0x8050D440; // type:object size:0x18
|
||||
__vt__14dHeapAllocator = .data:0x8050D440; // type:object size:0x14
|
||||
lbl_8050D458 = .data:0x8050D458; // type:object size:0xC data:string
|
||||
lbl_8050D464 = .data:0x8050D464; // type:object size:0x10
|
||||
lbl_8050D474 = .data:0x8050D474; // type:object size:0x10
|
||||
|
||||
+1
-1
@@ -314,7 +314,7 @@ config.libs = [
|
||||
Object(NonMatching, "d/d_dvd_unk.cpp"),
|
||||
Object(NonMatching, "d/d_dylink.cpp"),
|
||||
Object(Matching, "d/d_font_manager.cpp"),
|
||||
Object(NonMatching, "d/d_heap.cpp"),
|
||||
Object(Matching, "d/d_heap.cpp"),
|
||||
Object(Matching, "d/d_rawarchive.cpp"),
|
||||
Object(NonMatching, "d/d_stage.cpp"),
|
||||
Object(NonMatching, "d/d_sys.cpp"),
|
||||
|
||||
@@ -12,21 +12,13 @@ public:
|
||||
inline void doInitCallbacks() {
|
||||
if (!mCallbacksInitialized) {
|
||||
mCallbacksInitialized = 1;
|
||||
EGG::Heap::AllocCallbackBundle prev = EGG::Heap::setAllocCallback(&allocCallback, this);
|
||||
mPreviousAllocCallback = prev.AllocCallback;
|
||||
mPreviousAllocCallbackArg = prev.AllocCallbackArg;
|
||||
|
||||
void *oldAllocCallbackArg = EGG::Heap::sAllocCallbackArg;
|
||||
void *oldFreeCallbackArg = EGG::Heap::sFreeCallbackArg;
|
||||
EGG::HeapAllocCallback oldAllocCallback = EGG::Heap::sAllocCallback;
|
||||
EGG::HeapFreeCallback oldFreeCallback = EGG::Heap::sFreeCallback;
|
||||
|
||||
EGG::Heap::sAllocCallback = &allocCallback;
|
||||
EGG::Heap::sAllocCallbackArg = this;
|
||||
mPreviousAllocCallback = oldAllocCallback;
|
||||
mPreviousAllocCallbackArg = oldAllocCallbackArg;
|
||||
|
||||
EGG::Heap::sFreeCallback = &freeCallback;
|
||||
EGG::Heap::sFreeCallbackArg = this;
|
||||
mPreviousFreeCallback = oldFreeCallback;
|
||||
mPreviousFreeCallbackArg = oldFreeCallbackArg;
|
||||
EGG::Heap::FreeCallbackBundle prev2 = EGG::Heap::setFreeCallback(&freeCallback, this);
|
||||
mPreviousFreeCallback = prev2.FreeCallback;
|
||||
mPreviousFreeCallbackArg = prev2.FreeCallbackArg;
|
||||
}
|
||||
}
|
||||
static void allocCallback(EGG::HeapAllocArg *arg) {
|
||||
@@ -50,8 +42,8 @@ public:
|
||||
}
|
||||
|
||||
virtual ~dHeapAllocatorBase() {}
|
||||
virtual void onAlloc(EGG::HeapAllocArg *arg){};
|
||||
virtual void onFree(EGG::HeapFreeArg *arg){};
|
||||
virtual void onAlloc(EGG::HeapAllocArg *arg) {};
|
||||
virtual void onFree(EGG::HeapFreeArg *arg) {};
|
||||
|
||||
/* 0x04 */ bool mCallbacksInitialized;
|
||||
/* 0x08 */ EGG::HeapAllocCallback mPreviousAllocCallback;
|
||||
|
||||
@@ -145,6 +145,38 @@ public:
|
||||
return mName;
|
||||
}
|
||||
|
||||
struct AllocCallbackBundle {
|
||||
HeapAllocCallback AllocCallback;
|
||||
void *AllocCallbackArg;
|
||||
};
|
||||
|
||||
struct FreeCallbackBundle {
|
||||
HeapFreeCallback FreeCallback;
|
||||
void *FreeCallbackArg;
|
||||
};
|
||||
|
||||
static inline AllocCallbackBundle setAllocCallback(HeapAllocCallback AllocCallback, void *AllocCallbackArg) {
|
||||
AllocCallbackBundle ret;
|
||||
|
||||
ret.AllocCallback = sAllocCallback;
|
||||
ret.AllocCallbackArg = sAllocCallbackArg;
|
||||
sAllocCallback = AllocCallback;
|
||||
sAllocCallbackArg = AllocCallbackArg;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static inline FreeCallbackBundle setFreeCallback(HeapFreeCallback FreeCallback, void *FreeCallbackArg) {
|
||||
FreeCallbackBundle ret;
|
||||
|
||||
ret.FreeCallback = sFreeCallback;
|
||||
ret.FreeCallbackArg = sFreeCallbackArg;
|
||||
sFreeCallback = FreeCallback;
|
||||
sFreeCallbackArg = FreeCallbackArg;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* 80673ae8 */ static nw4r::ut::List sHeapList;
|
||||
/* 80673af8 */ static OSMutex sRootMutex;
|
||||
/* 80576740 */ static Heap *sCurrentHeap;
|
||||
|
||||
+3
-1
@@ -61,7 +61,9 @@ void dHeap::createLayoutEx2Heap(size_t size, EGG::Heap *parent) {
|
||||
layoutEx2Heap.init(name, size, parent);
|
||||
}
|
||||
void dHeap::createLayoutResHeap(size_t size, EGG::Heap *parent) {
|
||||
static const char name[] = "レイアウトリソース用ヒープ(dHeap::layoutResHeap)";
|
||||
// Supposed to be "レイアウトリソース用ヒープ(dHeap::layoutResHeap)" but
|
||||
// this creates a Linux compile issue with wibo
|
||||
static const char name[] = "レイアウトリ\x83\x5Cース用ヒープ(dHeap::layoutResHeap)";
|
||||
layoutResHeap.init(name, size, parent);
|
||||
}
|
||||
void dHeap::createFontHeap(size_t size, EGG::Heap *parent) {
|
||||
|
||||
Reference in New Issue
Block a user