[PATCH] mi: streamline CopyGetMasterEvent(), remove code duplication.
Peter Hutterer
peter.hutterer at who-t.net
Tue Dec 9 18:46:38 PST 2008
On Wed, Dec 10, 2008 at 12:01:54PM +1100, Daniel Stone wrote:
> On Wed, Dec 10, 2008 at 09:18:12AM +1000, Peter Hutterer wrote:
> > How about this one?
>
> Looks nicer, acked conditional on one nitpick.
>
> > From 9be3abf13d291879e37652f7364c2712f6bcc592 Mon Sep 17 00:00:00 2001
> > From: Peter Hutterer <peter.hutterer at redhat.com>
> > Date: Mon, 1 Dec 2008 21:20:48 +1000
> > Subject: [PATCH] mi: Clean up CopyGetMasterEvent, re-use the memory.
> >
> > Alloc an EventList once and then re-use instead of allocing a new event each
> > time we need a master event.
> > There's a trick included: because all the event processing handlers only take
> > an xEvent, init a size 1 EventList and squash the events into this one.
> >
> > Events that have count > 1 must be squished into an xEvent array anyway before
> > passing into the event handlers, so we don't lose anything here.
> >
> > Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
>
> Acked-by: Daniel Stone <daniel at fooishbar.org>
>
> > @@ -98,6 +99,17 @@ mieqInit(void)
> > FatalError("Could not allocate event queue.\n");
> > miEventQueue.events[i].events = evlist;
> > }
> > +
> > + /* XXX: mE is just 1 event long, if we have Motion + Valuator they are
> > + * squashed into the first event to make passing it into the event
> > + * processing handlers easier. This should be fixed when the processing
> > + * handlers switch to EventListPtr instead of xEvent */
> > + masterEvents = InitEventList(1);
> > + if (!masterEvents)
> > + FatalError("Could not allocated MD event queue.\n");
> > + SetMinimumEventSize(masterEvents, 1,
> > + 7 /* 1 + MAX_VALUATOR_EVENTS */ * sizeof(xEvent));
> > +
> > SetInputCheck(&miEventQueue.head, &miEventQueue.tail);
> > return TRUE;
> > }
>
> Do you want to make that actually 1 + M_V_E instead of a hardcoded value
> and then having the calculation in a comment right there anyway?
amended* and pushed, thanks for the review.
* Rebased on top of commit 0b4fef6337d8.
dix: move MAX_VALUATOR_EVENTS into include/input.h
Cheers,
Peter
More information about the xorg
mailing list