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>
This commit is contained in:
Jeremy Huddleston 2008-12-15 03:18:13 -08:00
parent f1c9b5ab23
commit a939368ab8

View File

@ -312,7 +312,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;
@ -322,7 +323,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");
@ -380,8 +384,6 @@ mieqProcessInputEvents(void)
master->public.processInputProc(masterEvents->event, master,
nevents);
}
xfree(event);
}
/* Update the sprite now. Next event may be from different device. */