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:
Colin Walters
2010-12-17 15:36:51 -05:00
committed by Christophe Fergeau
parent 5efefdb655
commit 22eb70adab

View File

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