gnutls: use g_clear_object()
authorDan Winship <danw@gnome.org>
Thu, 28 Jun 2012 15:35:46 +0000 (11:35 -0400)
committerDan Winship <danw@gnome.org>
Wed, 18 Jul 2012 18:25:59 +0000 (14:25 -0400)
tls/gnutls/gtlsconnection-gnutls.c

index b8fc86c..3f872a9 100644 (file)
@@ -224,39 +224,30 @@ g_tls_connection_gnutls_initable_init (GInitable     *initable,
 static void
 g_tls_connection_gnutls_finalize (GObject *object)
 {
-  GTlsConnectionGnutls *connection = G_TLS_CONNECTION_GNUTLS (object);
-
-  if (connection->priv->base_io_stream)
-    g_object_unref (connection->priv->base_io_stream);
-
-  if (connection->priv->session)
-    gnutls_deinit (connection->priv->session);
-
-  if (connection->priv->tls_istream)
-    g_object_unref (connection->priv->tls_istream);
-  if (connection->priv->tls_ostream) 
-    g_object_unref (connection->priv->tls_ostream);
+  GTlsConnectionGnutls *gnutls = G_TLS_CONNECTION_GNUTLS (object);
 
-  if (connection->priv->creds)
-    gnutls_certificate_free_credentials (connection->priv->creds);
+  g_clear_object (&gnutls->priv->base_io_stream);
 
-  if (connection->priv->database)
-    g_object_unref (connection->priv->database);
-  if (connection->priv->certificate)
-    g_object_unref (connection->priv->certificate);
-  if (connection->priv->peer_certificate)
-    g_object_unref (connection->priv->peer_certificate);
+  g_clear_object (&gnutls->priv->tls_istream);
+  g_clear_object (&gnutls->priv->tls_ostream);
 
-  g_clear_object (&connection->priv->interaction);
+  if (gnutls->priv->session)
+    gnutls_deinit (gnutls->priv->session);
+  if (gnutls->priv->creds)
+    gnutls_certificate_free_credentials (gnutls->priv->creds);
 
-  if (connection->priv->error)
-    g_error_free (connection->priv->error);
+  g_clear_object (&gnutls->priv->database);
+  g_clear_object (&gnutls->priv->certificate);
+  g_clear_object (&gnutls->priv->peer_certificate);
 
 #ifdef HAVE_PKCS11
-  p11_kit_pin_unregister_callback (connection->priv->interaction_id,
-                                   on_pin_prompt_callback, connection);
+  p11_kit_pin_unregister_callback (gnutls->priv->interaction_id,
+                                   on_pin_prompt_callback, gnutls);
 #endif
-  g_free (connection->priv->interaction_id);
+  g_free (gnutls->priv->interaction_id);
+  g_clear_object (&gnutls->priv->interaction);
+
+  g_clear_error (&gnutls->priv->error);
 
   G_OBJECT_CLASS (g_tls_connection_gnutls_parent_class)->finalize (object);
 }
@@ -804,8 +795,7 @@ handshake_internal (GTlsConnectionGnutls  *gnutls,
 
       if (gnutls->priv->peer_certificate)
        {
-         g_object_unref (gnutls->priv->peer_certificate);
-         gnutls->priv->peer_certificate = NULL;
+         g_clear_object (&gnutls->priv->peer_certificate);
          gnutls->priv->peer_certificate_errors = 0;
 
          g_object_notify (G_OBJECT (gnutls), "peer-certificate");