From 4c52c418b507757dc88903270cf5938db38a90f7 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Sat, 6 Sep 2025 10:00:13 +0200 Subject: [PATCH] optimize add ignore disc --- libs/spandisc/src/splitter.c | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/libs/spandisc/src/splitter.c b/libs/spandisc/src/splitter.c index 66cf004..30b54d9 100644 --- a/libs/spandisc/src/splitter.c +++ b/libs/spandisc/src/splitter.c @@ -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++; -- 2.47.3