From: Bastian Dehn Date: Sun, 25 Jul 2021 19:22:20 +0000 (+0200) Subject: fix: struct memory leaks X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=50b5967aed7702daedf29d0e04e752ef77dcd6c7;p=discspan.git fix: struct memory leaks return struct not length of struct --- diff --git a/discspan.c b/discspan.c index ec9c7b5..7bb1f70 100644 --- a/discspan.c +++ b/discspan.c @@ -11,7 +11,7 @@ extern void (*printEvent)(const char *output, unsigned long long splitgroesse); extern void useage(); extern file_size_t * read_input_file(); -extern int splitter(file_size_t *input, const char *output, +extern file_size_t * splitter(file_size_t *input, const char *output, unsigned long long splitgroesse, int length); int struct_array_length = 0; @@ -104,7 +104,7 @@ int main(int argc, char *argv[]) int num = 1; while (struct_array_length > 0) { sprintf(outname, "%s%03d", output, num++); - struct_array_length = splitter(fs, outname, split, struct_array_length); + fs = splitter(fs, outname, split, struct_array_length); } free(fs); diff --git a/splitter.c b/splitter.c index 8896f16..e2d7b44 100644 --- a/splitter.c +++ b/splitter.c @@ -6,6 +6,8 @@ #include "discspan.h" #include "splitter.h" +extern int struct_array_length; + void writeOutputFile(const char *outputPath, file_size_t *disc, int length) { FILE *out = fopen(outputPath, "w"); @@ -23,7 +25,7 @@ void onPrintEvent(const char *output, unsigned long long splitgroesse) printEvent(output, splitgroesse); } -int splitter(file_size_t *input, const char *output, +file_size_t * splitter(file_size_t *input, const char *output, unsigned long long splitgroesse, int length) { file_size_t *rest = (file_size_t *) @@ -62,5 +64,6 @@ int splitter(file_size_t *input, const char *output, free(rest); free(disc); - return restcount; + struct_array_length = restcount; + return input; } diff --git a/splitter.h b/splitter.h index bfc7a3d..da7f3ae 100644 --- a/splitter.h +++ b/splitter.h @@ -21,7 +21,7 @@ void (*printEvent)(const char *output, unsigned long long splitgroesse); * * @return Restlaenge des neuen Arrays */ -int splitter(file_size_t *input, const char *output, +file_size_t * splitter(file_size_t *input, const char *output, unsigned long long splitgroesse, int length); #endif