summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/pso/TObject.cpp15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/pso/TObject.cpp b/src/pso/TObject.cpp
index c832ebe..b0c288d 100644
--- a/src/pso/TObject.cpp
+++ b/src/pso/TObject.cpp
@@ -117,14 +117,13 @@ void TObject::render_nodes() {
}
}
-// Perfect match, needed to do some weird stuff to get it to match, see below.
void TObject::run_tasks() {
TObject *child = this->m_down;
while (this->m_down != NULL && child != NULL) {
TObject *node = child;
child = child->m_next;
if (node->m_flags & DISALLOW_UPDATE) {
- // Clearing flag 0 in the if statement is required to match.
+ // NOTE: Clearing flag 0 in the if statement is required to match.
if (node->m_flags & QUEUE_DESTRUCTION && (node->m_flags &= ~QUEUE_DESTRUCTION, !(node->m_flags & DISALLOW_DESTRUCTION))) {
delete node;
} else {
@@ -134,11 +133,13 @@ void TObject::run_tasks() {
node->m_flags &= ~CHILD_QUEUE_DESTRUCTION;
}
- if (!(node->m_flags & BIT_2)) {
- // Adding this here somehow causes the
- // dead code to be compiled.
- // `volatile` typecast is required to match.
- (vu16)node->m_flags & QUEUE_DESTRUCTION;
+ // NOTE: Both if statements below are required to match.
+ if (node->m_flags & BIT_2) {
+ continue;
+ }
+
+ if (node->m_flags & BIT_3) {
+ continue;
}
}
} else {