[gnome-online-accounts] oauth2: Drop the priv pointer



commit 5f7a81393a262ae301d82e73d505b4d72ecb6792
Author: Debarshi Ray <debarshir gnome org>
Date:   Wed Feb 8 13:37:22 2017 +0100

    oauth2: Drop the priv pointer
    
    The current GObject recommendation is to use the generated
    get_instance_private function instead of a separate priv pointer in the
    instance struct. This saves one pointer per class in the hierarchy
    multiplied by the number of instances of the type, and the function is
    fast enough because it only does pointer arithmetic.

 src/goabackend/goaoauth2provider-priv.h |    1 -
 src/goabackend/goaoauth2provider.c      |   40 ++++++++++++++++++++++--------
 2 files changed, 29 insertions(+), 12 deletions(-)
---
diff --git a/src/goabackend/goaoauth2provider-priv.h b/src/goabackend/goaoauth2provider-priv.h
index 97e4260..07181d2 100644
--- a/src/goabackend/goaoauth2provider-priv.h
+++ b/src/goabackend/goaoauth2provider-priv.h
@@ -41,7 +41,6 @@ struct _GoaOAuth2Provider
 {
   /*< private >*/
   GoaProvider parent_instance;
-  GoaOAuth2ProviderPrivate *priv;
 };
 
 /**
diff --git a/src/goabackend/goaoauth2provider.c b/src/goabackend/goaoauth2provider.c
index e4f31c1..997fc0f 100644
--- a/src/goabackend/goaoauth2provider.c
+++ b/src/goabackend/goaoauth2provider.c
@@ -817,7 +817,9 @@ static void
 on_web_view_deny_click (GoaWebView *web_view, gpointer user_data)
 {
   GoaOAuth2Provider *provider = GOA_OAUTH2_PROVIDER (user_data);
-  GoaOAuth2ProviderPrivate *priv = provider->priv;
+  GoaOAuth2ProviderPrivate *priv;
+
+  priv = goa_oauth2_provider_get_instance_private (provider);
   gtk_dialog_response (priv->dialog, GTK_RESPONSE_CANCEL);
 }
 
@@ -825,7 +827,9 @@ static void
 on_web_view_password_submit (GoaWebView *web_view, const gchar *password, gpointer user_data)
 {
   GoaOAuth2Provider *provider = GOA_OAUTH2_PROVIDER (user_data);
-  GoaOAuth2ProviderPrivate *priv = provider->priv;
+  GoaOAuth2ProviderPrivate *priv;
+
+  priv = goa_oauth2_provider_get_instance_private (provider);
 
   g_free (priv->password);
   priv->password = g_strdup (password);
@@ -838,7 +842,7 @@ on_web_view_decide_policy (WebKitWebView            *web_view,
                            gpointer                  user_data)
 {
   GoaOAuth2Provider *provider = GOA_OAUTH2_PROVIDER (user_data);
-  GoaOAuth2ProviderPrivate *priv = provider->priv;
+  GoaOAuth2ProviderPrivate *priv;
   GHashTable *key_value_pairs;
   WebKitNavigationAction *action;
   WebKitURIRequest *request;
@@ -850,6 +854,8 @@ on_web_view_decide_policy (WebKitWebView            *web_view,
   const gchar *requested_uri;
   gint response_id = GTK_RESPONSE_NONE;
 
+  priv = goa_oauth2_provider_get_instance_private (provider);
+
   if (decision_type != WEBKIT_POLICY_DECISION_TYPE_NAVIGATION_ACTION)
     goto default_behaviour;
 
@@ -983,7 +989,7 @@ get_tokens_and_identity (GoaOAuth2Provider  *provider,
                          GtkDialog          *dialog,
                          GtkBox             *vbox)
 {
-  GoaOAuth2ProviderPrivate *priv = provider->priv;
+  GoaOAuth2ProviderPrivate *priv;
   gboolean ret;
   gchar *url;
   GSList *cookies;
@@ -1001,13 +1007,15 @@ get_tokens_and_identity (GoaOAuth2Provider  *provider,
                         || (add_account && existing_identity == NULL), FALSE);
   g_return_val_if_fail (GTK_IS_DIALOG (dialog), FALSE);
   g_return_val_if_fail (GTK_IS_BOX (vbox), FALSE);
-  g_return_val_if_fail (priv->error == NULL, FALSE);
 
   ret = FALSE;
   escaped_redirect_uri = NULL;
   escaped_client_id = NULL;
   escaped_scope = NULL;
 
+  priv = goa_oauth2_provider_get_instance_private (provider);
+  g_return_val_if_fail (priv->error == NULL, FALSE);
+
   /* TODO: check with NM whether we're online, if not - return error */
 
   priv->dialog = dialog;
@@ -1142,7 +1150,10 @@ add_account_cb (GoaManager   *manager,
                 gpointer      user_data)
 {
   GoaOAuth2Provider *provider = GOA_OAUTH2_PROVIDER (user_data);
-  GoaOAuth2ProviderPrivate *priv = provider->priv;
+  GoaOAuth2ProviderPrivate *priv;
+
+  priv = goa_oauth2_provider_get_instance_private (provider);
+
   goa_manager_call_add_account_finish (manager,
                                        &priv->account_object_path,
                                        res,
@@ -1178,7 +1189,9 @@ static void
 add_credentials_key_values (GoaOAuth2Provider *provider,
                             GVariantBuilder *credentials)
 {
-  GoaOAuth2ProviderPrivate *priv = provider->priv;
+  GoaOAuth2ProviderPrivate *priv;
+
+  priv = goa_oauth2_provider_get_instance_private (provider);
 
   if (priv->authorization_code != NULL)
     g_variant_builder_add (credentials, "{sv}", "authorization_code",
@@ -1201,7 +1214,7 @@ goa_oauth2_provider_add_account (GoaProvider *_provider,
                                          GError            **error)
 {
   GoaOAuth2Provider *provider = GOA_OAUTH2_PROVIDER (_provider);
-  GoaOAuth2ProviderPrivate *priv = provider->priv;
+  GoaOAuth2ProviderPrivate *priv;
   GoaObject *ret;
   GVariantBuilder credentials;
   GVariantBuilder details;
@@ -1214,6 +1227,8 @@ goa_oauth2_provider_add_account (GoaProvider *_provider,
 
   ret = NULL;
 
+  priv = goa_oauth2_provider_get_instance_private (provider);
+
   if (!get_tokens_and_identity (provider,
                                 TRUE,
                                 NULL,
@@ -1286,7 +1301,7 @@ goa_oauth2_provider_refresh_account (GoaProvider  *_provider,
                                      GError      **error)
 {
   GoaOAuth2Provider *provider = GOA_OAUTH2_PROVIDER (_provider);
-  GoaOAuth2ProviderPrivate *priv = provider->priv;
+  GoaOAuth2ProviderPrivate *priv;
   GoaAccount *account;
   GtkWidget *dialog;
   const gchar *existing_identity;
@@ -1302,6 +1317,8 @@ goa_oauth2_provider_refresh_account (GoaProvider  *_provider,
 
   ret = FALSE;
 
+  priv = goa_oauth2_provider_get_instance_private (provider);
+
   dialog = gtk_dialog_new_with_buttons (NULL,
                                         parent,
                                         GTK_DIALOG_MODAL
@@ -1713,7 +1730,9 @@ static void
 goa_oauth2_provider_finalize (GObject *object)
 {
   GoaOAuth2Provider *provider = GOA_OAUTH2_PROVIDER (object);
-  GoaOAuth2ProviderPrivate *priv = provider->priv;
+  GoaOAuth2ProviderPrivate *priv;
+
+  priv = goa_oauth2_provider_get_instance_private (provider);
 
   g_clear_pointer (&priv->loop, g_main_loop_unref);
 
@@ -1731,7 +1750,6 @@ goa_oauth2_provider_finalize (GObject *object)
 static void
 goa_oauth2_provider_init (GoaOAuth2Provider *provider)
 {
-  provider->priv = goa_oauth2_provider_get_instance_private (provider);
 }
 
 static void


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