mi: Reuse memory in mieqProcessInputEvents rather than making excessive calls to calloc()

Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
(cherry picked from commit a939368ab8)
This commit is contained in:
Jeremy Huddleston 2008-12-15 03:18:13 -08:00 committed by Keith Packard
parent a067bd907e
commit 2a822c2311

View File

@ -308,7 +308,8 @@ mieqProcessInputEvents(void)
int x = 0, y = 0;
int type, nevents, evlen, i;
ScreenPtr screen;
xEvent *event;
static xEvent *event = NULL;
static size_t event_size = 0;
DeviceIntPtr dev = NULL,
master = NULL;
@ -318,7 +319,10 @@ mieqProcessInputEvents(void)
/* GenericEvents always have nevents == 1 */
nevents = e->nevents;
evlen = (nevents > 1) ? sizeof(xEvent) : e->events->evlen;
event = xcalloc(nevents, evlen);
if((nevents * evlen) > event_size) {
event_size = nevents * evlen;
event = (xEvent *)xrealloc(event, event_size);
}
if (!event)
FatalError("[mi] No memory left for event processing.\n");
@ -376,8 +380,6 @@ mieqProcessInputEvents(void)
master->public.processInputProc(masterEvents->event, master,
nevents);
}
xfree(event);
}
/* Update the sprite now. Next event may be from different device. */