gnucash stable: Multiple changes pushed
Christopher Lam
clam at code.gnucash.org
Wed Jul 2 11:46:38 EDT 2025
Updated via https://github.com/Gnucash/gnucash/commit/e48c2931 (commit)
via https://github.com/Gnucash/gnucash/commit/5fc64466 (commit)
via https://github.com/Gnucash/gnucash/commit/7e22685a (commit)
from https://github.com/Gnucash/gnucash/commit/e28f314d (commit)
commit e48c293143b9a95db84378b7e4afa50ce078eac5
Author: Christopher Lam <christopher.lck at gmail.com>
Date: Wed Jun 25 09:26:41 2025 +0800
[Split.cpp] use qof_instance kvp API for GncGUID*
diff --git a/libgnucash/engine/Split.cpp b/libgnucash/engine/Split.cpp
index d2b6892bc9..ad257808b4 100644
--- a/libgnucash/engine/Split.cpp
+++ b/libgnucash/engine/Split.cpp
@@ -1090,7 +1090,6 @@ void
xaccSplitDetermineGainStatus (Split *split)
{
Split *other;
- GValue v = G_VALUE_INIT;
GncGUID *guid = nullptr;
if (GAINS_STATUS_UNKNOWN != split->gains) return;
@@ -1103,9 +1102,9 @@ xaccSplitDetermineGainStatus (Split *split)
return;
}
- qof_instance_get_kvp (QOF_INSTANCE (split), &v, 1, "gains-source");
- if (G_VALUE_HOLDS_BOXED (&v))
- guid = (GncGUID*)g_value_get_boxed (&v);
+ if (auto v = qof_instance_get_path_kvp<GncGUID*> (QOF_INSTANCE (split), {"gains-source"}))
+ guid = const_cast<GncGUID*>(*v);
+
if (!guid)
{
// CHECKME: We leave split->gains_split alone. Is that correct?
@@ -1120,7 +1119,6 @@ xaccSplitDetermineGainStatus (Split *split)
other = (Split *) qof_collection_lookup_entity (col, guid);
split->gains_split = other;
}
- g_value_unset (&v);
}
/********************************************************************\
commit 5fc64466a1d68f44972d0d007d35a865929fa0c6
Author: Christopher Lam <christopher.lck at gmail.com>
Date: Tue Jun 24 21:29:11 2025 +0800
[Transaction.cpp] use qof_instance kvp API for GncGUID*
diff --git a/libgnucash/engine/Transaction.cpp b/libgnucash/engine/Transaction.cpp
index 35083da563..82a822cc87 100644
--- a/libgnucash/engine/Transaction.cpp
+++ b/libgnucash/engine/Transaction.cpp
@@ -2714,7 +2714,6 @@ Transaction *
xaccTransReverse (Transaction *orig)
{
Transaction *trans;
- GValue v = G_VALUE_INIT;
g_return_val_if_fail(orig, nullptr);
/* First edit, dirty, and commit orig to ensure that any trading
@@ -2737,10 +2736,8 @@ xaccTransReverse (Transaction *orig)
});
/* Now update the original with a pointer to the new one */
- g_value_init (&v, GNC_TYPE_GUID);
- g_value_set_static_boxed (&v, xaccTransGetGUID(trans));
- qof_instance_set_kvp (QOF_INSTANCE (orig), &v, 1, TRANS_REVERSED_BY);
- g_value_unset (&v);
+ qof_instance_set_path_kvp<GncGUID*> (QOF_INSTANCE (orig), guid_copy(xaccTransGetGUID(trans)),
+ {TRANS_REVERSED_BY});
/* Make sure the reverse transaction is not read-only */
xaccTransClearReadOnly(trans);
@@ -2753,17 +2750,9 @@ xaccTransReverse (Transaction *orig)
Transaction *
xaccTransGetReversedBy(const Transaction *trans)
{
- GValue v = G_VALUE_INIT;
- Transaction *retval = nullptr;
g_return_val_if_fail(trans, nullptr);
- qof_instance_get_kvp (QOF_INSTANCE(trans), &v, 1, TRANS_REVERSED_BY);
- if (G_VALUE_HOLDS_BOXED (&v))
- {
- GncGUID* guid = static_cast<GncGUID*>(g_value_get_boxed (&v));
- retval = xaccTransLookup(guid, qof_instance_get_book (trans));
- }
- g_value_unset (&v);
- return retval;
+ auto g = qof_instance_get_path_kvp<GncGUID*> (QOF_INSTANCE(trans), {TRANS_REVERSED_BY});
+ return g ? xaccTransLookup (*g, qof_instance_get_book (trans)) : nullptr;
}
/* ============================================================== */
commit 7e22685a1c7c65cb7a0dd179ff285a7c364af667
Author: Christopher Lam <christopher.lck at gmail.com>
Date: Tue Jun 24 16:29:24 2025 +0800
[Transaction.cpp] use qof_instance kvp API for int64_t
diff --git a/libgnucash/engine/Transaction.cpp b/libgnucash/engine/Transaction.cpp
index 830dd4f6e7..35083da563 100644
--- a/libgnucash/engine/Transaction.cpp
+++ b/libgnucash/engine/Transaction.cpp
@@ -2120,22 +2120,9 @@ xaccTransSetNotes (Transaction *trans, const char *notes)
void
xaccTransSetIsClosingTxn (Transaction *trans, gboolean is_closing)
{
- if (!trans) return;
xaccTransBeginEdit(trans);
-
- if (is_closing)
- {
- GValue v = G_VALUE_INIT;
- g_value_init (&v, G_TYPE_INT64);
- g_value_set_int64 (&v, 1);
- qof_instance_set_kvp (QOF_INSTANCE (trans), &v, 1, trans_is_closing_str);
- g_value_unset (&v);
- }
- else
- {
- qof_instance_set_kvp (QOF_INSTANCE (trans), nullptr, 1, trans_is_closing_str);
- }
- qof_instance_set_dirty(QOF_INSTANCE(trans));
+ auto val = is_closing ? std::make_optional<int64_t>(1) : std::nullopt;
+ qof_instance_set_path_kvp<int64_t> (QOF_INSTANCE(trans), val, {trans_is_closing_str});
xaccTransCommitEdit(trans);
}
@@ -2328,18 +2315,8 @@ xaccTransGetNotes (const Transaction *trans)
gboolean
xaccTransGetIsClosingTxn (const Transaction *trans)
{
- if (!trans) return FALSE;
-
- GValue v = G_VALUE_INIT;
- gboolean rv;
- qof_instance_get_kvp (QOF_INSTANCE (trans), &v, 1, trans_is_closing_str);
- if (G_VALUE_HOLDS_INT64 (&v))
- rv = (g_value_get_int64 (&v) ? 1 : 0);
- else
- rv = 0;
- g_value_unset (&v);
-
- return rv;
+ auto rv{qof_instance_get_path_kvp<int64_t> (QOF_INSTANCE(trans), {trans_is_closing_str})};
+ return rv ? *rv != 0 : FALSE;
}
/********************************************************************\
Summary of changes:
libgnucash/engine/Split.cpp | 8 +++----
libgnucash/engine/Transaction.cpp | 50 +++++++--------------------------------
2 files changed, 11 insertions(+), 47 deletions(-)
More information about the gnucash-changes
mailing list