gnucash stable: Multiple changes pushed

Christopher Lam clam at code.gnucash.org
Sun Sep 17 20:51:04 EDT 2023


Updated	 via  https://github.com/Gnucash/gnucash/commit/b7cac5c3 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/c074b822 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/1ddee7dc (commit)
	from  https://github.com/Gnucash/gnucash/commit/346732e8 (commit)



commit b7cac5c30113157c34d382b2a55667982d978454
Merge: 346732e812 c074b82224
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Mon Sep 18 08:50:33 2023 +0800

    Merge branch 'test-qof-plug-leaks' into stable #1773


commit c074b8222426012841a3326b956d58428d09d54e
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Sat Sep 16 17:28:43 2023 +0800

    [test-qofsession] plugs Account* leak

diff --git a/libgnucash/engine/test/test-qofsession.cpp b/libgnucash/engine/test/test-qofsession.cpp
index 30d91e2978..9e57485adf 100644
--- a/libgnucash/engine/test/test-qofsession.cpp
+++ b/libgnucash/engine/test/test-qofsession.cpp
@@ -36,8 +36,20 @@ static bool sync_called {false};
 static bool load_error {true};
 static bool data_loaded {false};
 
+struct DestroyAccount
+{
+    void operator()(Account *acct)
+    {
+        xaccAccountBeginEdit (acct);
+        xaccAccountDestroy (acct);
+    }
+};
+
+using AccountPtr = std::unique_ptr<Account, DestroyAccount>;
+
 class QofSessionMockBackend : public QofBackend
 {
+    AccountPtr m_root;
 public:
     QofSessionMockBackend() = default;
     QofSessionMockBackend(const QofSessionMockBackend&) = delete;
@@ -56,7 +68,7 @@ void QofSessionMockBackend::load (QofBook *book, QofBackendLoadType)
     if (load_error)
         set_error(ERR_BACKEND_NO_BACKEND);
     else
-        gnc_account_create_root (book);
+        m_root = AccountPtr{gnc_account_create_root (book)};
     data_loaded = true;
 }
 

commit 1ddee7dc3f8f169ebe8ac0da1c7c0ed25f62faba
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Sat Sep 16 17:20:06 2023 +0800

    [test-qofbook] plugs Account* leak

diff --git a/libgnucash/engine/test/test-qofbook.c b/libgnucash/engine/test/test-qofbook.c
index 2826b62b28..f131bcbb4c 100644
--- a/libgnucash/engine/test/test-qofbook.c
+++ b/libgnucash/engine/test/test-qofbook.c
@@ -64,6 +64,9 @@ setup( Fixture *fixture, gconstpointer pData )
 static void
 teardown( Fixture *fixture, gconstpointer pData )
 {
+    Account *root = gnc_book_get_root_account (fixture->book);
+    xaccAccountBeginEdit (root);
+    xaccAccountDestroy (root);
     qof_book_destroy( fixture->book );
 }
 



Summary of changes:
 libgnucash/engine/test/test-qofbook.c      |  3 +++
 libgnucash/engine/test/test-qofsession.cpp | 14 +++++++++++++-
 2 files changed, 16 insertions(+), 1 deletion(-)



More information about the gnucash-changes mailing list