changeset 340:1c5e7d66312d

Work on prepared timeline code.
author Matti Hamalainen <ccr@tnsp.org>
date Mon, 15 Oct 2012 18:06:48 +0300
parents 40e8a01e0478
children 9f16badc4bd3
files dmtimeline.c
diffstat 1 files changed, 20 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/dmtimeline.c	Mon Oct 15 17:54:25 2012 +0300
+++ b/dmtimeline.c	Mon Oct 15 18:06:48 2012 +0300
@@ -395,8 +395,25 @@
 
 void dmFreePreparedEventGroup(DMPreparedEventGroup *group)
 {
-    dmFree(group->events);
-    dmFree(group);
+    if (group != NULL)
+    {
+        dmFree(group->events);
+        dmFree(group);
+    }
+}
+
+
+void dmFreePreparedTimelineData(DMPreparedTimeline *ptl)
+{
+    int group;
+    for (group = 0; group < ptl->ngroups; group++)
+    {
+        dmFreePreparedEventGroup(ptl->groups[group]);
+        ptl->groups[group] = NULL;
+    }
+
+    dmFree(ptl->groups);
+    ptl->groups = NULL;
 }
 
 
@@ -421,10 +438,7 @@
     DMPreparedEventGroup *groups = NULL, *node;
 
     // Free previous data
-    for (group = 0; group < ptl->ngroups; group++)
-        dmFreePreparedEventGroup(ptl->groups[group]);
-    dmFree(ptl->groups);
-    ptl->groups = NULL;
+    dmFreePreparedTimelineData(ptl);
 
     // Process tracks
     for (ntrack = 0; ntrack < tl->ntracks; ntrack++)