diff options
| author | Caroline Madsen <69010899+randomsalience@users.noreply.github.com> | 2024-02-11 00:29:35 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-02-11 07:29:35 +0200 |
| commit | d183f6593a45538312844559c0801f7331185bdd (patch) | |
| tree | a3711bafc5345a3081139d9fec8630eaea1a79f6 /libs/JSystem/JAudio2/JASTaskThread.cpp | |
| parent | df653e1d34b91659b22344dcaae44d846ab4e7bd (diff) | |
JAS work (#2069)
Diffstat (limited to 'libs/JSystem/JAudio2/JASTaskThread.cpp')
| -rw-r--r-- | libs/JSystem/JAudio2/JASTaskThread.cpp | 58 |
1 files changed, 18 insertions, 40 deletions
diff --git a/libs/JSystem/JAudio2/JASTaskThread.cpp b/libs/JSystem/JAudio2/JASTaskThread.cpp index 4020226837..7d9091f6f6 100644 --- a/libs/JSystem/JAudio2/JASTaskThread.cpp +++ b/libs/JSystem/JAudio2/JASTaskThread.cpp @@ -47,15 +47,6 @@ extern "C" u8 sSystemHeap__7JKRHeap[4]; // Declarations: // -/* ############################################################################################## */ -/* 803C5B58-803C5B68 022C78 0010+00 2/2 0/0 0/0 .data __vt__13JASTaskThread */ -SECTION_DATA extern void* __vt__13JASTaskThread[4] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__13JASTaskThreadFv, - (void*)run__13JASTaskThreadFv, -}; - /* 8028F6C4-8028F724 28A004 0060+00 0/0 1/1 0/0 .text __ct__13JASTaskThreadFiiUl */ JASTaskThread::JASTaskThread(int param_0, int param_1, u32 param_2) : JKRThread(JASDram, param_2, param_1, param_0) { field_0x84 = false; @@ -63,37 +54,25 @@ JASTaskThread::JASTaskThread(int param_0, int param_1, u32 param_2) : JKRThread( } /* 8028F724-8028F850 28A064 012C+00 1/0 0/0 0/0 .text __dt__13JASTaskThreadFv */ -// vtable maybe -#ifdef NONMATCHING JASTaskThread::~JASTaskThread() { OSMessage msg; BOOL received; - waitmsg: - msg = waitMessage(&received); - if (!received) return; - u32 heap = JASKernel::getCommandHeap(); - ((ThreadMemPool*)msg)->free((void*)heap); - goto waitmsg; -} -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -// asm JASTaskThread::~JASTaskThread() { -extern "C" asm void __dt__13JASTaskThreadFv() { - nofralloc -#include "asm/JSystem/JAudio2/JASTaskThread/__dt__13JASTaskThreadFv.s" + while (true) { + msg = waitMessage(&received); + if (!received) { + return; + } + ThreadMemPool* heap = JASKernel::getCommandHeap(); + heap->free(msg); + } } -#pragma pop -#endif /* 8028F850-8028F9EC 28A190 019C+00 1/1 0/0 0/0 .text allocCallStack__13JASTaskThreadFPFPv_vPCvUl */ void* JASTaskThread::allocCallStack(void (*param_0)(void*), void const* param_1, u32 param_2) { ThreadMemPool* heap; u32 size = param_2 + 8; - heap = - (ThreadMemPool*)JASKernel::getCommandHeap(); + heap = JASKernel::getCommandHeap(); JASThreadCallStack *callStack = (JASThreadCallStack*) heap->alloc(size); if (callStack == NULL) { return NULL; @@ -108,8 +87,7 @@ void* JASTaskThread::allocCallStack(void (*param_0)(void*), void const* param_1, void* JASTaskThread::allocCallStack(void (*runFunc)(void*), void* param_1) { ThreadMemPool* heap; JASThreadCallStack *callStack; - heap = - (ThreadMemPool*)JASKernel::getCommandHeap(); + heap = JASKernel::getCommandHeap(); callStack = (JASThreadCallStack*)heap->alloc(0xc); if (callStack == NULL) { return NULL; @@ -130,8 +108,8 @@ int JASTaskThread::sendCmdMsg(void (*param_0)(void*), void const* param_1, u32 p } int iVar2 = sendMessage(pvVar1); if (iVar2 == 0) { - void* heap = JASKernel::getCommandHeap(); - ((ThreadMemPool*)pvVar1)->free(heap); + ThreadMemPool* heap = JASKernel::getCommandHeap(); + heap->free(pvVar1); } return iVar2; } @@ -146,8 +124,8 @@ int JASTaskThread::sendCmdMsg(void (*param_0)(void*), void* param_1) { } int iVar2 = sendMessage(pvVar1); if (iVar2 == 0) { - void* heap = JASKernel::getCommandHeap(); - ((ThreadMemPool*)pvVar1)->free(heap); + ThreadMemPool* heap = JASKernel::getCommandHeap(); + heap->free(pvVar1); } return iVar2; } @@ -155,7 +133,7 @@ int JASTaskThread::sendCmdMsg(void (*param_0)(void*), void* param_1) { /* 8028FD4C-8028FE88 28A68C 013C+00 1/0 0/0 0/0 .text run__13JASTaskThreadFv */ // Regalloc #ifdef NONMATCHING -void JASTaskThread::run() { +void* JASTaskThread::run() { OSInitFastCast(); do { JASThreadCallStack* ppcVar1 = (JASThreadCallStack*)waitMessageBlock(); @@ -167,15 +145,15 @@ void JASTaskThread::run() { } else { ppcVar1->mRunFunc(ppcVar1->field_0x8.pBuffer); } - u32 heap = JASKernel::getCommandHeap(); - ((ThreadMemPool*)ppcVar1)->free((void*)heap); + ThreadMemPool* heap = JASKernel::getCommandHeap(); + heap->free(ppcVar1); } while (true); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JASTaskThread::run() { +asm void* JASTaskThread::run() { nofralloc #include "asm/JSystem/JAudio2/JASTaskThread/run__13JASTaskThreadFv.s" } |
