From 07f793d768cc72540dfc2d5fa6a5d6c112efaf67 Mon Sep 17 00:00:00 2001 From: Chewing_Bever Date: Tue, 4 Apr 2023 14:57:31 +0200 Subject: [PATCH] refactor(job-queue): change free functions --- include/vieter_job_queue.h | 6 +++--- src/job-queue/vieter_job.c | 24 ++++++++++++++++++++++++ src/job-queue/vieter_job_queue.c | 27 +-------------------------- 3 files changed, 28 insertions(+), 29 deletions(-) create mode 100644 src/job-queue/vieter_job.c diff --git a/include/vieter_job_queue.h b/include/vieter_job_queue.h index 9fb2c96..cded82f 100644 --- a/include/vieter_job_queue.h +++ b/include/vieter_job_queue.h @@ -38,7 +38,7 @@ typedef struct vieter_job_failure_report { vieter_job_failure_report *vieter_job_failure_report_init(); -void vieter_job_failure_report_free(vieter_job_failure_report **ptp); +void vieter_job_failure_report_free(vieter_job_failure_report *report); /* * Represents a job currently being processed in the system. A job migrates @@ -62,7 +62,7 @@ typedef struct vieter_job { */ vieter_job *vieter_job_init(); -void vieter_job_free(vieter_job **ptp); +void vieter_job_free(vieter_job *job); /* * Represents the actual queue managing the list of jobs. @@ -87,7 +87,7 @@ vieter_job_queue *vieter_job_queue_init(); /* * Free a job queue. */ -void vieter_job_queue_free(vieter_job_queue **ptp); +void vieter_job_queue_free(vieter_job_queue *queue); /* * Insert the given job into the system. diff --git a/src/job-queue/vieter_job.c b/src/job-queue/vieter_job.c new file mode 100644 index 0000000..15633c1 --- /dev/null +++ b/src/job-queue/vieter_job.c @@ -0,0 +1,24 @@ +#include "vieter_job_queue_internal.h" + +vieter_job *vieter_job_init() { return calloc(1, sizeof(vieter_job)); } + +void vieter_job_free(vieter_job *job) { + if (job->schedule != NULL) { + vieter_cron_expr_free(job->schedule); + } + + if (job->failure_report != NULL) { + vieter_job_failure_report_free(job->failure_report); + } + + free(job); +} + +vieter_job_failure_report *vieter_job_failure_report_init() { + return calloc(1, sizeof(vieter_job_failure_report)); +} + +void vieter_job_failure_report_free(vieter_job_failure_report *report) { + free(report->msg); + free(report); +} diff --git a/src/job-queue/vieter_job_queue.c b/src/job-queue/vieter_job_queue.c index 32621fc..028b1af 100644 --- a/src/job-queue/vieter_job_queue.c +++ b/src/job-queue/vieter_job_queue.c @@ -16,9 +16,7 @@ vieter_job_queue *vieter_job_queue_init() { return queue; } -void vieter_job_queue_free(vieter_job_queue **ptp) { - vieter_job_queue *queue = *ptp; - +void vieter_job_queue_free(vieter_job_queue *queue) { vieter_tree_free(queue->tree); for (int i = 0; i < VIETER_JOB_STATES; i++) { @@ -30,25 +28,6 @@ void vieter_job_queue_free(vieter_job_queue **ptp) { } free(queue); - *ptp = NULL; -} - -vieter_job *vieter_job_init() { return calloc(1, sizeof(vieter_job)); } - -void vieter_job_free(vieter_job **ptp) { - vieter_job *job = *ptp; - - if (job->schedule != NULL) { - vieter_cron_expr_free(job->schedule); - } - - if (job->failure_report != NULL) { - vieter_job_failure_report_free(&job->failure_report); - } - - free(job); - - *ptp = NULL; } vieter_job_queue_error vieter_job_queue_insert(vieter_job_queue *queue, @@ -160,10 +139,6 @@ vieter_job_queue_error vieter_job_queue_remove(vieter_job **out, return vieter_job_queue_ok; } -vieter_job_failure_report *vieter_job_failure_report_init() { - return calloc(1, sizeof(vieter_job_failure_report)); -} - vieter_job_queue_error vieter_job_queue_fail(vieter_job_queue *queue, uint64_t id, char *report_message) {