From: Bastian Dehn Date: Sun, 31 Aug 2025 09:14:43 +0000 (+0200) Subject: string dynamic alloc X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=0c57af9e5e53909ea05840ca760b4b304673539d;p=discspan.git string dynamic alloc --- diff --git a/libs/spandisc/src/filehandler.c b/libs/spandisc/src/filehandler.c index e611a52..9947832 100644 --- a/libs/spandisc/src/filehandler.c +++ b/libs/spandisc/src/filehandler.c @@ -20,6 +20,7 @@ void fill_array_from_file(FILE *in, medium_t *srcdata) srcdata->filearray = (file_size_t *) realloc(srcdata->filearray, (srcdata->length + 1) * sizeof(file_size_t)); + srcdata->filearray[srcdata->length].name = malloc(sizeof(char) * strlen(path) + 1); strcpy(srcdata->filearray[srcdata->length].name, path); srcdata->filearray[srcdata->length].type = st->st_mode; srcdata->filearray[srcdata->length].fsize = st->st_size; diff --git a/libs/spandisc/src/spandisc.c b/libs/spandisc/src/spandisc.c index cc8b056..5efb042 100644 --- a/libs/spandisc/src/spandisc.c +++ b/libs/spandisc/src/spandisc.c @@ -23,6 +23,12 @@ medium_t* init_medium() return medium; } +void free_file_size(file_size_t* file_size) +{ + free(file_size->name); + file_size->name = NULL; +} + void free_medium(medium_t *medium) { free(medium->filearray); @@ -34,6 +40,10 @@ void free_medium(medium_t *medium) void free_collection(collection_t *col) { for (int i = 0; i < col->length; i++) { + for (int j = 0; j < col->disc[i]->length; j++) { + free_file_size(&col->disc[i]->filearray[j]); + } + free_medium(col->disc[i]); col->disc[i] = NULL; } diff --git a/libs/spandisc/src/spandisc.h b/libs/spandisc/src/spandisc.h index d314591..54a8489 100644 --- a/libs/spandisc/src/spandisc.h +++ b/libs/spandisc/src/spandisc.h @@ -6,7 +6,7 @@ extern "C" { #endif typedef struct { - char name[255]; + char* name; unsigned long long fsize; unsigned int type; } file_size_t;