From 18e5fa704359f70a4e9b71dd3954f27f89801096 Mon Sep 17 00:00:00 2001 From: chortas Date: Sat, 29 Jan 2022 19:26:28 -0300 Subject: [PATCH] Change chunk size --- fftma_module/gen/lib_src/chunk_array.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/fftma_module/gen/lib_src/chunk_array.c b/fftma_module/gen/lib_src/chunk_array.c index 3b59ae0..7c390c4 100644 --- a/fftma_module/gen/lib_src/chunk_array.c +++ b/fftma_module/gen/lib_src/chunk_array.c @@ -3,6 +3,11 @@ #define MAX_CHUNK_SIZE 2048*2048 +int min(int value1, int value2) { + if (value1 < value2) return value1; + return value2; +} + void chunk_array_free(chunk_array_t* chunk_array) { fclose(chunk_array->fp); free(chunk_array->data); @@ -43,7 +48,9 @@ chunk_array_t* chunk_array_create(char* filename, size_t total_size) { } } - chunk_array->data = malloc(MAX_CHUNK_SIZE * sizeof(double)); + chunk_array->chunk_size = min(MAX_CHUNK_SIZE, total_size); + + chunk_array->data = malloc(chunk_array->chunk_size * sizeof(double)); if (MAX_CHUNK_SIZE > 0 && chunk_array->data == NULL) { free(chunk_array); @@ -54,7 +61,6 @@ chunk_array_t* chunk_array_create(char* filename, size_t total_size) { chunk_array->filename = filename; chunk_array->init_pos = 0; - chunk_array->chunk_size = MAX_CHUNK_SIZE; chunk_array->total_size = total_size; return chunk_array; }