ges: Don't release unexisting sources when destroying the formatter
authorStéphane Maniaci <stephane.maniaci@gmail.com>
Sun, 9 Oct 2011 16:28:39 +0000 (12:28 -0400)
committerThibault Saunier <thibault.saunier@collabora.com>
Wed, 11 Jan 2012 14:56:15 +0000 (11:56 -0300)
This happens in case of an empty project.

ges/ges-pitivi-formatter.c

index 590491e2c4a58e755796f33cf68ff79a9d9b8ab0..0909554754d784433c4e25de6c066a630b82ffa5 100644 (file)
@@ -92,21 +92,30 @@ ges_pitivi_formatter_finalize (GObject * object)
 {
   GESPitiviFormatter *self = GES_PITIVI_FORMATTER (object);
   GESPitiviFormatterPrivate *priv = GES_PITIVI_FORMATTER (self)->priv;
-  g_hash_table_foreach (priv->source_table, (GHFunc) ultimate_table_destroyer,
-      NULL);
-  g_hash_table_destroy (priv->source_table);
 
-  g_hash_table_foreach (priv->timeline_objects_table,
-      (GHFunc) list_table_destroyer, NULL);
-  g_hash_table_destroy (priv->timeline_objects_table);
+  if (priv->source_table != NULL) {
+    g_hash_table_foreach (priv->source_table,
+        (GHFunc) ultimate_table_destroyer, NULL);
+    g_hash_table_destroy (priv->source_table);
+  }
 
-  g_hash_table_foreach (priv->layers_table, (GHFunc) layers_table_destroyer,
-      NULL);
-  g_hash_table_destroy (priv->layers_table);
+  if (priv->timeline_objects_table != NULL) {
+    g_hash_table_foreach (priv->timeline_objects_table,
+        (GHFunc) list_table_destroyer, NULL);
+    g_hash_table_destroy (priv->timeline_objects_table);
+  }
 
-  g_hash_table_foreach (priv->track_objects_table,
-      (GHFunc) ultimate_table_destroyer, NULL);
-  g_hash_table_destroy (priv->track_objects_table);
+  if (priv->layers_table != NULL) {
+    g_hash_table_foreach (priv->layers_table,
+        (GHFunc) layers_table_destroyer, NULL);
+    g_hash_table_destroy (priv->layers_table);
+  }
+
+  if (priv->track_objects_table != NULL) {
+    g_hash_table_foreach (priv->track_objects_table,
+        (GHFunc) ultimate_table_destroyer, NULL);
+    g_hash_table_destroy (priv->track_objects_table);
+  }
 
   G_OBJECT_CLASS (ges_pitivi_formatter_parent_class)->finalize (object);
 }