[gtk+] gtkmagnifier: Avoid a crash if the inspected widget is finalized
- From: Rui Matos <rtcm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] gtkmagnifier: Avoid a crash if the inspected widget is finalized
- Date: Tue, 9 Feb 2016 17:39:24 +0000 (UTC)
commit 019dab7c38a0891f494749e9e8fb27c30e8a5f25
Author: Rui Matos <tiagomatos gmail com>
Date: Tue Feb 9 15:30:00 2016 +0100
gtkmagnifier: Avoid a crash if the inspected widget is finalized
If the inspected widget is finalized and we then try to disconnect
from its signals we'll crash.
https://bugzilla.gnome.org/show_bug.cgi?id=761775
gtk/gtkmagnifier.c | 12 ++++++++++--
1 files changed, 10 insertions(+), 2 deletions(-)
---
diff --git a/gtk/gtkmagnifier.c b/gtk/gtkmagnifier.c
index e83d306..29905fb 100644
--- a/gtk/gtkmagnifier.c
+++ b/gtk/gtkmagnifier.c
@@ -204,7 +204,8 @@ disconnect_resize_handler (GtkMagnifier *magnifier)
if (priv->resize_handler)
{
- g_signal_handler_disconnect (priv->inspected, priv->resize_handler);
+ if (priv->inspected)
+ g_signal_handler_disconnect (priv->inspected, priv->resize_handler);
priv->resize_handler = 0;
}
}
@@ -239,7 +240,8 @@ disconnect_draw_handler (GtkMagnifier *magnifier)
if (priv->draw_handler)
{
- g_signal_handler_disconnect (priv->inspected, priv->draw_handler);
+ if (priv->inspected)
+ g_signal_handler_disconnect (priv->inspected, priv->draw_handler);
priv->draw_handler = 0;
}
}
@@ -343,7 +345,13 @@ _gtk_magnifier_set_inspected (GtkMagnifier *magnifier,
disconnect_draw_handler (magnifier);
disconnect_resize_handler (magnifier);
+ if (priv->inspected)
+ g_object_remove_weak_pointer (G_OBJECT (priv->inspected),
+ (gpointer *) &priv->inspected);
priv->inspected = inspected;
+ if (priv->inspected)
+ g_object_add_weak_pointer (G_OBJECT (priv->inspected),
+ (gpointer *) &priv->inspected);
connect_draw_handler (magnifier);
connect_resize_handler (magnifier);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]