summaryrefslogtreecommitdiffstats
path: root/src/engine/PostProcessor.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2008-11-24 02:07:30 +0000
committerDavid Robillard <d@drobilla.net>2008-11-24 02:07:30 +0000
commitd3c7142837dc6d1d460477115fa81dc51b92a1ce (patch)
treec05cd2ca469e2be715e681454a4a6020d8ca1124 /src/engine/PostProcessor.cpp
parentd038cc80aeab835344708b0a136198dab9a28fab (diff)
downloadingen-d3c7142837dc6d1d460477115fa81dc51b92a1ce.tar.gz
ingen-d3c7142837dc6d1d460477115fa81dc51b92a1ce.tar.bz2
ingen-d3c7142837dc6d1d460477115fa81dc51b92a1ce.zip
Use lists instead of ringbuffers for event queue - remove upper limit on event queue size and related warnings on big patch load.
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@1776 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/engine/PostProcessor.cpp')
-rw-r--r--src/engine/PostProcessor.cpp16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/engine/PostProcessor.cpp b/src/engine/PostProcessor.cpp
index 5d731fbb..9a8b540a 100644
--- a/src/engine/PostProcessor.cpp
+++ b/src/engine/PostProcessor.cpp
@@ -57,14 +57,16 @@ PostProcessor::process()
}
/* Process normal events */
- while ( ! _events.empty()) {
- Event* const ev = _events.front();
- if (ev->time() > end_time)
+ Raul::List<Event*>::Node* n = _events.head();
+ while (n) {
+ if (n->elem()->time() > end_time)
break;
- _events.pop();
- assert(ev);
- ev->post_process();
- delete ev;
+ Raul::List<Event*>::Node* next = n->next();
+ n->elem()->post_process();
+ _events.erase(_events.begin());
+ delete n->elem();
+ delete n;
+ n = next;
}
}