changeset 30:26741527f3b7

Add midiFree() utility function.
author Matti Hamalainen <ccr@tnsp.org>
date Mon, 05 Aug 2013 19:18:15 +0300
parents 4df6d9714314
children 416346c6dc74
files src/midifile.c
diffstat 1 files changed, 15 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/src/midifile.c	Mon Aug 05 19:17:05 2013 +0300
+++ b/src/midifile.c	Mon Aug 05 19:18:15 2013 +0300
@@ -93,6 +93,12 @@
 #define IsMessageValid(_x)		((_x)>=msgNoteOff && (_x)<=msgMetaEvent)
 
 
+static void midiFree(void *ptr)
+{
+    if (ptr != NULL)
+        free(ptr);
+}
+
 static BOOL _midiValidateTrack(const _MIDI_FILE *pMF, int iTrack)
 {
     if (!IsFilePtrValid(pMF))
@@ -258,7 +264,7 @@
         if ((pMF->pFile = fopen(pFilename, "r")))
         {
             fclose(pMF->pFile);
-            free(pMF);
+            midiFree(pMF);
             return NULL;
         }
     }
@@ -268,7 +274,7 @@
     }
     else
     {
-        free((void *) pMF);
+        midiFree(pMF);
         return NULL;
     }
 
@@ -437,8 +443,7 @@
 
     if (!bValidFile)
     {
-        if (pMF)
-            free((void *) pMF);
+        midiFree(pMF);
         return NULL;
     }
 
@@ -532,7 +537,8 @@
         }
     }
 
-    free((void *) pEndPoints);
+    midiFree(pEndPoints);
+
     /*
      ** Re-calc current position
      */
@@ -645,14 +651,15 @@
                 fwrite(pMF->Track[i].pBase, sizeof(BYTE), dwData, pMF->pFile);
 
                 /* Free memory */
-                free((void *) pMF->Track[i].pBase);
+                midiFree(pMF->Track[i].pBase);
             }
 
     }
 
     if (pMF->pFile)
         return fclose(pMF->pFile) ? FALSE : TRUE;
-    free((void *) pMF);
+
+    midiFree(pMF);
     return TRUE;
 }
 
@@ -1275,7 +1282,6 @@
 
 void midiReadFreeMessage(MIDI_MSG * pMsg)
 {
-    if (pMsg->data)
-        free((void *) pMsg->data);
+    midiFree(pMsg->data);
     pMsg->data = NULL;
 }