[evolution-mapi] M!4 - Replace deprecated 'g_type_class_add_private'



commit 3b18e55c2d61118a88d391802960134f63a9e859
Author: Pablo Barciela <scow riseup net>
Date:   Wed Aug 14 18:12:51 2019 +0200

    M!4 - Replace deprecated 'g_type_class_add_private'
    
    Closes https://gitlab.gnome.org/GNOME/evolution-mapi/merge_requests/4

 src/addressbook/e-book-backend-mapi-contacts.c |  8 ++--
 src/addressbook/e-book-backend-mapi-gal.c      |  8 ++--
 src/addressbook/e-book-backend-mapi.c          |  6 +--
 src/calendar/e-cal-backend-mapi.c              |  8 ++--
 src/camel/camel-mapi-folder.c                  |  6 +--
 src/camel/camel-mapi-message-info.c            |  6 +--
 src/camel/camel-mapi-store.c                   | 31 +++++----------
 src/collection/e-mapi-backend.c                | 52 ++++++++++---------------
 src/configuration/e-mail-config-mapi-backend.c | 15 +++----
 src/configuration/e-mail-config-mapi-page.c    | 24 +++---------
 src/libexchangemapi/camel-mapi-settings.c      | 21 ++++------
 src/libexchangemapi/e-mapi-connection.c        | 54 ++++++++------------------
 src/libexchangemapi/e-source-mapi-folder.c     | 22 ++++-------
 13 files changed, 88 insertions(+), 173 deletions(-)
---
diff --git a/src/addressbook/e-book-backend-mapi-contacts.c b/src/addressbook/e-book-backend-mapi-contacts.c
index 8f5a443..bd3e638 100644
--- a/src/addressbook/e-book-backend-mapi-contacts.c
+++ b/src/addressbook/e-book-backend-mapi-contacts.c
@@ -25,17 +25,17 @@
 
 #include "e-book-backend-mapi-contacts.h"
 
-G_DEFINE_TYPE (EBookBackendMAPIContacts, e_book_backend_mapi_contacts, E_TYPE_BOOK_BACKEND_MAPI)
-
 struct _EBookBackendMAPIContactsPrivate
 {
        gint32 unused;
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE (EBookBackendMAPIContacts, e_book_backend_mapi_contacts, E_TYPE_BOOK_BACKEND_MAPI)
+
 static void
 e_book_backend_mapi_contacts_init (EBookBackendMAPIContacts *bbmcontacts)
 {
-       bbmcontacts->priv = G_TYPE_INSTANCE_GET_PRIVATE (bbmcontacts, E_TYPE_BOOK_BACKEND_MAPI_CONTACTS, 
EBookBackendMAPIContactsPrivate);
+       bbmcontacts->priv = e_book_backend_mapi_contacts_get_instance_private (bbmcontacts);
 
        e_book_backend_mapi_set_is_gal (E_BOOK_BACKEND_MAPI (bbmcontacts), FALSE);
 }
@@ -45,8 +45,6 @@ e_book_backend_mapi_contacts_class_init (EBookBackendMAPIContactsClass *klass)
 {
        EBookMetaBackendClass *meta_backend_class;
 
-       g_type_class_add_private (klass, sizeof (EBookBackendMAPIContactsPrivate));
-
        meta_backend_class = E_BOOK_META_BACKEND_CLASS (klass);
        meta_backend_class->backend_factory_type_name = "EBookBackendMapiContactsFactory";
 }
diff --git a/src/addressbook/e-book-backend-mapi-gal.c b/src/addressbook/e-book-backend-mapi-gal.c
index 5204cf2..148f742 100644
--- a/src/addressbook/e-book-backend-mapi-gal.c
+++ b/src/addressbook/e-book-backend-mapi-gal.c
@@ -25,17 +25,17 @@
 
 #include "e-book-backend-mapi-gal.h"
 
-G_DEFINE_TYPE (EBookBackendMAPIGAL, e_book_backend_mapi_gal, E_TYPE_BOOK_BACKEND_MAPI)
-
 struct _EBookBackendMAPIGALPrivate
 {
        gint32 unused;
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE (EBookBackendMAPIGAL, e_book_backend_mapi_gal, E_TYPE_BOOK_BACKEND_MAPI)
+
 static void
 e_book_backend_mapi_gal_init (EBookBackendMAPIGAL *bbmgal)
 {
-       bbmgal->priv = G_TYPE_INSTANCE_GET_PRIVATE (bbmgal, E_TYPE_BOOK_BACKEND_MAPI_GAL, 
EBookBackendMAPIGALPrivate);
+       bbmgal->priv = e_book_backend_mapi_gal_get_instance_private (bbmgal);
 
        e_book_backend_mapi_set_is_gal (E_BOOK_BACKEND_MAPI (bbmgal), TRUE);
 }
@@ -45,8 +45,6 @@ e_book_backend_mapi_gal_class_init (EBookBackendMAPIGALClass *klass)
 {
        EBookMetaBackendClass *meta_backend_class;
 
-       g_type_class_add_private (klass, sizeof (EBookBackendMAPIGALPrivate));
-
        meta_backend_class = E_BOOK_META_BACKEND_CLASS (klass);
        meta_backend_class->backend_factory_type_name = "EBookBackendMapiGalFactory";
 }
diff --git a/src/addressbook/e-book-backend-mapi.c b/src/addressbook/e-book-backend-mapi.c
index 3cdb342..c924ca2 100644
--- a/src/addressbook/e-book-backend-mapi.c
+++ b/src/addressbook/e-book-backend-mapi.c
@@ -50,7 +50,7 @@ struct _EBookBackendMAPIPrivate
        gboolean is_gal;
 };
 
-G_DEFINE_TYPE (EBookBackendMAPI, e_book_backend_mapi, E_TYPE_BOOK_META_BACKEND)
+G_DEFINE_TYPE_WITH_PRIVATE (EBookBackendMAPI, e_book_backend_mapi, E_TYPE_BOOK_META_BACKEND)
 
 static void
 ebb_mapi_error_to_client_error (GError **perror,
@@ -1138,8 +1138,6 @@ e_book_backend_mapi_class_init (EBookBackendMAPIClass *klass)
        EBookBackendClass *book_backend_class;
        EBookMetaBackendClass *meta_backend_class;
 
-       g_type_class_add_private (klass, sizeof (EBookBackendMAPIPrivate));
-
        meta_backend_class = E_BOOK_META_BACKEND_CLASS (klass);
        meta_backend_class->backend_module_filename = "libebookbackendmapi.so";
        meta_backend_class->connect_sync = ebb_mapi_connect_sync;
@@ -1167,7 +1165,7 @@ e_book_backend_mapi_class_init (EBookBackendMAPIClass *klass)
 static void
 e_book_backend_mapi_init (EBookBackendMAPI *bbmapi)
 {
-       bbmapi->priv = G_TYPE_INSTANCE_GET_PRIVATE (bbmapi, E_TYPE_BOOK_BACKEND_MAPI, 
EBookBackendMAPIPrivate);
+       bbmapi->priv = e_book_backend_mapi_get_instance_private (bbmapi);
 
        g_rec_mutex_init (&bbmapi->priv->conn_lock);
 }
diff --git a/src/calendar/e-cal-backend-mapi.c b/src/calendar/e-cal-backend-mapi.c
index 3d4f680..e42240a 100644
--- a/src/calendar/e-cal-backend-mapi.c
+++ b/src/calendar/e-cal-backend-mapi.c
@@ -56,13 +56,13 @@
 #define EMA_DATA_VERSION       1
 #define EMA_DATA_VERSION_KEY   "ema-data-version"
 
-G_DEFINE_TYPE (ECalBackendMAPI, e_cal_backend_mapi, E_TYPE_CAL_META_BACKEND)
-
 struct _ECalBackendMAPIPrivate {
        GRecMutex conn_lock;
        EMapiConnection *conn;
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE (ECalBackendMAPI, e_cal_backend_mapi, E_TYPE_CAL_META_BACKEND)
+
 static gchar * ecb_mapi_dup_component_revision_cb      (ECalCache *cal_cache,
                                                         ICalComponent *icomp);
 
@@ -1941,8 +1941,6 @@ e_cal_backend_mapi_class_init (ECalBackendMAPIClass *klass)
        ECalBackendSyncClass *sync_backend_class;
        ECalMetaBackendClass *meta_backend_class;
 
-       g_type_class_add_private (klass, sizeof (ECalBackendMAPIPrivate));
-
        meta_backend_class = E_CAL_META_BACKEND_CLASS (klass);
        meta_backend_class->connect_sync = ecb_mapi_connect_sync;
        meta_backend_class->disconnect_sync = ecb_mapi_disconnect_sync;
@@ -1971,7 +1969,7 @@ e_cal_backend_mapi_class_init (ECalBackendMAPIClass *klass)
 static void
 e_cal_backend_mapi_init (ECalBackendMAPI *cbmapi)
 {
-       cbmapi->priv = G_TYPE_INSTANCE_GET_PRIVATE (cbmapi, E_TYPE_CAL_BACKEND_MAPI, ECalBackendMAPIPrivate);
+       cbmapi->priv = e_cal_backend_mapi_get_instance_private (cbmapi);
 
        g_rec_mutex_init (&cbmapi->priv->conn_lock);
 }
diff --git a/src/camel/camel-mapi-folder.c b/src/camel/camel-mapi-folder.c
index ed50eaa..3d24444 100644
--- a/src/camel/camel-mapi-folder.c
+++ b/src/camel/camel-mapi-folder.c
@@ -102,7 +102,7 @@ static gboolean             mapi_folder_synchronize_sync
                                                 GCancellable *cancellable,
                                                 GError **error);
 
-G_DEFINE_TYPE (CamelMapiFolder, camel_mapi_folder, CAMEL_TYPE_OFFLINE_FOLDER)
+G_DEFINE_TYPE_WITH_PRIVATE (CamelMapiFolder, camel_mapi_folder, CAMEL_TYPE_OFFLINE_FOLDER)
 
 static GPtrArray *
 mapi_folder_search_by_expression (CamelFolder *folder,
@@ -1958,8 +1958,6 @@ camel_mapi_folder_class_init (CamelMapiFolderClass *class)
        GObjectClass *object_class;
        CamelFolderClass *folder_class;
 
-       g_type_class_add_private (class, sizeof (CamelMapiFolderPrivate));
-
        object_class = G_OBJECT_CLASS (class);
        object_class->dispose = mapi_folder_dispose;
        object_class->finalize = mapi_folder_finalize;
@@ -1987,7 +1985,7 @@ camel_mapi_folder_init (CamelMapiFolder *mapi_folder)
 {
        CamelFolder *folder = CAMEL_FOLDER (mapi_folder);
 
-       mapi_folder->priv = G_TYPE_INSTANCE_GET_PRIVATE (mapi_folder, CAMEL_TYPE_MAPI_FOLDER, 
CamelMapiFolderPrivate);
+       mapi_folder->priv = camel_mapi_folder_get_instance_private (mapi_folder);
 
        camel_folder_set_flags (folder, CAMEL_FOLDER_HAS_SUMMARY_CAPABILITY);
 
diff --git a/src/camel/camel-mapi-message-info.c b/src/camel/camel-mapi-message-info.c
index acf0a3e..9b0cda1 100644
--- a/src/camel/camel-mapi-message-info.c
+++ b/src/camel/camel-mapi-message-info.c
@@ -37,7 +37,7 @@ enum {
        PROP_LAST_MODIFIED
 };
 
-G_DEFINE_TYPE (CamelMapiMessageInfo, camel_mapi_message_info, CAMEL_TYPE_MESSAGE_INFO_BASE)
+G_DEFINE_TYPE_WITH_PRIVATE (CamelMapiMessageInfo, camel_mapi_message_info, CAMEL_TYPE_MESSAGE_INFO_BASE)
 
 static CamelMessageInfo *
 mapi_message_info_clone (const CamelMessageInfo *mi,
@@ -163,8 +163,6 @@ camel_mapi_message_info_class_init (CamelMapiMessageInfoClass *class)
        CamelMessageInfoClass *mi_class;
        GObjectClass *object_class;
 
-       g_type_class_add_private (class, sizeof (CamelMapiMessageInfoPrivate));
-
        mi_class = CAMEL_MESSAGE_INFO_CLASS (class);
        mi_class->clone = mapi_message_info_clone;
        mi_class->load = mapi_message_info_load;
@@ -212,7 +210,7 @@ camel_mapi_message_info_class_init (CamelMapiMessageInfoClass *class)
 static void
 camel_mapi_message_info_init (CamelMapiMessageInfo *mmi)
 {
-       mmi->priv = G_TYPE_INSTANCE_GET_PRIVATE (mmi, CAMEL_TYPE_MAPI_MESSAGE_INFO, 
CamelMapiMessageInfoPrivate);
+       mmi->priv = camel_mapi_message_info_get_instance_private (mmi);
 }
 
 guint32
diff --git a/src/camel/camel-mapi-store.c b/src/camel/camel-mapi-store.c
index 77aa6f9..38f8cc8 100644
--- a/src/camel/camel-mapi-store.c
+++ b/src/camel/camel-mapi-store.c
@@ -76,6 +76,7 @@ G_DEFINE_TYPE_WITH_CODE (
        CamelMapiStore,
        camel_mapi_store,
        CAMEL_TYPE_OFFLINE_STORE,
+       G_ADD_PRIVATE (CamelMapiStore)
        G_IMPLEMENT_INTERFACE (
                CAMEL_TYPE_SUBSCRIBABLE,
                camel_subscribable_init))
@@ -1043,26 +1044,16 @@ mapi_store_dispose (GObject *object)
 static void
 mapi_store_finalize (GObject *object)
 {
-       CamelMapiStorePrivate *priv;
-
-       priv = CAMEL_MAPI_STORE (object)->priv;
-
-       if (priv->id_hash != NULL)
-               g_hash_table_destroy (priv->id_hash);
+       CamelMapiStore *mapi_store = CAMEL_MAPI_STORE (object);
 
-       if (priv->name_hash != NULL)
-               g_hash_table_destroy (priv->name_hash);
+       g_clear_pointer (&mapi_store->priv->id_hash, g_hash_table_destroy);
+       g_clear_pointer (&mapi_store->priv->name_hash, g_hash_table_destroy);
+       g_clear_pointer (&mapi_store->priv->parent_hash, g_hash_table_destroy);
+       g_clear_pointer (&mapi_store->priv->default_folders, g_hash_table_destroy);
+       g_clear_pointer (&mapi_store->priv->container_hash, g_hash_table_destroy);
 
-       if (priv->parent_hash != NULL)
-               g_hash_table_destroy (priv->parent_hash);
-
-       if (priv->default_folders != NULL)
-               g_hash_table_destroy (priv->default_folders);
-       if (priv->container_hash != NULL)
-               g_hash_table_destroy (priv->container_hash);
-
-       g_rec_mutex_clear (&priv->connection_lock);
-       g_rec_mutex_clear (&priv->updates_lock);
+       g_rec_mutex_clear (&mapi_store->priv->connection_lock);
+       g_rec_mutex_clear (&mapi_store->priv->updates_lock);
 
        /* Chain up to parent's finalize() method. */
        G_OBJECT_CLASS (camel_mapi_store_parent_class)->finalize (object);
@@ -2105,8 +2096,6 @@ camel_mapi_store_class_init (CamelMapiStoreClass *class)
        /* register MAPIKRB auth type */
        CAMEL_TYPE_MAPI_SASL_KRB;
 
-       g_type_class_add_private (class, sizeof (CamelMapiStorePrivate));
-
        object_class = G_OBJECT_CLASS (class);
        object_class->dispose = mapi_store_dispose;
        object_class->finalize = mapi_store_finalize;
@@ -2147,7 +2136,7 @@ camel_subscribable_init (CamelSubscribableInterface *iface)
 static void
 camel_mapi_store_init (CamelMapiStore *mapi_store)
 {
-       mapi_store->priv = G_TYPE_INSTANCE_GET_PRIVATE (mapi_store, CAMEL_TYPE_MAPI_STORE, 
CamelMapiStorePrivate);
+       mapi_store->priv = camel_mapi_store_get_instance_private (mapi_store);
 
        g_rec_mutex_init (&mapi_store->priv->connection_lock);
        g_rec_mutex_init (&mapi_store->priv->updates_lock);
diff --git a/src/collection/e-mapi-backend.c b/src/collection/e-mapi-backend.c
index d4a357d..ca29988 100644
--- a/src/collection/e-mapi-backend.c
+++ b/src/collection/e-mapi-backend.c
@@ -28,10 +28,6 @@
 
 #include "e-mapi-backend.h"
 
-#define E_MAPI_BACKEND_GET_PRIVATE(obj) \
-       (G_TYPE_INSTANCE_GET_PRIVATE \
-       ((obj), E_TYPE_MAPI_BACKEND, EMapiBackendPrivate))
-
 struct _EMapiBackendPrivate {
        /* Folder ID -> ESource */
        GHashTable *folders;
@@ -43,7 +39,7 @@ struct _EMapiBackendPrivate {
        ENamedParameters *credentials;
 };
 
-G_DEFINE_DYNAMIC_TYPE (EMapiBackend, e_mapi_backend, E_TYPE_COLLECTION_BACKEND)
+G_DEFINE_DYNAMIC_TYPE_EXTENDED (EMapiBackend, e_mapi_backend, E_TYPE_COLLECTION_BACKEND, 0, 
G_ADD_PRIVATE_DYNAMIC (EMapiBackend))
 
 typedef gboolean (* EMapiBackendAuthenticatorFunc) (EBackend *backend,
                                                    CamelMapiSettings *settings,
@@ -471,15 +467,13 @@ mapi_backend_constructed (GObject *object)
 static void
 mapi_backend_dispose (GObject *object)
 {
-       EMapiBackendPrivate *priv;
-
-       priv = E_MAPI_BACKEND_GET_PRIVATE (object);
+       EMapiBackend *mapi_backend = E_MAPI_BACKEND (object);
 
-       g_hash_table_remove_all (priv->folders);
+       g_hash_table_remove_all (mapi_backend->priv->folders);
 
-       if (priv->source_changed_handler_id) {
-               g_signal_handler_disconnect (e_backend_get_source (E_BACKEND (object)), 
priv->source_changed_handler_id);
-               priv->source_changed_handler_id = 0;
+       if (mapi_backend->priv->source_changed_handler_id) {
+               g_signal_handler_disconnect (e_backend_get_source (E_BACKEND (object)), 
mapi_backend->priv->source_changed_handler_id);
+               mapi_backend->priv->source_changed_handler_id = 0;
        }
 
        /* Chain up to parent's dispose() method. */
@@ -489,14 +483,12 @@ mapi_backend_dispose (GObject *object)
 static void
 mapi_backend_finalize (GObject *object)
 {
-       EMapiBackendPrivate *priv;
-
-       priv = E_MAPI_BACKEND_GET_PRIVATE (object);
+       EMapiBackend *mapi_backend = E_MAPI_BACKEND (object);
 
-       g_hash_table_destroy (priv->folders);
+       g_hash_table_destroy (mapi_backend->priv->folders);
 
-       g_mutex_clear (&priv->credentials_lock);
-       e_named_parameters_free (priv->credentials);
+       g_mutex_clear (&mapi_backend->priv->credentials_lock);
+       e_named_parameters_free (mapi_backend->priv->credentials);
 
        /* Chain up to parent's finalize() method. */
        G_OBJECT_CLASS (e_mapi_backend_parent_class)->finalize (object);
@@ -554,13 +546,10 @@ static void
 mapi_backend_child_added (ECollectionBackend *backend,
                           ESource *child_source)
 {
-       EMapiBackendPrivate *priv;
        ESource *collection_source;
        const gchar *extension_name;
        gboolean is_mail = FALSE;
 
-       priv = E_MAPI_BACKEND_GET_PRIVATE (backend);
-
        collection_source = e_backend_get_source (E_BACKEND (backend));
 
        extension_name = E_SOURCE_EXTENSION_MAIL_ACCOUNT;
@@ -601,10 +590,13 @@ mapi_backend_child_added (ECollectionBackend *backend,
                extension = e_source_get_extension (
                        child_source, extension_name);
                folder_id = e_mapi_util_mapi_id_to_string (e_source_mapi_folder_get_id (extension));
-               if (folder_id != NULL)
+               if (folder_id != NULL) {
+                       EMapiBackend *mapi_backend = E_MAPI_BACKEND (backend);
+
                        g_hash_table_insert (
-                               priv->folders, folder_id,
+                               mapi_backend->priv->folders, folder_id,
                                g_object_ref (child_source));
+               }
        }
 
        /* Chain up to parent's child_added() method. */
@@ -616,11 +608,8 @@ static void
 mapi_backend_child_removed (ECollectionBackend *backend,
                             ESource *child_source)
 {
-       EMapiBackendPrivate *priv;
        const gchar *extension_name;
 
-       priv = E_MAPI_BACKEND_GET_PRIVATE (backend);
-
        /* We track MAPI folders in a hash table by folder ID. */
        extension_name = E_SOURCE_EXTENSION_MAPI_FOLDER;
        if (e_source_has_extension (child_source, extension_name)) {
@@ -629,8 +618,11 @@ mapi_backend_child_removed (ECollectionBackend *backend,
 
                extension = e_source_get_extension (child_source, extension_name);
                folder_id = e_mapi_util_mapi_id_to_string (e_source_mapi_folder_get_id (extension));
-               if (folder_id != NULL)
-                       g_hash_table_remove (priv->folders, folder_id);
+               if (folder_id != NULL) {
+                       EMapiBackend *mapi_backend = E_MAPI_BACKEND (backend);
+
+                       g_hash_table_remove (mapi_backend->priv->folders, folder_id);
+               }
                g_free (folder_id);
        }
 
@@ -960,8 +952,6 @@ e_mapi_backend_class_init (EMapiBackendClass *class)
        EBackendClass *backend_class;
        ECollectionBackendClass *collection_backend_class;
 
-       g_type_class_add_private (class, sizeof (EMapiBackendPrivate));
-
        object_class = G_OBJECT_CLASS (class);
        object_class->constructed = mapi_backend_constructed;
        object_class->dispose = mapi_backend_dispose;
@@ -990,7 +980,7 @@ e_mapi_backend_class_finalize (EMapiBackendClass *class)
 static void
 e_mapi_backend_init (EMapiBackend *backend)
 {
-       backend->priv = E_MAPI_BACKEND_GET_PRIVATE (backend);
+       backend->priv = e_mapi_backend_get_instance_private (backend);
 
        backend->priv->folders = g_hash_table_new_full (
                g_str_hash,
diff --git a/src/configuration/e-mail-config-mapi-backend.c b/src/configuration/e-mail-config-mapi-backend.c
index a2740a2..4a02893 100644
--- a/src/configuration/e-mail-config-mapi-backend.c
+++ b/src/configuration/e-mail-config-mapi-backend.c
@@ -36,18 +36,16 @@
 
 #include "e-mail-config-mapi-backend.h"
 
-#define E_MAIL_CONFIG_MAPI_BACKEND_GET_PRIVATE(obj) \
-       (G_TYPE_INSTANCE_GET_PRIVATE \
-       ((obj), E_TYPE_MAIL_CONFIG_MAPI_BACKEND, EMailConfigMapiBackendPrivate))
-
 struct _EMailConfigMapiBackendPrivate {
        gint unused;
 };
 
-G_DEFINE_DYNAMIC_TYPE (
+G_DEFINE_DYNAMIC_TYPE_EXTENDED (
        EMailConfigMapiBackend,
        e_mail_config_mapi_backend,
-       E_TYPE_MAIL_CONFIG_SERVICE_BACKEND)
+       E_TYPE_MAIL_CONFIG_SERVICE_BACKEND,
+       0,
+       G_ADD_PRIVATE_DYNAMIC (EMailConfigMapiBackend))
 
 enum {
        COL_MAPI_FULL_NAME = 0,
@@ -916,9 +914,6 @@ e_mail_config_mapi_backend_class_init (EMailConfigMapiBackendClass *class)
 {
        EMailConfigServiceBackendClass *backend_class;
 
-       g_type_class_add_private (
-               class, sizeof (EMailConfigMapiBackendPrivate));
-
        backend_class = E_MAIL_CONFIG_SERVICE_BACKEND_CLASS (class);
        backend_class->backend_name = "mapi";
        backend_class->new_collection = mail_config_mapi_backend_new_collection;
@@ -935,7 +930,7 @@ e_mail_config_mapi_backend_class_finalize (EMailConfigMapiBackendClass *class)
 static void
 e_mail_config_mapi_backend_init (EMailConfigMapiBackend *backend)
 {
-       backend->priv = E_MAIL_CONFIG_MAPI_BACKEND_GET_PRIVATE (backend);
+       backend->priv = e_mail_config_mapi_backend_get_instance_private (backend);
 }
 
 void
diff --git a/src/configuration/e-mail-config-mapi-page.c b/src/configuration/e-mail-config-mapi-page.c
index 877e29c..d7b9ec7 100644
--- a/src/configuration/e-mail-config-mapi-page.c
+++ b/src/configuration/e-mail-config-mapi-page.c
@@ -28,10 +28,6 @@
 
 #include "e-mail-config-mapi-page.h"
 
-#define E_MAIL_CONFIG_MAPI_PAGE_GET_PRIVATE(obj) \
-       (G_TYPE_INSTANCE_GET_PRIVATE \
-       ((obj), E_TYPE_MAIL_CONFIG_MAPI_PAGE, EMailConfigMapiPagePrivate))
-
 #define E_MAIL_CONFIG_MAPI_PAGE_SORT_ORDER \
        (E_MAIL_CONFIG_SECURITY_PAGE_SORT_ORDER + 10)
 
@@ -49,6 +45,7 @@ enum {
 static void e_mail_config_mapi_page_interface_init (EMailConfigPageInterface *iface);
 
 G_DEFINE_DYNAMIC_TYPE_EXTENDED (EMailConfigMapiPage, e_mail_config_mapi_page, GTK_TYPE_SCROLLED_WINDOW, 0,
+       G_ADD_PRIVATE_DYNAMIC (EMailConfigMapiPage)
        G_IMPLEMENT_INTERFACE_DYNAMIC (E_TYPE_MAIL_CONFIG_PAGE, e_mail_config_mapi_page_interface_init))
 
 static void
@@ -149,19 +146,10 @@ mail_config_mapi_page_get_property (GObject *object,
 static void
 mail_config_mapi_page_dispose (GObject *object)
 {
-       EMailConfigMapiPagePrivate *priv;
-
-       priv = E_MAIL_CONFIG_MAPI_PAGE_GET_PRIVATE (object);
-
-       if (priv->account_source != NULL) {
-               g_object_unref (priv->account_source);
-               priv->account_source = NULL;
-       }
+       EMailConfigMapiPage *mapi_page = E_MAIL_CONFIG_MAPI_PAGE (object);
 
-       if (priv->registry != NULL) {
-               g_object_unref (priv->registry);
-               priv->registry = NULL;
-       }
+       g_clear_object (&mapi_page->priv->account_source);
+       g_clear_object (&mapi_page->priv->registry);
 
        /* Chain up to parent's dispose() method. */
        G_OBJECT_CLASS (e_mail_config_mapi_page_parent_class)->dispose (object);
@@ -210,8 +198,6 @@ e_mail_config_mapi_page_class_init (EMailConfigMapiPageClass *class)
 {
        GObjectClass *object_class;
 
-       g_type_class_add_private (class, sizeof (EMailConfigMapiPagePrivate));
-
        object_class = G_OBJECT_CLASS (class);
        object_class->set_property = mail_config_mapi_page_set_property;
        object_class->get_property = mail_config_mapi_page_get_property;
@@ -256,7 +242,7 @@ e_mail_config_mapi_page_interface_init (EMailConfigPageInterface *iface)
 static void
 e_mail_config_mapi_page_init (EMailConfigMapiPage *page)
 {
-       page->priv = E_MAIL_CONFIG_MAPI_PAGE_GET_PRIVATE (page);
+       page->priv = e_mail_config_mapi_page_get_instance_private (page);
 }
 
 void
diff --git a/src/libexchangemapi/camel-mapi-settings.c b/src/libexchangemapi/camel-mapi-settings.c
index 09eae37..07aad69 100644
--- a/src/libexchangemapi/camel-mapi-settings.c
+++ b/src/libexchangemapi/camel-mapi-settings.c
@@ -18,10 +18,6 @@
 
 #include "camel-mapi-settings.h"
 
-#define CAMEL_MAPI_SETTINGS_GET_PRIVATE(obj) \
-       (G_TYPE_INSTANCE_GET_PRIVATE \
-       ((obj), CAMEL_TYPE_MAPI_SETTINGS, CamelMapiSettingsPrivate))
-
 struct _CamelMapiSettingsPrivate {
        GMutex property_lock;
 
@@ -57,6 +53,7 @@ G_DEFINE_TYPE_WITH_CODE (
        CamelMapiSettings,
        camel_mapi_settings,
        CAMEL_TYPE_OFFLINE_SETTINGS,
+       G_ADD_PRIVATE (CamelMapiSettings)
        G_IMPLEMENT_INTERFACE (
                CAMEL_TYPE_NETWORK_SETTINGS, NULL))
 
@@ -255,15 +252,13 @@ mapi_settings_get_property (GObject *object,
 static void
 mapi_settings_finalize (GObject *object)
 {
-       CamelMapiSettingsPrivate *priv;
-
-       priv = CAMEL_MAPI_SETTINGS_GET_PRIVATE (object);
+       CamelMapiSettings *mapi_settings = CAMEL_MAPI_SETTINGS (object);
 
-       g_mutex_clear (&priv->property_lock);
+       g_mutex_clear (&mapi_settings->priv->property_lock);
 
-       g_free (priv->domain);
-       g_free (priv->profile);
-       g_free (priv->realm);
+       g_free (mapi_settings->priv->domain);
+       g_free (mapi_settings->priv->profile);
+       g_free (mapi_settings->priv->realm);
 
        /* Chain up to parent's finalize() method. */
        G_OBJECT_CLASS (camel_mapi_settings_parent_class)->finalize (object);
@@ -274,8 +269,6 @@ camel_mapi_settings_class_init (CamelMapiSettingsClass *class)
 {
        GObjectClass *object_class;
 
-       g_type_class_add_private (class, sizeof (CamelMapiSettingsPrivate));
-
        object_class = G_OBJECT_CLASS (class);
        object_class->set_property = mapi_settings_set_property;
        object_class->get_property = mapi_settings_get_property;
@@ -411,7 +404,7 @@ camel_mapi_settings_class_init (CamelMapiSettingsClass *class)
 static void
 camel_mapi_settings_init (CamelMapiSettings *settings)
 {
-       settings->priv = CAMEL_MAPI_SETTINGS_GET_PRIVATE (settings);
+       settings->priv = camel_mapi_settings_get_instance_private (settings);
        g_mutex_init (&settings->priv->property_lock);
 }
 
diff --git a/src/libexchangemapi/e-mapi-connection.c b/src/libexchangemapi/e-mapi-connection.c
index d9ddd82..61e8c6a 100644
--- a/src/libexchangemapi/e-mapi-connection.c
+++ b/src/libexchangemapi/e-mapi-connection.c
@@ -51,8 +51,6 @@ static struct mapi_session *mapi_profile_load (ESourceRegistry *registry, struct
 
 /* GObject foo - begin */
 
-G_DEFINE_TYPE (EMapiConnection, e_mapi_connection, G_TYPE_OBJECT)
-
 /* These three macros require 'priv' variable of type EMapiConnectionPrivate */
 #define LOCK(_cclb,_err,_ret) G_STMT_START {                                           \
        e_mapi_debug_print ("%s: %s: lock(session & global)", G_STRLOC, G_STRFUNC);     \
@@ -214,6 +212,8 @@ struct _EMapiConnectionPrivate {
        gint notification_poll_seconds; /* delay between polls, in seconds */
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE (EMapiConnection, e_mapi_connection, G_TYPE_OBJECT)
+
 enum {
        SERVER_NOTIFICATION,
        LAST_SIGNAL
@@ -390,18 +390,15 @@ ensure_foreign_store (EMapiConnectionPrivate *priv,
 static void
 e_mapi_connection_dispose (GObject *object)
 {
-       EMapiConnectionPrivate *priv;
-
-       unregister_connection (E_MAPI_CONNECTION (object));
+       EMapiConnection *conn = E_MAPI_CONNECTION (object);
 
-       priv = E_MAPI_CONNECTION (object)->priv;
+       unregister_connection (conn);
 
-       if (priv) {
-               stop_all_notifications (priv);
+       if (conn->priv) {
+               stop_all_notifications (conn->priv);
        }
 
-       if (G_OBJECT_CLASS (e_mapi_connection_parent_class)->dispose)
-               G_OBJECT_CLASS (e_mapi_connection_parent_class)->dispose (object);
+       G_OBJECT_CLASS (e_mapi_connection_parent_class)->dispose (object);
 }
 
 static void
@@ -415,30 +412,16 @@ e_mapi_connection_finalize (GObject *object)
 
        if (priv) {
                LOCK_VOID (NULL, NULL);
-               disconnect (priv, TRUE && e_mapi_connection_connected (conn));
-               g_free (priv->profile);
-               priv->profile = NULL;
 
-               if (priv->named_ids)
-                       g_hash_table_destroy (priv->named_ids);
-               priv->named_ids = NULL;
-
-               if (priv->foreign_stores)
-                       g_hash_table_destroy (priv->foreign_stores);
-               priv->foreign_stores = NULL;
-
-               e_mapi_utils_destroy_mapi_context (priv->mapi_ctx);
-               priv->mapi_ctx = NULL;
-
-               g_hash_table_destroy (priv->known_notifications);
-               priv->known_notifications = NULL;
-
-               e_flag_free (priv->notification_flag);
-               priv->notification_flag = NULL;
+               disconnect (priv, TRUE && e_mapi_connection_connected (conn));
 
-               if (priv->registry)
-                       g_object_unref (priv->registry);
-               priv->registry = NULL;
+               g_clear_pointer (&priv->profile, g_free);
+               g_clear_pointer (&priv->named_ids, g_hash_table_destroy);
+               g_clear_pointer (&priv->foreign_stores, g_hash_table_destroy);
+               g_clear_pointer (&priv->mapi_ctx, e_mapi_utils_destroy_mapi_context);
+               g_clear_pointer (&priv->known_notifications, g_hash_table_destroy);
+               g_clear_pointer (&priv->notification_flag, e_flag_free);
+               g_clear_object (&priv->registry);
 
                UNLOCK ();
 
@@ -446,8 +429,7 @@ e_mapi_connection_finalize (GObject *object)
                g_rec_mutex_clear (&priv->folders_lock);
        }
 
-       if (G_OBJECT_CLASS (e_mapi_connection_parent_class)->finalize)
-               G_OBJECT_CLASS (e_mapi_connection_parent_class)->finalize (object);
+       G_OBJECT_CLASS (e_mapi_connection_parent_class)->finalize (object);
 }
 
 static void
@@ -455,8 +437,6 @@ e_mapi_connection_class_init (EMapiConnectionClass *klass)
 {
        GObjectClass *object_class;
 
-       g_type_class_add_private (klass, sizeof (EMapiConnectionPrivate));
-
        object_class = G_OBJECT_CLASS (klass);
        object_class->dispose = e_mapi_connection_dispose;
        object_class->finalize = e_mapi_connection_finalize;
@@ -474,7 +454,7 @@ e_mapi_connection_class_init (EMapiConnectionClass *klass)
 static void
 e_mapi_connection_init (EMapiConnection *conn)
 {
-       conn->priv = G_TYPE_INSTANCE_GET_PRIVATE (conn, E_MAPI_TYPE_CONNECTION, EMapiConnectionPrivate);
+       conn->priv = e_mapi_connection_get_instance_private (conn);
        g_return_if_fail (conn->priv != NULL);
 
        e_mapi_cancellable_rec_mutex_init (&conn->priv->session_lock);
diff --git a/src/libexchangemapi/e-source-mapi-folder.c b/src/libexchangemapi/e-source-mapi-folder.c
index 704016d..48eea1f 100644
--- a/src/libexchangemapi/e-source-mapi-folder.c
+++ b/src/libexchangemapi/e-source-mapi-folder.c
@@ -18,10 +18,6 @@
 
 #include "e-source-mapi-folder.h"
 
-#define E_SOURCE_MAPI_FOLDER_GET_PRIVATE(obj) \
-       (G_TYPE_INSTANCE_GET_PRIVATE \
-       ((obj), E_TYPE_SOURCE_MAPI_FOLDER, ESourceMapiFolderPrivate))
-
 struct _ESourceMapiFolderPrivate {
        guint64 fid;
        guint64 parent_fid;
@@ -43,10 +39,12 @@ enum {
        PROP_PARTIAL_COUNT
 };
 
-G_DEFINE_DYNAMIC_TYPE (
+G_DEFINE_DYNAMIC_TYPE_EXTENDED (
        ESourceMapiFolder,
        e_source_mapi_folder,
-       E_TYPE_SOURCE_EXTENSION)
+       E_TYPE_SOURCE_EXTENSION,
+       0,
+       G_ADD_PRIVATE_DYNAMIC (ESourceMapiFolder))
 
 static void
 source_mapi_folder_set_property (GObject *object,
@@ -164,11 +162,9 @@ source_mapi_folder_get_property (GObject *object,
 static void
 source_mapi_folder_finalize (GObject *object)
 {
-       ESourceMapiFolderPrivate *priv;
-
-       priv = E_SOURCE_MAPI_FOLDER_GET_PRIVATE (object);
+       ESourceMapiFolder *extension = E_SOURCE_MAPI_FOLDER (object);
 
-       g_free (priv->foreign_username);
+       g_free (extension->priv->foreign_username);
 
        /* Chain up to parent's finalize() method. */
        G_OBJECT_CLASS (e_source_mapi_folder_parent_class)->finalize (object);
@@ -180,8 +176,6 @@ e_source_mapi_folder_class_init (ESourceMapiFolderClass *class)
        GObjectClass *object_class;
        ESourceExtensionClass *extension_class;
 
-       g_type_class_add_private (class, sizeof (ESourceMapiFolderPrivate));
-
        object_class = G_OBJECT_CLASS (class);
        object_class->set_property = source_mapi_folder_set_property;
        object_class->get_property = source_mapi_folder_get_property;
@@ -283,7 +277,7 @@ e_source_mapi_folder_class_finalize (ESourceMapiFolderClass *class)
 static void
 e_source_mapi_folder_init (ESourceMapiFolder *extension)
 {
-       extension->priv = E_SOURCE_MAPI_FOLDER_GET_PRIVATE (extension);
+       extension->priv = e_source_mapi_folder_get_instance_private (extension);
 
        extension->priv->fid = 0;
        extension->priv->parent_fid = 0;
@@ -297,7 +291,7 @@ e_source_mapi_folder_init (ESourceMapiFolder *extension)
 void
 e_source_mapi_folder_type_register (GTypeModule *type_module)
 {
-       /* XXX G_DEFINE_DYNAMIC_TYPE declares a static type registration
+       /* XXX G_DEFINE_DYNAMIC_TYPE_EXTENDED declares a static type registration
         *     function, so we have to wrap it with a public function in
         *     order to register types from a separate compilation unit. */
        e_source_mapi_folder_register_type (type_module);


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