[gtk+] text handle: Don't leak adjustments
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] text handle: Don't leak adjustments
- Date: Wed, 23 Nov 2016 18:57:16 +0000 (UTC)
commit 0e37d6739393cfe2da99e6331dc981780acf96e1
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 19e89f1..04373fe 100644
--- a/gtk/gtktexthandle.c
+++ b/gtk/gtktexthandle.c
@@ -458,25 +458,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]