gdkwindow: Fix event unref iteration
We were double looping previously which caused a NULL deref.
(cherry picked from commit d08ff485f2)
This commit is contained in:
committed by
Christophe Fergeau
parent
5efefdb655
commit
22eb70adab
@@ -1956,11 +1956,15 @@ _gdk_event_filter_unref (GdkWindow *window,
|
||||
filters = &private->filters;
|
||||
}
|
||||
|
||||
for (tmp_list = *filters; tmp_list; tmp_list = tmp_list->next)
|
||||
tmp_list = *filters;
|
||||
while (tmp_list)
|
||||
{
|
||||
GdkEventFilter *iter_filter = tmp_list->data;
|
||||
GList *node;
|
||||
|
||||
node = tmp_list;
|
||||
tmp_list = tmp_list->next;
|
||||
|
||||
if (iter_filter != filter)
|
||||
continue;
|
||||
|
||||
@@ -1970,9 +1974,6 @@ _gdk_event_filter_unref (GdkWindow *window,
|
||||
if (filter->ref_count != 0)
|
||||
continue;
|
||||
|
||||
node = tmp_list;
|
||||
tmp_list = tmp_list->next;
|
||||
|
||||
*filters = g_list_remove_link (*filters, node);
|
||||
g_free (filter);
|
||||
g_list_free_1 (node);
|
||||
|
||||
Reference in New Issue
Block a user