From 7e740babdfe374098db12ee6e04acb0fef073018 Mon Sep 17 00:00:00 2001 From: Christopher Lam Date: Mon, 23 Jun 2025 10:36:56 +0800 Subject: [PATCH] [Transaction.cpp] small modification to xaccTransSetReadOnly if reason is "" then remove the kvp --- libgnucash/engine/Transaction.cpp | 11 +---------- libgnucash/engine/test/utest-Transaction.cpp | 4 ++-- 2 files changed, 3 insertions(+), 12 deletions(-) diff --git a/libgnucash/engine/Transaction.cpp b/libgnucash/engine/Transaction.cpp index dd08ec9e39..aa65820313 100644 --- a/libgnucash/engine/Transaction.cpp +++ b/libgnucash/engine/Transaction.cpp @@ -2015,16 +2015,7 @@ void xaccTransSetReadOnly (Transaction *trans, const char *reason) { if (trans && reason) - { - GValue v = G_VALUE_INIT; - g_value_init (&v, G_TYPE_STRING); - g_value_set_static_string (&v, reason); - xaccTransBeginEdit(trans); - qof_instance_set_kvp (QOF_INSTANCE (trans), &v, 1, TRANS_READ_ONLY_REASON); - qof_instance_set_dirty(QOF_INSTANCE(trans)); - g_value_unset (&v); - xaccTransCommitEdit(trans); - } + set_kvp_string_path (trans, {TRANS_READ_ONLY_REASON}, reason); } /********************************************************************\ diff --git a/libgnucash/engine/test/utest-Transaction.cpp b/libgnucash/engine/test/utest-Transaction.cpp index 6117052ef5..3dd81b1d06 100644 --- a/libgnucash/engine/test/utest-Transaction.cpp +++ b/libgnucash/engine/test/utest-Transaction.cpp @@ -1764,8 +1764,8 @@ test_xaccTransGetReadOnly (Fixture *fixture, gconstpointer pData) g_assert_null (frame->get_slot({TRANS_READ_ONLY_REASON})); xaccTransSetReadOnly (txn, ""); - g_assert_cmpstr (xaccTransGetReadOnly (txn), ==, ""); - g_assert_cmpstr (frame->get_slot({TRANS_READ_ONLY_REASON})->get(), ==, ""); + g_assert_cmpstr (xaccTransGetReadOnly (txn), ==, nullptr); + g_assert_null (frame->get_slot({TRANS_READ_ONLY_REASON})); xaccTransClearReadOnly (txn); g_assert_null (frame->get_slot({TRANS_READ_ONLY_REASON}));