summaryrefslogtreecommitdiff
path: root/src/nautilus-tag-manager.c
diff options
context:
space:
mode:
authorAntónio Fernandes <antoniof@gnome.org>2022-05-30 10:11:52 +0100
committerAntónio Fernandes <antoniof@gnome.org>2022-05-30 10:12:10 +0100
commitbccc6f20d0b615ccae32fdd2cb27d5fd4af8b837 (patch)
tree8769ef9c77dcb0e3d36f5a6652628245ecb8b8e4 /src/nautilus-tag-manager.c
parentdf78c517516cec20892f2a108df47613153ddf5b (diff)
downloadnautilus-bccc6f20d0b615ccae32fdd2cb27d5fd4af8b837.tar.gz
tag-manager: Stop getting full references
It's really annoying having to setup a local autocleanup variable in every function we want to use the NautilusTagManager API. Use a NautilusUndoManager-like API instead, with new() returning a reference and get() not.
Diffstat (limited to 'src/nautilus-tag-manager.c')
-rw-r--r--src/nautilus-tag-manager.c25
1 files changed, 15 insertions, 10 deletions
diff --git a/src/nautilus-tag-manager.c b/src/nautilus-tag-manager.c
index ec4205bba..22aed9011 100644
--- a/src/nautilus-tag-manager.c
+++ b/src/nautilus-tag-manager.c
@@ -49,6 +49,8 @@ struct _NautilusTagManager
G_DEFINE_TYPE (NautilusTagManager, nautilus_tag_manager, G_TYPE_OBJECT);
+static NautilusTagManager *tag_manager = NULL;
+
typedef struct
{
NautilusTagManager *tag_manager;
@@ -566,20 +568,13 @@ nautilus_tag_manager_class_init (NautilusTagManagerClass *klass)
}
/**
- * nautilus_tag_manager_get:
- *
- * Gets a reference to the tag manager.
- *
- * If used to initialize a struct field, make sure to release on finalization.
- * If used to initialize a local variable, make sure to use g_autoptr().
+ * nautilus_tag_manager_new:
*
* Returns: (transfer full): the #NautilusTagManager singleton object.
*/
NautilusTagManager *
-nautilus_tag_manager_get (void)
+nautilus_tag_manager_new (void)
{
- static NautilusTagManager *tag_manager = NULL;
-
if (tag_manager != NULL)
{
return g_object_ref (tag_manager);
@@ -591,6 +586,17 @@ nautilus_tag_manager_get (void)
return tag_manager;
}
+/**
+ * nautilus_tag_manager_get:
+ *
+ * Returns: (transfer none): the #NautilusTagManager singleton object.
+ */
+NautilusTagManager *
+nautilus_tag_manager_get (void)
+{
+ return tag_manager;
+}
+
static gboolean
setup_database (NautilusTagManager *self,
GCancellable *cancellable,
@@ -707,7 +713,6 @@ update_moved_uris_callback (GObject *object,
else
{
g_autolist (NautilusFile) updated_files = NULL;
- g_autoptr (NautilusTagManager) tag_manager = nautilus_tag_manager_get ();
for (guint i = 0; i < new_uris->len; i++)
{