From 58cfb7312b1518369bd1169e540244c429f03200 Mon Sep 17 00:00:00 2001 From: David Rose Date: Tue, 10 Sep 2002 02:23:55 +0000 Subject: [PATCH] don't seg fault when events are lost --- direct/src/interval/cMetaInterval.cxx | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/direct/src/interval/cMetaInterval.cxx b/direct/src/interval/cMetaInterval.cxx index 81e5b1a3bb..0ba5a2944b 100644 --- a/direct/src/interval/cMetaInterval.cxx +++ b/direct/src/interval/cMetaInterval.cxx @@ -61,7 +61,13 @@ void CMetaInterval:: clear_intervals() { // Better not do this unless you have serviced all of the // outstanding events! - nassertv(_event_queue.empty()); + bool lost_events = false; + if (!_event_queue.empty()) { + interval_cat.warning() + << "Losing outstanding events for " << *this << "\n"; + _event_queue.clear(); + lost_events = true; + } clear_events(); @@ -83,6 +89,12 @@ clear_intervals() { _current_nesting_level = 0; _next_event_index = 0; + +#ifndef NDEBUG + if (verify_intervals) { + nassertv(!lost_events); + } +#endif } ////////////////////////////////////////////////////////////////////