From 6c3c7c91a47c10ae6629d15c5ad7fedee08fd66d Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Tue, 18 Mar 2025 16:37:17 +0000 Subject: [PATCH] transaction: Tidy up cleanup code Signed-off-by: Michael Tremer --- src/pakfire/transaction.c | 52 +++++++++++++++++++-------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/src/pakfire/transaction.c b/src/pakfire/transaction.c index ad0a8291..8bfb865e 100644 --- a/src/pakfire/transaction.c +++ b/src/pakfire/transaction.c @@ -343,6 +343,29 @@ static int pakfire_transaction_setup_solver(struct pakfire_transaction* transact return 0; } +static void pakfire_transaction_free(struct pakfire_transaction* transaction) { + pakfire_transaction_free_archives_and_packages(transaction); + + if (transaction->installed_packages) + pakfire_packagelist_unref(transaction->installed_packages); + if (transaction->new_packages) + pakfire_packagelist_unref(transaction->new_packages); + if (transaction->userinstalled) + pakfire_strings_free(transaction->userinstalled); + if (transaction->progress) + pakfire_progress_unref(transaction->progress); + if (transaction->transaction) + transaction_free(transaction->transaction); + if (transaction->solver) + solver_free(transaction->solver); + if (transaction->pakfire) + pakfire_unref(transaction->pakfire); + if (transaction->ctx) + pakfire_ctx_unref(transaction->ctx); + queue_free(&transaction->jobs); + free(transaction); +} + int pakfire_transaction_create(struct pakfire_transaction** transaction, struct pakfire* pakfire, int flags) { int r; @@ -387,38 +410,15 @@ int pakfire_transaction_create(struct pakfire_transaction** transaction, goto ERROR; // Return the transaction - *transaction = pakfire_transaction_ref(t); + *transaction = t; + return 0; ERROR: - if (t) - pakfire_transaction_unref(t); + pakfire_transaction_free(t); return r; } -static void pakfire_transaction_free(struct pakfire_transaction* transaction) { - pakfire_transaction_free_archives_and_packages(transaction); - - if (transaction->installed_packages) - pakfire_packagelist_unref(transaction->installed_packages); - if (transaction->new_packages) - pakfire_packagelist_unref(transaction->new_packages); - if (transaction->userinstalled) - pakfire_strings_free(transaction->userinstalled); - if (transaction->progress) - pakfire_progress_unref(transaction->progress); - if (transaction->transaction) - transaction_free(transaction->transaction); - if (transaction->solver) - solver_free(transaction->solver); - if (transaction->pakfire) - pakfire_unref(transaction->pakfire); - if (transaction->ctx) - pakfire_ctx_unref(transaction->ctx); - queue_free(&transaction->jobs); - free(transaction); -} - struct pakfire_transaction* pakfire_transaction_ref( struct pakfire_transaction* transaction) { transaction->nrefs++; -- 2.39.5