]> gitweb.hhaalo.de Git - discspan.git/commitdiff
change: realloc by read file
authorBastian Dehn <hhaalo@arcor.de>
Sat, 14 Aug 2021 15:34:28 +0000 (17:34 +0200)
committerBastian Dehn <hhaalo@arcor.de>
Sat, 14 Aug 2021 15:34:28 +0000 (17:34 +0200)
libs/spandisc/src/filehandler.c

index cb209af0ec5f4fd81c341acf484ee598b83002db..3eb838fcae05d48c011496a5fcdf2078dc6f7575 100644 (file)
@@ -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);