mieq: don't leak events
free all events posted through mieqEnqueue.
This commit is contained in:
parent
997ba45b19
commit
a406f6bfea
|
@ -124,6 +124,7 @@ mieqEnqueue (xEvent *e)
|
||||||
if (e->u.u.type == DeviceValuator) {
|
if (e->u.u.type == DeviceValuator) {
|
||||||
if (laste->nevents >= 6) {
|
if (laste->nevents >= 6) {
|
||||||
ErrorF("mieqEnqueue: more than six valuator events; dropping.\n");
|
ErrorF("mieqEnqueue: more than six valuator events; dropping.\n");
|
||||||
|
free(e);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (oldtail == miEventQueue.head ||
|
if (oldtail == miEventQueue.head ||
|
||||||
|
@ -133,6 +134,7 @@ mieqEnqueue (xEvent *e)
|
||||||
((lastkbp->deviceid & DEVICE_BITS) !=
|
((lastkbp->deviceid & DEVICE_BITS) !=
|
||||||
(v->deviceid & DEVICE_BITS))) {
|
(v->deviceid & DEVICE_BITS))) {
|
||||||
ErrorF("mieqEnequeue: out-of-order valuator event; dropping.\n");
|
ErrorF("mieqEnequeue: out-of-order valuator event; dropping.\n");
|
||||||
|
free(e);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
laste->event[laste->nevents++] = *e;
|
laste->event[laste->nevents++] = *e;
|
||||||
|
@ -159,6 +161,7 @@ mieqEnqueue (xEvent *e)
|
||||||
/* Toss events which come in late */
|
/* Toss events which come in late */
|
||||||
if (newtail == miEventQueue.head) {
|
if (newtail == miEventQueue.head) {
|
||||||
ErrorF("tossed event which came in late\n");
|
ErrorF("tossed event which came in late\n");
|
||||||
|
free(e);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
miEventQueue.tail = newtail;
|
miEventQueue.tail = newtail;
|
||||||
|
@ -235,5 +238,7 @@ void mieqProcessInputEvents ()
|
||||||
++miEventQueue.head;
|
++miEventQueue.head;
|
||||||
(*e->pDev->public.processInputProc)(e->event, e->pDev, e->nevents);
|
(*e->pDev->public.processInputProc)(e->event, e->pDev, e->nevents);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
free(e->event);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue