Frank Binns <[email protected]> writes:

> index ab923d5..a5bbe23 100644
> --- a/dix/devices.c
> +++ b/dix/devices.c
> @@ -946,8 +946,9 @@ CloseDevice(DeviceIntPtr dev)
>      if (dev->inited)
>          (void) (*dev->deviceProc) (dev, DEVICE_CLOSE);
>  
> -    /* free sprite memory */
> -    if (IsMaster(dev) && dev->spriteInfo->sprite)
> +    FreeSprite(dev);
> +
> +    if (IsMaster(dev))
>          screen->DeviceCursorCleanup(dev, screen);

Can you explain how this helps? From what I can see, you're simply
removing the check for dev->spriteInfo->sprite, which is necessary only
because you've freed the sprite before checking.

>  
>      /* free acceleration info */
> @@ -968,8 +969,6 @@ CloseDevice(DeviceIntPtr dev)
>          free(classes);
>      }
>  
> -    FreeSprite(dev);
> -
>      /* a client may have the device set as client pointer */
>      for (j = 0; j < currentMaxClients; j++) {
>          if (clients[j] && clients[j]->clientPtr == dev) {

-- 
[email protected]

Attachment: pgpFvsJEdAyVo.pgp
Description: PGP signature

_______________________________________________
[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