From b96fc1934ec699666ae7bbbcfd359dee29a3a645 Mon Sep 17 00:00:00 2001 From: "Enrico Weigelt, metux IT consult" Date: Wed, 4 Sep 2024 13:13:01 +0200 Subject: [PATCH] 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 125d4dada..f2ff8e3cb 100644 --- a/dix/devices.c +++ b/dix/devices.c @@ -1034,8 +1034,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 dec31ed0c..135614ddb 100644 --- a/dix/events.c +++ b/dix/events.c @@ -1510,8 +1510,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); } } @@ -1551,8 +1550,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); } } @@ -1610,8 +1608,7 @@ ActivatePointerGrab(DeviceIntPtr mouse, GrabPtr grab, UpdateGesturesForGrab(mouse); CheckGrabForSyncs(mouse, (Bool) grab->pointerMode, (Bool) grab->keyboardMode); - if (oldgrab) - FreeGrab(oldgrab); + FreeGrab(oldgrab); } /** @@ -1730,8 +1727,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 0e385d1b2..05c5d0656 100644 --- a/dix/gestures.c +++ b/dix/gestures.c @@ -114,10 +114,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 70669f6c7..a43374e68 100644 --- a/dix/grabs.c +++ b/dix/grabs.c @@ -255,7 +255,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);