]> gitweb.hhaalo.de Git - discspan.git/commitdiff
optimize add ignore disc
authorBastian Dehn <hhaalo@arcor.de>
Sat, 6 Sep 2025 08:00:13 +0000 (10:00 +0200)
committerBastian Dehn <hhaalo@arcor.de>
Sat, 6 Sep 2025 08:00:13 +0000 (10:00 +0200)
libs/spandisc/src/splitter.c

index 66cf004807d02655a337fc4f3aa7cd031451dad6..30b54d91f2d5e44830ff4b83f44a8ae6b9a0a6dc 100644 (file)
@@ -74,6 +74,20 @@ void move_rest_to_srcdata(medium_t* rest, medium_t* srcdata)
                        rest->length * sizeof(file_size_t));
 }
 
+void add_ignoredisc_to_collection(medium_t* ignoredisc, collection_t* col)
+{
+       if (ignoredisc->length < 1) {
+               free_medium(ignoredisc);
+               ignoredisc = NULL;
+               return;
+       }
+
+       ignoredisc->freespace = 0;
+       col->disc = malloc(sizeof(medium_t*));
+       col->disc[col->length] = ignoredisc;
+       col->length++;
+}
+
 medium_t* splitter_to_disc(medium_t *srcdata,
                bool (*check)(medium_t*, file_size_t*))
 {
@@ -116,15 +130,7 @@ medium_t* ignore(medium_t *srcdata)
 void split_all(medium_t *srcdata, collection_t* col)
 {
        medium_t* ignoredisc = ignore(srcdata);
-       ignoredisc->freespace = 0;
-       if (ignoredisc->length > 0) {
-               col->disc = malloc(sizeof(medium_t*));
-               col->disc[col->length] = ignoredisc;
-               col->length++;
-       } else {
-               free_medium(ignoredisc);
-               ignoredisc = NULL;
-       }
+       add_ignoredisc_to_collection(ignoredisc, col);
 
        while (srcdata->length > 0) {
                srcdata->nr++;