[PATCH libinput 1/5] util: allow list_remove() on a NULL node
Hans de Goede
hdegoede at redhat.com
Tue Jun 30 05:22:34 PDT 2015
Hi Peter,
On 29-06-15 05:49, Peter Hutterer wrote:
> Don't require a list_init() on a node before we can call list_remove on it, it
> clutters up the code for little benefit.
>
> Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
> ---
> src/libinput-util.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/src/libinput-util.c b/src/libinput-util.c
> index 3a9c8db..f19695c 100644
> --- a/src/libinput-util.c
> +++ b/src/libinput-util.c
> @@ -59,6 +59,9 @@ list_insert(struct list *list, struct list *elm)
> void
> list_remove(struct list *elm)
> {
> + if (elm->next == NULL && elm->prev == NULL)
> + return;
> +
> elm->prev->next = elm->next;
> elm->next->prev = elm->prev;
> elm->next = NULL;
>
I do not think this is a good idea, most list implementations
people are used to do not allow this and consider a double
remove / del a bug.
At a minimum this needs to be done in the form of adding a
wrapper called: list_remove_if_not_null() but I would prefer
for you to not make such a change at all, instead I
suggest adding an extra "if (tp->palm.monitor_trackpoint)"
check before the 2 libinput_device_remove_event_listener(
&tp->sendevents.trackpoint_listener) calls to patch 5/5 .
With those 2 extra checks added patches 2 - 5 are:
Reviewed-by: Hans de Goede <hdegoede at redhat.com>
Regards,
Hans
More information about the wayland-devel
mailing list