From aba9a592527efe9144e3b7d0ebd345e678ea84f2 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Sat, 2 Mar 2019 08:19:49 -0500 Subject: [PATCH] Fixed SDL_PushEvent() messing up the queue. --- src/SDL12_compat.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/SDL12_compat.c b/src/SDL12_compat.c index 9976467cd..0472d9811 100644 --- a/src/SDL12_compat.c +++ b/src/SDL12_compat.c @@ -1314,8 +1314,9 @@ SDL_PollEvent(SDL12_Event *event12) SDL_PumpEvents(); /* this will run our filter and build our 1.2 queue. */ - if (EventQueueHead == NULL) + if (EventQueueHead == NULL) { return 0; /* no events at the moment. */ + } SDL_memcpy(event12, &EventQueueHead->event12, sizeof (SDL12_Event)); next = EventQueueHead->next; @@ -1333,17 +1334,21 @@ DECLSPEC int SDLCALL SDL_PushEvent(SDL12_Event *event12) { EventQueueType *item = EventQueueAvailable; - if (item == NULL) + if (item == NULL) { return -1; /* no space available at the moment. */ + } EventQueueAvailable = item->next; - if (EventQueueTail) + if (EventQueueTail) { EventQueueTail->next = item; - else + EventQueueTail = item; + } else { EventQueueHead = EventQueueTail = item; + } item->next = NULL; SDL_memcpy(&item->event12, event12, sizeof (SDL12_Event)); + return 0; }