From 94694c8dc27c8bab67312d253a5ec0e0a925a430 Mon Sep 17 00:00:00 2001 From: Owen Taylor Date: Thu, 14 Mar 2002 22:12:51 +0000 Subject: [PATCH] Fix rather improbable reentrancy problem if a window is destroyed while Thu Mar 14 17:09:52 2002 Owen Taylor * gdk/gdkwindow.c (gdk_window_process_all_updates): Fix rather improbable reentrancy problem if a window is destroyed while updates are being processed on another window. (Noticed by Michael Meeks, #74708) --- ChangeLog | 7 +++++++ ChangeLog.pre-2-0 | 7 +++++++ ChangeLog.pre-2-10 | 7 +++++++ ChangeLog.pre-2-2 | 7 +++++++ ChangeLog.pre-2-4 | 7 +++++++ ChangeLog.pre-2-6 | 7 +++++++ ChangeLog.pre-2-8 | 7 +++++++ gdk/gdkwindow.c | 3 +++ 8 files changed, 52 insertions(+) diff --git a/ChangeLog b/ChangeLog index 974db102b9..a8e2d36282 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Thu Mar 14 17:09:52 2002 Owen Taylor + + * gdk/gdkwindow.c (gdk_window_process_all_updates): Fix rather + improbable reentrancy problem if a window is destroyed + while updates are being processed on another window. (Noticed + by Michael Meeks, #74708) + 2002-03-14 Vitaly Tishkov * gtk/gtktreemodelsort.c diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index 974db102b9..a8e2d36282 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,10 @@ +Thu Mar 14 17:09:52 2002 Owen Taylor + + * gdk/gdkwindow.c (gdk_window_process_all_updates): Fix rather + improbable reentrancy problem if a window is destroyed + while updates are being processed on another window. (Noticed + by Michael Meeks, #74708) + 2002-03-14 Vitaly Tishkov * gtk/gtktreemodelsort.c diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 974db102b9..a8e2d36282 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,10 @@ +Thu Mar 14 17:09:52 2002 Owen Taylor + + * gdk/gdkwindow.c (gdk_window_process_all_updates): Fix rather + improbable reentrancy problem if a window is destroyed + while updates are being processed on another window. (Noticed + by Michael Meeks, #74708) + 2002-03-14 Vitaly Tishkov * gtk/gtktreemodelsort.c diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index 974db102b9..a8e2d36282 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,10 @@ +Thu Mar 14 17:09:52 2002 Owen Taylor + + * gdk/gdkwindow.c (gdk_window_process_all_updates): Fix rather + improbable reentrancy problem if a window is destroyed + while updates are being processed on another window. (Noticed + by Michael Meeks, #74708) + 2002-03-14 Vitaly Tishkov * gtk/gtktreemodelsort.c diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 974db102b9..a8e2d36282 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,10 @@ +Thu Mar 14 17:09:52 2002 Owen Taylor + + * gdk/gdkwindow.c (gdk_window_process_all_updates): Fix rather + improbable reentrancy problem if a window is destroyed + while updates are being processed on another window. (Noticed + by Michael Meeks, #74708) + 2002-03-14 Vitaly Tishkov * gtk/gtktreemodelsort.c diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 974db102b9..a8e2d36282 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,10 @@ +Thu Mar 14 17:09:52 2002 Owen Taylor + + * gdk/gdkwindow.c (gdk_window_process_all_updates): Fix rather + improbable reentrancy problem if a window is destroyed + while updates are being processed on another window. (Noticed + by Michael Meeks, #74708) + 2002-03-14 Vitaly Tishkov * gtk/gtktreemodelsort.c diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 974db102b9..a8e2d36282 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,10 @@ +Thu Mar 14 17:09:52 2002 Owen Taylor + + * gdk/gdkwindow.c (gdk_window_process_all_updates): Fix rather + improbable reentrancy problem if a window is destroyed + while updates are being processed on another window. (Noticed + by Michael Meeks, #74708) + 2002-03-14 Vitaly Tishkov * gtk/gtktreemodelsort.c diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c index 8199e09bf6..187c3a2891 100644 --- a/gdk/gdkwindow.c +++ b/gdk/gdkwindow.c @@ -2139,9 +2139,12 @@ gdk_window_process_all_updates (void) update_windows = NULL; update_idle = 0; + g_slist_foreach (old_update_windows, (GFunc)g_object_ref, NULL); + while (tmp_list) { gdk_window_process_updates_internal (tmp_list->data); + g_object_unref (tmp_list->data); tmp_list = tmp_list->next; }