ges: Cleanup internal hash table on deinit
authorSeungha Yang <seungha.yang@navercorp.com>
Sat, 12 Jan 2019 11:23:50 +0000 (20:23 +0900)
committerThibault Saunier <tsaunier@gnome.org>
Fri, 18 Jan 2019 20:32:02 +0000 (20:32 +0000)
System-wide once allocated but it makes tracing leak hard

ges/ges-asset.c
ges/ges-internal.h
ges/ges.c

index e494e28..21b9761 100644 (file)
@@ -638,6 +638,13 @@ ges_asset_cache_init (void)
   _init_standard_transition_assets ();
 }
 
+void
+ges_asset_cache_deinit (void)
+{
+  g_hash_table_destroy (type_entries_table);
+  type_entries_table = NULL;
+}
+
 gboolean
 ges_asset_request_id_update (GESAsset * asset, gchar ** proposed_id,
     GError * error)
index 52ade1b..037f5ec 100644 (file)
@@ -140,6 +140,9 @@ G_GNUC_INTERNAL void
 ges_asset_cache_init (void);
 
 G_GNUC_INTERNAL void
+ges_asset_cache_deinit (void);
+
+G_GNUC_INTERNAL void
 ges_asset_set_id (GESAsset *asset, const gchar *id);
 
 G_GNUC_INTERNAL void
index 03e015f..1702f42 100644 (file)
--- a/ges/ges.c
+++ b/ges/ges.c
@@ -214,6 +214,8 @@ ges_deinit (void)
   /* Register track elements */
   g_type_class_unref (g_type_class_peek (GES_TYPE_EFFECT));
 
+  ges_asset_cache_deinit ();
+
   ges_deinitialized = TRUE;
   G_UNLOCK (init_lock);