diff options
author | Garrett Regier <garrettregier@gmail.com> | 2015-11-20 23:01:21 -0800 |
---|---|---|
committer | Garrett Regier <garrettregier@gmail.com> | 2015-11-20 23:02:10 -0800 |
commit | 7c529615cf9753038f54734a82dee11aecc2984e (patch) | |
tree | 9362b346a50f3c0b0f4e2a1dceea0285a667e1a3 /girepository | |
parent | 9f3ae59c79daa072006142d4c5d35ae05a6c8d1d (diff) | |
download | gobject-introspection-7c529615cf9753038f54734a82dee11aecc2984e.tar.gz |
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
Diffstat (limited to 'girepository')
-rw-r--r-- | girepository/girepository.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/girepository/girepository.c b/girepository/girepository.c index bb91977e..82ee8a44 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); |