Also, remove the unnecessary static qualifier on mieqProcessInputEvents()'s 'event' local variable.
Signed-off-by: Andy Ritger <[email protected]> --- mi/mieq.c | 16 +++++++++++++++- 1 files changed, 15 insertions(+), 1 deletions(-) diff --git a/mi/mieq.c b/mi/mieq.c index e117a8d..8339afb 100644 --- a/mi/mieq.c +++ b/mi/mieq.c @@ -569,14 +569,25 @@ mieqProcessInputEvents(void) { EventRec *e = NULL; ScreenPtr screen; - static InternalEvent event; + InternalEvent event; DeviceIntPtr dev = NULL, master = NULL; size_t n_enqueued; + static Bool inProcessInputEvents = FALSE; #ifdef XQUARTZ pthread_mutex_lock(&miEventQueueMutex); #endif + /* + * report an error if mieqProcessInputEvents() is called recursively; + * this can happen, e.g., if something in the mieqProcessDeviceEvent() + * call chain calls UpdateCurrentTime() instead of UpdateCurrentTimeIf() + */ + if (inProcessInputEvents) { + ErrorF("[mi] mieqProcessInputEvents() called recursively.\n"); + } + inProcessInputEvents = TRUE; + /* Grow our queue if we are reaching capacity: < 2 * QUEUE_RESERVED_SIZE remaining */ n_enqueued = mieqNumEnqueued(&miEventQueue); if (n_enqueued >= (miEventQueue.nevents - (2 * QUEUE_RESERVED_SIZE)) && @@ -631,6 +642,9 @@ mieqProcessInputEvents(void) pthread_mutex_lock(&miEventQueueMutex); #endif } + + inProcessInputEvents = FALSE; + #ifdef XQUARTZ pthread_mutex_unlock(&miEventQueueMutex); #endif -- 1.7.7 _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
