]> git.0d.be Git - empathy.git/blobdiff - libempathy/empathy-log-manager.c
Fix type punned pointers warnings
[empathy.git] / libempathy / empathy-log-manager.c
index aa70b49dac49fc7129cc708902b85cd0b4449028..2dccbc9fdd6ad578166b159f85dfe3a7a4128944 100644 (file)
@@ -55,7 +55,6 @@ typedef struct {
        gchar *basedir;
 } EmpathyLogManagerPriv;
 
-static void                 log_manager_finalize                   (GObject                *object);
 static const gchar *        log_manager_get_basedir                (EmpathyLogManager      *manager);
 static GList *              log_manager_get_all_files              (EmpathyLogManager      *manager,
                                                                    const gchar            *dir);
@@ -83,15 +82,7 @@ static void                 log_manager_search_hit_free            (EmpathyLogSe
 
 G_DEFINE_TYPE (EmpathyLogManager, empathy_log_manager, G_TYPE_OBJECT);
 
-static void
-empathy_log_manager_class_init (EmpathyLogManagerClass *klass)
-{
-       GObjectClass *object_class = G_OBJECT_CLASS (klass);
-
-       object_class->finalize = log_manager_finalize;
-
-       g_type_class_add_private (object_class, sizeof (EmpathyLogManagerPriv));
-}
+static EmpathyLogManager * manager_singleton = NULL;
 
 static void
 empathy_log_manager_init (EmpathyLogManager *manager)
@@ -112,19 +103,41 @@ log_manager_finalize (GObject *object)
        g_free (priv->basedir);
 }
 
-EmpathyLogManager *
-empathy_log_manager_new (void)
+static GObject *
+log_manager_constructor (GType type,
+                        guint n_props,
+                        GObjectConstructParam *props)
 {
-       static EmpathyLogManager *manager = NULL;
+       GObject *retval;
 
-       if (!manager) {
-               manager = g_object_new (EMPATHY_TYPE_LOG_MANAGER, NULL);
-               g_object_add_weak_pointer (G_OBJECT (manager), (gpointer) &manager);
+       if (manager_singleton) {
+               retval = g_object_ref (manager_singleton);
        } else {
-               g_object_ref (manager);
+               retval = G_OBJECT_CLASS (empathy_log_manager_parent_class)->constructor
+                       (type, n_props, props);
+
+               manager_singleton = EMPATHY_LOG_MANAGER (retval);
+               g_object_add_weak_pointer (retval, (gpointer) &manager_singleton);
        }
 
-       return manager;
+       return retval;
+}
+
+static void
+empathy_log_manager_class_init (EmpathyLogManagerClass *klass)
+{
+       GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+       object_class->finalize = log_manager_finalize;
+       object_class->constructor = log_manager_constructor;
+
+       g_type_class_add_private (object_class, sizeof (EmpathyLogManagerPriv));
+}
+
+EmpathyLogManager *
+empathy_log_manager_dup_singleton (void)
+{
+       return g_object_new (EMPATHY_TYPE_LOG_MANAGER, NULL);
 }
 
 void
@@ -157,7 +170,7 @@ empathy_log_manager_add_message (EmpathyLogManager *manager,
        body_str = empathy_message_get_body (message);
        msg_type = empathy_message_get_tptype (message);
 
-       if (G_STR_EMPTY (body_str)) {
+       if (EMP_STR_EMPTY (body_str)) {
                return;
        }
 
@@ -371,7 +384,7 @@ empathy_log_manager_get_messages_for_file (EmpathyLogManager *manager,
 
                sender = empathy_contact_new_full (account, sender_id, sender_name);
                empathy_contact_set_is_user (sender, is_user);
-               if (!G_STR_EMPTY (sender_avatar_token)) {
+               if (!EMP_STR_EMPTY (sender_avatar_token)) {
                        empathy_contact_load_avatar_cache (sender,
                                                           sender_avatar_token);
                }
@@ -476,7 +489,7 @@ empathy_log_manager_search_new (EmpathyLogManager *manager,
        gchar *text_casefold;
 
        g_return_val_if_fail (EMPATHY_IS_LOG_MANAGER (manager), NULL);
-       g_return_val_if_fail (!G_STR_EMPTY (text), NULL);
+       g_return_val_if_fail (!EMP_STR_EMPTY (text), NULL);
 
        text_casefold = g_utf8_casefold (text, -1);