This is more consistent with the rest of Empathy.
EmpathyLocationManager *
-empathy_location_manager_get_default (void)
+empathy_location_manager_dup_default (void)
{
static EmpathyLocationManager *singleton = NULL;
if (singleton == NULL)
- singleton = g_object_new (EMPATHY_TYPE_LOCATION_MANAGER, NULL);
- return singleton;
+ {
+ singleton = g_object_new (EMPATHY_TYPE_LOCATION_MANAGER, NULL);
+ g_object_add_weak_pointer (G_OBJECT (singleton), (gpointer *)&singleton);
+ }
+
+ return g_object_ref (singleton);
}
static void
};
GType empathy_location_manager_get_type (void) G_GNUC_CONST;
-EmpathyLocationManager * empathy_location_manager_get_default (void);
+EmpathyLocationManager * empathy_location_manager_dup_default (void);
G_END_DECLS
/* Location mananger */
#if HAVE_GEOCLUE
- location_manager = empathy_location_manager_get_default ();
+ location_manager = empathy_location_manager_dup_default ();
#endif
gtk_main ();