On Fri, Feb 10, 2012 at 11:56:45AM -0800, Chase Douglas wrote:
> proto_data is NULL when run through eventcomm-test.
> 
> Signed-off-by: Chase Douglas <[email protected]>
> ---
>  src/eventcomm.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/src/eventcomm.c b/src/eventcomm.c
> index ce26934..a52e8b8 100644
> --- a/src/eventcomm.c
> +++ b/src/eventcomm.c
> @@ -502,7 +502,7 @@ SynapticsReadEvent(InputInfoPtr pInfo, struct input_event 
> *ev)
>      ssize_t len;
>  
>  #ifdef HAVE_MTDEV
> -    if (proto_data->mtdev)
> +    if (proto_data && proto_data->mtdev)
>          len = mtdev_get(proto_data->mtdev, pInfo->fd, ev, 1) *
>                sizeof(struct input_event);
>      else
> @@ -598,7 +598,7 @@ EventProcessTouch(InputInfoPtr pInfo)
>      SynapticsPrivate *priv = (SynapticsPrivate *)pInfo->private;
>      struct eventcomm_proto_data *proto_data = priv->proto_data;
>  
> -    if (proto_data->cur_slot < 0 || !priv->has_touch)
> +    if (!proto_data || proto_data->cur_slot < 0 || !priv->has_touch)
>          return;
>  
>      /* If the ABS_MT_SLOT is the first event we get after EV_SYN, skip this 
> */
> -- 
> 1.7.8.3

Not a fan of this tbh, it seems it only checks in the paths hit by the
eventcomm-test. If we're really pulling through with this, we should check
everywhere. The better approach is to allocate some zeroed out array in the
test that is sizeof(eventcomm_proto_data) and use that as priv->proto_data
(since you only care about 0s anyway), or add a simple helper function
void *EventAllocatePrivate();
 
Cheers,
  Peter
_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to