From 0a6fcb8db7c8ba61418fe67d4365a34605fb7763 Mon Sep 17 00:00:00 2001 From: Christopher Lam Date: Mon, 14 Oct 2024 11:52:25 +0800 Subject: [PATCH] [account.cpp] log warnings if acct==nullptr instead of returning early calling these functions with acct==nullptr should indicate bad code. --- libgnucash/engine/Account.cpp | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/libgnucash/engine/Account.cpp b/libgnucash/engine/Account.cpp index 0604c0f234e..426229a59eb 100644 --- a/libgnucash/engine/Account.cpp +++ b/libgnucash/engine/Account.cpp @@ -2583,24 +2583,28 @@ get_kvp_int64_path (const Account *acc, const Path& path) void xaccAccountSetColor (Account *acc, const char *str) { + g_return_if_fail(GNC_IS_ACCOUNT(acc)); set_kvp_string_path (acc, {"color"}, str); } void xaccAccountSetFilter (Account *acc, const char *str) { + g_return_if_fail(GNC_IS_ACCOUNT(acc)); set_kvp_string_path (acc, {"filter"}, str); } void xaccAccountSetSortOrder (Account *acc, const char *str) { + g_return_if_fail(GNC_IS_ACCOUNT(acc)); set_kvp_string_path (acc, {"sort-order"}, str); } void xaccAccountSetSortReversed (Account *acc, gboolean sortreversed) { + g_return_if_fail(GNC_IS_ACCOUNT(acc)); set_kvp_boolean_path (acc, {"sort-reversed"}, sortreversed); } @@ -2625,6 +2629,7 @@ qofAccountSetParent (Account *acc, QofInstance *parent) void xaccAccountSetNotes (Account *acc, const char *str) { + g_return_if_fail(GNC_IS_ACCOUNT(acc)); set_kvp_string_path (acc, {"notes"}, str); } @@ -3904,7 +3909,8 @@ xaccAccountGetNoclosingBalanceChangeInCurrencyForPeriod (Account *acc, time64 t1 const SplitsVec xaccAccountGetSplits (const Account *account) { - return GNC_IS_ACCOUNT(account) ? GET_PRIVATE(account)->splits : SplitsVec{}; + g_return_val_if_fail (GNC_IS_ACCOUNT(account), SplitsVec{}); + return GET_PRIVATE(account)->splits; } SplitList * @@ -3919,6 +3925,7 @@ xaccAccountGetSplitList (const Account *acc) size_t xaccAccountGetSplitsSize (const Account *account) { + g_return_val_if_fail (GNC_IS_ACCOUNT(account), 0); return GNC_IS_ACCOUNT(account) ? GET_PRIVATE(account)->splits.size() : 0; } @@ -3994,12 +4001,14 @@ xaccAccountForEachLot(const Account *acc, gboolean xaccAccountGetTaxRelated (const Account *acc) { + g_return_val_if_fail(GNC_IS_ACCOUNT(acc), false); return get_kvp_boolean_path(acc, {"tax-related"}); } void xaccAccountSetTaxRelated (Account *acc, gboolean tax_related) { + g_return_if_fail(GNC_IS_ACCOUNT(acc)); set_kvp_boolean_path(acc, {"tax-related"}, tax_related); } @@ -4013,6 +4022,7 @@ xaccAccountGetTaxUSCode (const Account *acc) void xaccAccountSetTaxUSCode (Account *acc, const char *code) { + g_return_if_fail(GNC_IS_ACCOUNT(acc)); set_kvp_string_path (acc, {"tax-US", "code"}, code); } @@ -4026,6 +4036,7 @@ xaccAccountGetTaxUSPayerNameSource (const Account *acc) void xaccAccountSetTaxUSPayerNameSource (Account *acc, const char *source) { + g_return_if_fail(GNC_IS_ACCOUNT(acc)); set_kvp_string_path (acc, {"tax-US", "payer-name-source"}, source); } @@ -4078,30 +4089,35 @@ const char *gnc_account_get_credit_string (GNCAccountType acct_type) gboolean xaccAccountGetPlaceholder (const Account *acc) { + g_return_val_if_fail (GNC_IS_ACCOUNT(acc), false); return get_kvp_boolean_path(acc, {"placeholder"}); } void xaccAccountSetPlaceholder (Account *acc, gboolean val) { + g_return_if_fail (GNC_IS_ACCOUNT(acc)); set_kvp_boolean_path(acc, {"placeholder"}, val); } gboolean xaccAccountGetAppendText (const Account *acc) { + g_return_val_if_fail (GNC_IS_ACCOUNT(acc), false); return get_kvp_boolean_path(acc, {"import-append-text"}); } void xaccAccountSetAppendText (Account *acc, gboolean val) { + g_return_if_fail (GNC_IS_ACCOUNT(acc)); set_kvp_boolean_path(acc, {"import-append-text"}, val); } gboolean xaccAccountGetIsOpeningBalance (const Account *acc) { + g_return_val_if_fail (GNC_IS_ACCOUNT(acc), false); if (GET_PRIVATE(acc)->type != ACCT_TYPE_EQUITY) return false; @@ -4111,6 +4127,7 @@ xaccAccountGetIsOpeningBalance (const Account *acc) void xaccAccountSetIsOpeningBalance (Account *acc, gboolean val) { + g_return_if_fail (GNC_IS_ACCOUNT(acc)); if (GET_PRIVATE(acc)->type != ACCT_TYPE_EQUITY) return; set_kvp_string_path(acc, {"equity-type"}, val ? "opening-balance" : nullptr); @@ -4132,12 +4149,14 @@ xaccAccountGetDescendantPlaceholder (const Account *acc) gboolean xaccAccountGetAutoInterest (const Account *acc) { + g_return_val_if_fail(GNC_IS_ACCOUNT(acc), false); return get_kvp_boolean_path (acc, {KEY_RECONCILE_INFO, "auto-interest-transfer"}); } void xaccAccountSetAutoInterest (Account *acc, gboolean val) { + g_return_if_fail(GNC_IS_ACCOUNT(acc)); set_kvp_boolean_path (acc, {KEY_RECONCILE_INFO, "auto-interest-transfer"}, val); } @@ -4147,12 +4166,14 @@ xaccAccountSetAutoInterest (Account *acc, gboolean val) gboolean xaccAccountGetHidden (const Account *acc) { + g_return_val_if_fail(GNC_IS_ACCOUNT(acc), false); return get_kvp_boolean_path (acc, {"hidden"}); } void xaccAccountSetHidden (Account *acc, gboolean val) { + g_return_if_fail(GNC_IS_ACCOUNT(acc)); set_kvp_boolean_path (acc, {"hidden"}, val); } @@ -5532,6 +5553,7 @@ gnc_account_imap_find_account_bayes (Account *acc, GList *tokens) static void change_imap_entry (Account *acc, std::string const & path, int64_t token_count) { + g_return_if_fail(GNC_IS_ACCOUNT(acc)); PINFO("Source Account is '%s', Count is '%" G_GINT64_FORMAT "'", xaccAccountGetName (acc), token_count);