mirror of
https://github.com/encounter/tp.git
synced 2026-07-11 06:18:46 -07:00
move d_a_itembase_static / d_a_item_static / Z2StatusMgr (#123)
* move d_a_itembase_static * move d_a_item_static * moved Z2StatusMgr * clang * fixes * clang? * move d_save * move d_meter2_info * some d_meter2_info fixes * move most d_a_player * move d_bg_s stuff * move c_cc_s stuff * move d_cc stuff * move d_attention / d_event / d_stage
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
|
||||
#include "dol2asm.h"
|
||||
@@ -15,16 +15,15 @@ extern void* const _ctors[];
|
||||
extern void* const _dtors[];
|
||||
|
||||
extern "C" void _prolog() {
|
||||
ModuleConstructorsX(_ctors);
|
||||
ModuleProlog();
|
||||
ModuleConstructorsX(_ctors);
|
||||
ModuleProlog();
|
||||
}
|
||||
|
||||
extern "C" void _epilog() {
|
||||
ModuleEpilog();
|
||||
ModuleDestructorsX(_dtors);
|
||||
ModuleEpilog();
|
||||
ModuleDestructorsX(_dtors);
|
||||
}
|
||||
|
||||
extern "C" void _unresolved() {
|
||||
ModuleUnresolved();
|
||||
ModuleUnresolved();
|
||||
}
|
||||
|
||||
|
||||
@@ -6,31 +6,30 @@
|
||||
#include "dolphin/types.h"
|
||||
|
||||
struct __destructor_chain {
|
||||
__destructor_chain* next;
|
||||
void* destructor;
|
||||
void* object;
|
||||
__destructor_chain* next;
|
||||
void* destructor;
|
||||
void* object;
|
||||
};
|
||||
|
||||
#define CALL_DTOR(DTOR, OBJECT, VALUE) (((void (*)(void *,short))(DTOR))((OBJECT),VALUE))
|
||||
#define CALL_DTOR(DTOR, OBJECT, VALUE) (((void (*)(void*, short))(DTOR))((OBJECT), VALUE))
|
||||
#define CALL_DTOR_ALL(DTOR, OBJECT) CALL_DTOR(DTOR, OBJECT, (-1))
|
||||
|
||||
|
||||
static __destructor_chain* __global_destructor_chain;
|
||||
|
||||
extern "C" void __register_global_object(void *object, void *destructor, __destructor_chain *link) {
|
||||
link->next = __global_destructor_chain;
|
||||
link->destructor = destructor;
|
||||
link->object = object;
|
||||
__global_destructor_chain = link;
|
||||
extern "C" void __register_global_object(void* object, void* destructor, __destructor_chain* link) {
|
||||
link->next = __global_destructor_chain;
|
||||
link->destructor = destructor;
|
||||
link->object = object;
|
||||
__global_destructor_chain = link;
|
||||
}
|
||||
|
||||
extern "C" void __destroy_global_chain() {
|
||||
__destructor_chain* gcd;
|
||||
while ((gcd=__global_destructor_chain) != NULL) {
|
||||
__global_destructor_chain = gcd->next;
|
||||
__destructor_chain* gcd;
|
||||
while ((gcd = __global_destructor_chain) != NULL) {
|
||||
__global_destructor_chain = gcd->next;
|
||||
|
||||
CALL_DTOR_ALL(gcd->destructor, gcd->object);
|
||||
}
|
||||
CALL_DTOR_ALL(gcd->destructor, gcd->object);
|
||||
}
|
||||
}
|
||||
|
||||
SECTION_DTORS10 extern void* const __destroy_global_chain_reference = (void*)__destroy_global_chain;
|
||||
Reference in New Issue
Block a user