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:
parent
a067bd907e
commit
2a822c2311
10
mi/mieq.c
10
mi/mieq.c
|
@ -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. */
|
||||
|
|
Loading…
Reference in New Issue
Block a user