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 <info@metux.net>
This commit is contained in:
Enrico Weigelt, metux IT consult 2024-09-04 13:13:01 +02:00 committed by Povilas Kanapickas
parent 93856053b7
commit 48cee2fd22
4 changed files with 9 additions and 15 deletions

View File

@ -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);

View File

@ -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);
}
/**

View File

@ -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;
}

View File

@ -257,7 +257,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);