From 8ab8642e76466e1af2c381dfa64b5bb3409f2a9e Mon Sep 17 00:00:00 2001 From: John Ralls Date: Thu, 9 Sep 2021 16:02:00 -0700 Subject: [PATCH] Fix leak of trading_splits list in xaccTransClearTradingSplits --- libgnucash/engine/Scrub.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/libgnucash/engine/Scrub.c b/libgnucash/engine/Scrub.c index 888378cdee..de14940e4c 100644 --- a/libgnucash/engine/Scrub.c +++ b/libgnucash/engine/Scrub.c @@ -612,7 +612,7 @@ gnc_transaction_get_commodity_imbalance (Transaction *trans, /* GFunc wrapper for xaccSplitDestroy */ static void -destroy_split (void* ptr, void* data) +destroy_split (void* ptr) { Split *split = GNC_SPLIT (ptr); if (split) @@ -642,7 +642,10 @@ xaccTransClearTradingSplits (Transaction *trans) return; xaccTransBeginEdit (trans); - g_list_foreach (trading_splits, destroy_split, NULL); + /* destroy_splits doesn't actually free the splits but this gets + * the list ifself freed. + */ + g_list_free_full (trading_splits, destroy_split); xaccTransCommitEdit (trans); }