[gnome-online-accounts/gnome-3-16] webview: Be careful about NULL when handling weak pointers



commit a27206a70e540101771c071a94d6b19e72362c85
Author: Debarshi Ray <debarshir gnome org>
Date:   Thu May 7 19:53:10 2015 +0200

    webview: Be careful about NULL when handling weak pointers
    
    If the weak pointer got nullified due to the object being finalized,
    then there is no pointer left to be removed. Trying to do so will lead
    to a CRITICAL.
    
    Similarly, we can't add a weak reference to NULL.

 src/goabackend/goawebview.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)
---
diff --git a/src/goabackend/goawebview.c b/src/goabackend/goawebview.c
index 32999f9..9e48776 100644
--- a/src/goabackend/goawebview.c
+++ b/src/goabackend/goawebview.c
@@ -391,7 +391,9 @@ goa_web_view_finalize (GObject *object)
   GoaWebViewPrivate *priv = self->priv;
 
   g_free (priv->existing_identity);
-  g_object_remove_weak_pointer (G_OBJECT (priv->provider), (gpointer *) &priv->provider);
+
+  if (priv->provider != NULL)
+    g_object_remove_weak_pointer (G_OBJECT (priv->provider), (gpointer *) &priv->provider);
 
   G_OBJECT_CLASS (goa_web_view_parent_class)->finalize (object);
 }
@@ -410,7 +412,8 @@ goa_web_view_set_property (GObject *object, guint prop_id, const GValue *value,
 
     case PROP_PROVIDER:
       priv->provider = GOA_PROVIDER (g_value_get_object (value));
-      g_object_add_weak_pointer (G_OBJECT (priv->provider), (gpointer *) &priv->provider);
+      if (priv->provider != NULL)
+        g_object_add_weak_pointer (G_OBJECT (priv->provider), (gpointer *) &priv->provider);
       break;
 
     default:


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]