From 48f3842eaa80836cecfe391db20f57cfad2e1eb2 Mon Sep 17 00:00:00 2001 From: Christopher Lam Date: Tue, 4 Jun 2024 00:29:43 +0800 Subject: [PATCH] [Account.cpp] compare vectors with std::equal in xaccAccountEqual --- libgnucash/engine/Account.cpp | 25 ++++++------------------- 1 file changed, 6 insertions(+), 19 deletions(-) diff --git a/libgnucash/engine/Account.cpp b/libgnucash/engine/Account.cpp index 8a5abc250f..5401b7a6fe 100644 --- a/libgnucash/engine/Account.cpp +++ b/libgnucash/engine/Account.cpp @@ -1845,26 +1845,13 @@ xaccAccountEqual(const Account *aa, const Account *ab, gboolean check_guids) /* no parent; always compare downwards. */ + if (!std::equal (priv_aa->splits.begin(), priv_aa->splits.end(), + priv_ab->splits.begin(), priv_ab->splits.end(), + [check_guids](auto sa, auto sb) + { return xaccSplitEqual(sa, sb, check_guids, true, false); })) { - if (priv_aa->splits.size() != priv_ab->splits.size()) - { - PWARN ("number of splits differs"); - return false; - } - - for (auto it_a = priv_aa->splits.begin(), it_b = priv_ab->splits.begin(); - it_a != priv_aa->splits.end() && it_b != priv_ab->splits.end(); - ++it_a, ++it_b) - { - Split *sa = *it_a; - Split *sb = *it_b; - - if (!xaccSplitEqual(sa, sb, check_guids, TRUE, FALSE)) - { - PWARN ("splits differ"); - return false; - } - } + PWARN ("splits differ"); + return false; } if (!xaccAcctChildrenEqual(priv_aa->children, priv_ab->children, check_guids))