From a33003a2c4866781063dde578e9a12d8ea5694f4 Mon Sep 17 00:00:00 2001 From: "Enrico Weigelt, metux IT consult" Date: Wed, 4 Sep 2024 13:13:01 +0200 Subject: [PATCH] (!1359) dix: make FreeGrab() NULL tolerant Allow NULL parameters to be passed to FreeGrab(), so callers don't all need to check on their own anymore. Signed-off-by: Enrico Weigelt, metux IT consult --- dix/devices.c | 3 +-- dix/events.c | 12 ++++-------- dix/gestures.c | 6 ++---- dix/grabs.c | 3 ++- 4 files changed, 9 insertions(+), 15 deletions(-) diff --git a/dix/devices.c b/dix/devices.c index d93429e86..f63c924b1 100644 --- a/dix/devices.c +++ b/dix/devices.c @@ -1036,8 +1036,7 @@ CloseDevice(DeviceIntPtr dev) } } - if (dev->deviceGrab.grab) - FreeGrab(dev->deviceGrab.grab); + FreeGrab(dev->deviceGrab.grab); free(dev->deviceGrab.sync.event); free(dev->config_info); /* Allocated in xf86ActivateDevice. */ free(dev->last.scroll); diff --git a/dix/events.c b/dix/events.c index 983ce739b..79d051604 100644 --- a/dix/events.c +++ b/dix/events.c @@ -1512,8 +1512,7 @@ UpdateTouchesForGrab(DeviceIntPtr mouse) listener->window = grab->window; listener->state = TOUCH_LISTENER_IS_OWNER; - if (listener->grab) - FreeGrab(listener->grab); + FreeGrab(listener->grab); listener->grab = AllocGrab(grab); } } @@ -1553,8 +1552,7 @@ UpdateGesturesForGrab(DeviceIntPtr mouse) listener->listener = grab->resource; listener->window = grab->window; - if (listener->grab) - FreeGrab(listener->grab); + FreeGrab(listener->grab); listener->grab = AllocGrab(grab); } } @@ -1612,8 +1610,7 @@ ActivatePointerGrab(DeviceIntPtr mouse, GrabPtr grab, UpdateGesturesForGrab(mouse); CheckGrabForSyncs(mouse, (Bool) grab->pointerMode, (Bool) grab->keyboardMode); - if (oldgrab) - FreeGrab(oldgrab); + FreeGrab(oldgrab); } /** @@ -1732,8 +1729,7 @@ ActivateKeyboardGrab(DeviceIntPtr keybd, GrabPtr grab, TimeStamp time, grabinfo->implicitGrab = passive & ImplicitGrabMask; CheckGrabForSyncs(keybd, (Bool) grab->keyboardMode, (Bool) grab->pointerMode); - if (oldgrab) - FreeGrab(oldgrab); + FreeGrab(oldgrab); } /** diff --git a/dix/gestures.c b/dix/gestures.c index fb4afb629..cb3a2d609 100644 --- a/dix/gestures.c +++ b/dix/gestures.c @@ -116,10 +116,8 @@ void GestureEndGesture(GestureInfoPtr gi) { if (gi->has_listener) { - if (gi->listener.grab) { - FreeGrab(gi->listener.grab); - gi->listener.grab = NULL; - } + FreeGrab(gi->listener.grab); + gi->listener.grab = NULL; gi->listener.listener = 0; gi->has_listener = FALSE; } diff --git a/dix/grabs.c b/dix/grabs.c index 9b947c5d6..8025bfd1b 100644 --- a/dix/grabs.c +++ b/dix/grabs.c @@ -259,7 +259,8 @@ CreateGrab(int client, DeviceIntPtr device, DeviceIntPtr modDevice, void FreeGrab(GrabPtr pGrab) { - BUG_RETURN(!pGrab); + if (!pGrab) + return; free(pGrab->modifiersDetail.pMask); free(pGrab->detail.pMask);