[Orxonox-commit 2089] r6805 - code/trunk/src/modules/objects/triggers
dafrick at orxonox.net
dafrick at orxonox.net
Thu Apr 29 15:26:43 CEST 2010
Author: dafrick
Date: 2010-04-29 15:26:43 +0200 (Thu, 29 Apr 2010)
New Revision: 6805
Modified:
code/trunk/src/modules/objects/triggers/MultiTrigger.cc
Log:
Possible bug fix.
Modified: code/trunk/src/modules/objects/triggers/MultiTrigger.cc
===================================================================
--- code/trunk/src/modules/objects/triggers/MultiTrigger.cc 2010-04-29 12:21:57 UTC (rev 6804)
+++ code/trunk/src/modules/objects/triggers/MultiTrigger.cc 2010-04-29 13:26:43 UTC (rev 6805)
@@ -114,15 +114,22 @@
std::queue<MultiTriggerState*>* queue = this->letTrigger();
if(queue != NULL)
COUT(4) << "MultiTrigger &" << this << ": " << queue->size() << " new states to state queue." << std::endl;
- while(queue != NULL && queue->size() > 0)
+
+ if(queue != NULL)
{
- //TODO: Be more efficient, Don't delete a state and create a new one immediately after that. Reuse!
- MultiTriggerState* state = queue->front();
- this->addState(state->bTriggered & this->isModeTriggered(state->originator), state->originator);
- queue->pop();
- delete state;
+ while(queue->size() > 0)
+ {
+ //TODO: Be more efficient, Don't delete a state and create a new one immediately after that. Reuse!
+ MultiTriggerState* state = queue->front();
+ if(state == NULL)
+ break;
+
+ this->addState(state->bTriggered & this->isModeTriggered(state->originator), state->originator);
+ queue->pop();
+ delete state;
+ }
+ delete queue;
}
- delete queue;
if (this->stateQueue_.size() > 0)
{
More information about the Orxonox-commit
mailing list