summaryrefslogtreecommitdiff
path: root/libs/JSystem/JUtility/JUTConsole.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libs/JSystem/JUtility/JUTConsole.cpp')
-rw-r--r--libs/JSystem/JUtility/JUTConsole.cpp44
1 files changed, 23 insertions, 21 deletions
diff --git a/libs/JSystem/JUtility/JUTConsole.cpp b/libs/JSystem/JUtility/JUTConsole.cpp
index 4cbf7c38ef..bb593f9606 100644
--- a/libs/JSystem/JUtility/JUTConsole.cpp
+++ b/libs/JSystem/JUtility/JUTConsole.cpp
@@ -439,41 +439,43 @@ JUTConsoleManager* JUTConsoleManager::createManager(JKRHeap* pHeap) {
/* 802E8240-802E82B0 2E2B80 0070+00 3/3 0/0 0/0 .text
* appendConsole__17JUTConsoleManagerFP10JUTConsole */
-#ifdef NONMATCHING
void JUTConsoleManager::appendConsole(JUTConsole* console) {
JUT_ASSERT(961, sManager != 0 && console != 0);
- mLinkList.Push_back(console);
+ soLink_.Push_back(console);
+
if (mActiveConsole == NULL) {
mActiveConsole = console;
}
}
-#else
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JUTConsoleManager::appendConsole(JUTConsole* param_0) {
- nofralloc
-#include "asm/JSystem/JUtility/JUTConsole/appendConsole__17JUTConsoleManagerFP10JUTConsole.s"
-}
-#pragma pop
-#endif
/* 802E82B0-802E8384 2E2BF0 00D4+00 2/2 0/0 0/0 .text
* removeConsole__17JUTConsoleManagerFP10JUTConsole */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JUTConsoleManager::removeConsole(JUTConsole* param_0) {
- nofralloc
-#include "asm/JSystem/JUtility/JUTConsole/removeConsole__17JUTConsoleManagerFP10JUTConsole.s"
+void JUTConsoleManager::removeConsole(JUTConsole* console) {
+ JUT_ASSERT(982, sManager != 0 && console != 0);
+ JUT_ASSERT(985, soLink_.Find( console ) != soLink_.end());
+
+ if (mActiveConsole == console) {
+ if (soLink_.size() <= 1) {
+ mActiveConsole = NULL;
+ } else {
+ mActiveConsole = console != &soLink_.back() ? soLink_.Element_toValue(console->mListNode.getNext()) : &soLink_.front();
+ }
+ }
+
+ if (JUTGetWarningConsole() == console)
+ JUTSetWarningConsole(NULL);
+ if (JUTGetReportConsole() == console)
+ JUTSetReportConsole(NULL);
+
+ soLink_.Remove(console);
}
-#pragma pop
/* 802E8384-802E8450 2E2CC4 00CC+00 0/0 1/1 0/0 .text draw__17JUTConsoleManagerCFv */
+// missing stack var, different from tww/pik2
#ifdef NONMATCHING
void JUTConsoleManager::draw() const {
- JGadget::TLinkList<JUTConsole, 4>::const_iterator iter = mLinkList.begin();
- JGadget::TLinkList<JUTConsole, 4>::const_iterator end = mLinkList.end();
+ ConsoleList::const_iterator iter = soLink_.begin();
+ ConsoleList::const_iterator end = soLink_.end();
for (; iter != end; ++iter) {
const JUTConsole* const console = &(*iter);