[gtk+/gtk-3-22] text handle: Don't leak adjustments
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/gtk-3-22] text handle: Don't leak adjustments
- Date: Wed, 23 Nov 2016 18:58:12 +0000 (UTC)
commit da9bd46aed82a9c1067f3cf7b680201560bd2176
Author: Matthias Clasen <mclasen redhat com>
Date: Wed Nov 23 13:55:28 2016 -0500
text handle: Don't leak adjustments
This can happen if the weak pointer is triggered before the
adjustments are unset. Pointed out in
https://bugzilla.gnome.org/show_bug.cgi?id=774790
gtk/gtktexthandle.c | 26 +++++++++++---------------
1 files changed, 11 insertions(+), 15 deletions(-)
---
diff --git a/gtk/gtktexthandle.c b/gtk/gtktexthandle.c
index cc98d22..e402672 100644
--- a/gtk/gtktexthandle.c
+++ b/gtk/gtktexthandle.c
@@ -461,25 +461,21 @@ _gtk_text_handle_set_scrollable (GtkTextHandle *handle,
priv = handle->priv;
- if (priv->parent_scrollable)
+ if (priv->vadj)
{
- if (priv->vadj)
- {
- g_signal_handlers_disconnect_by_data (priv->vadj, handle);
- g_object_unref (priv->vadj);
- priv->vadj = NULL;
- }
+ g_signal_handlers_disconnect_by_data (priv->vadj, handle);
+ g_clear_object (&priv->vadj);
+ }
- if (priv->hadj)
- {
- g_signal_handlers_disconnect_by_data (priv->hadj, handle);
- g_object_unref (priv->hadj);
- priv->hadj = NULL;
- }
-
- g_object_remove_weak_pointer (G_OBJECT (priv->parent_scrollable), (gpointer *)
&priv->parent_scrollable);
+ if (priv->hadj)
+ {
+ g_signal_handlers_disconnect_by_data (priv->hadj, handle);
+ g_clear_object (&priv->hadj);
}
+ if (priv->parent_scrollable)
+ g_object_remove_weak_pointer (G_OBJECT (priv->parent_scrollable), (gpointer *) &priv->parent_scrollable);
+
priv->parent_scrollable = scrollable;
if (scrollable)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]