| From f4e7fe95794218e9237b18102a1292dd7d973464 Mon Sep 17 00:00:00 2001 |
| From: Peter Hutterer <peter.hutterer@who-t.net> |
| Date: Thu, 10 May 2012 15:32:20 +1000 |
| Subject: [PATCH 2/5] dix: move freeing the sprite into a function |
| |
| Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> |
| Reviewed-by: Chase Douglas <chase.douglas@canonical.com> |
| (cherry picked from commit e57d6a89027c55fef987cdc259668c48a8b4ea1b) |
| --- |
| dix/devices.c | 7 +------ |
| dix/events.c | 12 ++++++++++++ |
| include/dix.h | 2 ++ |
| 3 files changed, 15 insertions(+), 6 deletions(-) |
| |
| diff --git a/dix/devices.c b/dix/devices.c |
| index 557a68f..23e1008 100644 |
| --- a/dix/devices.c |
| +++ b/dix/devices.c |
| @@ -917,12 +917,7 @@ CloseDevice(DeviceIntPtr dev) |
| free(classes); |
| } |
| |
| - if (DevHasCursor(dev) && dev->spriteInfo->sprite) { |
| - if (dev->spriteInfo->sprite->current) |
| - FreeCursor(dev->spriteInfo->sprite->current, None); |
| - free(dev->spriteInfo->sprite->spriteTrace); |
| - free(dev->spriteInfo->sprite); |
| - } |
| + FreeSprite(dev); |
| |
| /* a client may have the device set as client pointer */ |
| for (j = 0; j < currentMaxClients; j++) { |
| diff --git a/dix/events.c b/dix/events.c |
| index 822b6e9..b6bc759 100644 |
| --- a/dix/events.c |
| +++ b/dix/events.c |
| @@ -3193,6 +3193,18 @@ InitializeSprite(DeviceIntPtr pDev, WindowPtr pWin) |
| #endif |
| } |
| |
| +void FreeSprite(DeviceIntPtr dev) |
| +{ |
| + if (DevHasCursor(dev) && dev->spriteInfo->sprite) { |
| + if (dev->spriteInfo->sprite->current) |
| + FreeCursor(dev->spriteInfo->sprite->current, None); |
| + free(dev->spriteInfo->sprite->spriteTrace); |
| + free(dev->spriteInfo->sprite); |
| + } |
| + dev->spriteInfo->sprite = NULL; |
| +} |
| + |
| + |
| /** |
| * Update the mouse sprite info when the server switches from a pScreen to another. |
| * Otherwise, the pScreen of the mouse sprite is never updated when we switch |
| diff --git a/include/dix.h b/include/dix.h |
| index d604e06..879b4a3 100644 |
| --- a/include/dix.h |
| +++ b/include/dix.h |
| @@ -394,6 +394,8 @@ DeliverTouchEvents(DeviceIntPtr /* dev */ , |
| extern void |
| InitializeSprite(DeviceIntPtr /* pDev */ , |
| WindowPtr /* pWin */ ); |
| +extern void |
| +FreeSprite(DeviceIntPtr pDev); |
| |
| extern void |
| UpdateSpriteForScreen(DeviceIntPtr /* pDev */ , |
| -- |
| 1.8.3 |
| |