[libgit2-glib] revision-walker: Take a reference on repository property



commit b7fc9ebb0a1d401aea63c00ce7463fc681ba8300
Author: Florian Müllner <fmuellner gnome org>
Date:   Mon Feb 19 01:22:04 2018 +0100

    revision-walker: Take a reference on repository property
    
    GObjects should almost always own a reference to ref-counted properties;
    there's no apparent reason to make an exception here.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=793581

 libgit2-glib/ggit-revision-walker.c |   16 +++++++++++++++-
 1 files changed, 15 insertions(+), 1 deletions(-)
---
diff --git a/libgit2-glib/ggit-revision-walker.c b/libgit2-glib/ggit-revision-walker.c
index 034b67d..0cbf50e 100644
--- a/libgit2-glib/ggit-revision-walker.c
+++ b/libgit2-glib/ggit-revision-walker.c
@@ -88,7 +88,7 @@ ggit_revision_walker_set_property (GObject      *object,
        switch (prop_id)
        {
                case PROP_REPOSITORY:
-                       priv->repository = g_value_get_object (value);
+                       priv->repository = g_value_dup_object (value);
                        break;
                default:
                        G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -97,12 +97,26 @@ ggit_revision_walker_set_property (GObject      *object,
 }
 
 static void
+ggit_revision_walker_dispose (GObject *object)
+{
+       GgitRevisionWalker *walker = GGIT_REVISION_WALKER (object);
+       GgitRevisionWalkerPrivate *priv;
+
+       priv = ggit_revision_walker_get_instance_private (walker);
+
+       g_clear_object (&priv->repository);
+
+       G_OBJECT_CLASS (ggit_revision_walker_parent_class)->dispose (object);
+}
+
+static void
 ggit_revision_walker_class_init (GgitRevisionWalkerClass *klass)
 {
        GObjectClass *object_class = G_OBJECT_CLASS (klass);
 
        object_class->get_property = ggit_revision_walker_get_property;
        object_class->set_property = ggit_revision_walker_set_property;
+       object_class->dispose = ggit_revision_walker_dispose;
 
        g_object_class_install_property (object_class,
                                         PROP_REPOSITORY,


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