From: Bastian Dehn Date: Sun, 15 Aug 2021 06:00:35 +0000 (+0200) Subject: add: mem free methods for collection and medium X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=caf22192aa1ea684016306cab950875389dc6ebd;p=discspan.git add: mem free methods for collection and medium --- diff --git a/libs/spandisc/include/splitter.h b/libs/spandisc/include/splitter.h index 3c5c148..e7f2ca7 100644 --- a/libs/spandisc/include/splitter.h +++ b/libs/spandisc/include/splitter.h @@ -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); diff --git a/libs/spandisc/src/logic.c b/libs/spandisc/src/logic.c index 2bdfb57..9f6997f 100644 --- a/libs/spandisc/src/logic.c +++ b/libs/spandisc/src/logic.c @@ -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 }; diff --git a/libs/spandisc/src/splitter.c b/libs/spandisc/src/splitter.c index 4ad48ec..83be098 100644 --- a/libs/spandisc/src/splitter.c +++ b/libs/spandisc/src/splitter.c @@ -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; }