From 580fd6c85aacac3094936ba63a11877348b80118 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Sat, 14 Aug 2021 17:34:28 +0200 Subject: [PATCH] change: realloc by read file --- libs/spandisc/src/filehandler.c | 27 +++++++-------------------- 1 file changed, 7 insertions(+), 20 deletions(-) diff --git a/libs/spandisc/src/filehandler.c b/libs/spandisc/src/filehandler.c index cb209af..3eb838f 100644 --- a/libs/spandisc/src/filehandler.c +++ b/libs/spandisc/src/filehandler.c @@ -6,33 +6,21 @@ #include "spandisc.h" #include "filehandler.h" -void malloc_array_length(FILE *in, medium_t *srcdata) -{ - int lines = 0; - char pfad[255]; - - while (fscanf(in, "%[^\n]\n", pfad) == 1) { - lines++; - } - rewind(in); - - srcdata->length = lines; - srcdata->filearray = (file_size_t *) - malloc(srcdata->length * sizeof(file_size_t)); -} - void fill_array_from_file(FILE *in, medium_t *srcdata) { char pfad[255]; struct stat st; - int lines = 0; while (fscanf(in, "%[^\n]\n", pfad) == 1) { // Lese Dateieigenschaften in st struct stat(pfad, &st); - strcpy(srcdata->filearray[lines].name, pfad); - srcdata->filearray[lines].type = st.st_mode; - srcdata->filearray[lines++].fsize = st.st_size; + srcdata->filearray = (file_size_t *) + realloc(srcdata->filearray, + (srcdata->length + 1) * sizeof(file_size_t)); + strcpy(srcdata->filearray[srcdata->length].name, pfad); + srcdata->filearray[srcdata->length].type = st.st_mode; + srcdata->filearray[srcdata->length].fsize = st.st_size; + srcdata->length++; } } @@ -40,7 +28,6 @@ void read_input_file(const char *input, medium_t *srcdata) { FILE *in = fopen(input, "r"); - malloc_array_length(in, srcdata); fill_array_from_file(in, srcdata); fclose(in); -- 2.39.5