diff options
author | António Fernandes <antoniof@gnome.org> | 2022-05-30 10:11:52 +0100 |
---|---|---|
committer | António Fernandes <antoniof@gnome.org> | 2022-05-30 10:12:10 +0100 |
commit | bccc6f20d0b615ccae32fdd2cb27d5fd4af8b837 (patch) | |
tree | 8769ef9c77dcb0e3d36f5a6652628245ecb8b8e4 /src/nautilus-tag-manager.c | |
parent | df78c517516cec20892f2a108df47613153ddf5b (diff) | |
download | nautilus-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.c | 25 |
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++) { |