]> gitweb.hhaalo.de Git - discspan.git/commitdiff
add: mem free methods for collection and medium
authorBastian Dehn <hhaalo@arcor.de>
Sun, 15 Aug 2021 06:00:35 +0000 (08:00 +0200)
committerBastian Dehn <hhaalo@arcor.de>
Sun, 15 Aug 2021 06:00:35 +0000 (08:00 +0200)
libs/spandisc/include/splitter.h
libs/spandisc/src/logic.c
libs/spandisc/src/splitter.c

index 3c5c14831ef8c55f5c073c91c329570e9d8bab72..e7f2ca7729589d8891c910f41071f67700afd1b5 100644 (file)
@@ -1,6 +1,9 @@
 #ifndef _SPLITTER_H
 #define _SPLITTER_H
 
+void free_medium(medium_t *medium);
+void free_collection(collection_t *col);
+
 medium_t splitter(medium_t *srcdata);
 medium_t ignore(medium_t *srcdata);
 collection_t split_all(medium_t *srcdata);
index 2bdfb57ffe1354aa076e47f6615c54a08823ab82..9f6997fd03ba41537f7cf316f9159e4b4a90a7d2 100644 (file)
@@ -28,15 +28,6 @@ int cmpfunc(const void *filea, const void *fileb)
                return -2;
 }
 
-void free_collection(collection_t *data)
-{
-       for (int i = 0; i < data->length; i++) {
-               free(data->disc[i].filearray);
-       }
-
-       free(data->disc);
-}
-
 void span(const char *input, const char *output, unsigned long long split)
 {
        medium_t srcdata = { 0, split, 0, NULL };
index 4ad48ec0b65fc92eb747ebaac1923a7f31ac0fc9..83be0984b1ee14a88a4e7c5354e42a6ee12d799d 100644 (file)
@@ -7,6 +7,20 @@
 
 #define S_IFREG 0100000 // bitmask for regular file; man inode
 
+void free_medium(medium_t *medium)
+{
+       free(medium->filearray);
+}
+
+void free_collection(collection_t *col)
+{
+       for (int i = 0; i < col->length; i++) {
+               free_medium(&col->disc[i]);
+       }
+
+       free(col->disc);
+}
+
 medium_t init_empty_medium(medium_t srcdata)
 {
        medium_t empty;
@@ -75,7 +89,7 @@ medium_t splitter_to_disc(medium_t *srcdata,
        srcdata->filearray = (file_size_t *) realloc(srcdata->filearray,
                                        srcdata->length * sizeof(file_size_t));
 
-       free(rest.filearray);
+       free_medium(&rest);
        return disc;
 }
 
@@ -113,6 +127,6 @@ collection_t split_all(medium_t *srcdata)
                col.length++;
        }
 
-       free(srcdata->filearray);
+       free_medium(srcdata);
        return col;
 }