[gobject-introspection] girepository: Fix memory leak in g_irepository_get_dependencies()



commit 7c529615cf9753038f54734a82dee11aecc2984e
Author: Garrett Regier <garrettregier gmail com>
Date:   Fri Nov 20 23:01:21 2015 -0800

    girepository: Fix memory leak in g_irepository_get_dependencies()
    
    The transitive_dependencies GHashTable was being leaked.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=758448

 girepository/girepository.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)
---
diff --git a/girepository/girepository.c b/girepository/girepository.c
index bb91977..82ee8a4 100644
--- a/girepository/girepository.c
+++ b/girepository/girepository.c
@@ -559,12 +559,12 @@ g_irepository_get_dependencies (GIRepository *repository,
   g_return_val_if_fail (namespace != NULL, NULL);
 
   repository = get_repository (repository);
-  transitive_dependencies = g_hash_table_new_full (g_str_hash, g_str_equal,
-                                                   g_free, NULL);
 
-  /* Load the dependencies. */
   typelib = get_registered (repository, namespace, NULL);
   g_return_val_if_fail (typelib != NULL, NULL);
+
+  /* Load the dependencies. */
+  transitive_dependencies = g_hash_table_new (g_str_hash, g_str_equal);
   get_typelib_dependencies_transitive (repository, typelib,
                                        transitive_dependencies);
 
@@ -579,6 +579,8 @@ g_irepository_get_dependencies (GIRepository *repository,
       g_hash_table_iter_steal (&iter);
     }
 
+  g_hash_table_unref (transitive_dependencies);
+
   /* Add a NULL terminator. */
   g_ptr_array_add (out, NULL);
 


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