[bijiben] manager: Fix circular reference



commit ceea7d64f6f6e62109ba2feb271bb196f2c42de7
Author: Isaque Galdino <igaldino gmail com>
Date:   Wed Apr 18 00:16:28 2018 -0300

    manager: Fix circular reference
    
    Manager object keeps a list of Provider objects and the latter was also
    keeping hard references to the former. That was also true for Item
    objects.
    
    This patch fix that, keeping only pointers to Manager in Provider and
    Item objects.

 src/libbiji/biji-item.c              |    5 +----
 src/libbiji/provider/biji-provider.c |    5 +----
 2 files changed, 2 insertions(+), 8 deletions(-)
---
diff --git a/src/libbiji/biji-item.c b/src/libbiji/biji-item.c
index ae8aa7e..e691a37 100644
--- a/src/libbiji/biji-item.c
+++ b/src/libbiji/biji-item.c
@@ -63,7 +63,7 @@ biji_item_set_property (GObject      *object,
   switch (property_id)
     {
     case PROP_BOOK:
-      priv->manager = g_value_dup_object (value);
+      priv->manager = g_value_get_object (value);
       break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
@@ -151,9 +151,6 @@ biji_item_class_init (BijiItemClass *klass)
 static void
 biji_item_finalize (GObject *object)
 {
-  BijiItemPrivate *priv = biji_item_get_instance_private (BIJI_ITEM (object));
-  g_clear_object (&priv->manager);
-
   G_OBJECT_CLASS (biji_item_parent_class)->finalize (object);
 }
 
diff --git a/src/libbiji/provider/biji-provider.c b/src/libbiji/provider/biji-provider.c
index 0b51e89..8e41bcb 100644
--- a/src/libbiji/provider/biji-provider.c
+++ b/src/libbiji/provider/biji-provider.c
@@ -111,9 +111,6 @@ biji_provider_load_archives        (BijiProvider *provider)
 static void
 biji_provider_finalize (GObject *object)
 {
-  BijiProviderPrivate *priv = biji_provider_get_instance_private (BIJI_PROVIDER (object));
-  g_clear_object (&priv->manager);
-
   G_OBJECT_CLASS (biji_provider_parent_class)->finalize (object);
 }
 
@@ -156,7 +153,7 @@ biji_provider_set_property (GObject      *object,
   switch (property_id)
     {
     case PROP_BOOK:
-      priv->manager = g_value_dup_object (value);
+      priv->manager = g_value_get_object (value);
       break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);


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