Localize variables, ensure that val_imbalance is set, test txn_curr != commodity once.

Found by clang static analyzer.
This commit is contained in:
John Ralls 2018-11-28 15:41:45 +09:00
parent 4ffeb3efac
commit 8f22c4bed4

View File

@ -683,7 +683,6 @@ gnc_transaction_balance_trading (Transaction *trans, Account *root)
gnc_monetary *imbal_mon = imbalance_commod->data;
gnc_commodity *commodity;
gnc_numeric old_amount, new_amount;
gnc_numeric old_value, new_value, val_imbalance;
const gnc_commodity *txn_curr = xaccTransGetCurrency (trans);
commodity = gnc_monetary_commodity (*imbal_mon);
@ -697,11 +696,6 @@ gnc_transaction_balance_trading (Transaction *trans, Account *root)
return;
}
if (! gnc_commodity_equal (txn_curr, commodity))
{
val_imbalance = gnc_transaction_get_commodity_imbalance (trans, commodity);
}
xaccTransBeginEdit (trans);
old_amount = xaccSplitGetAmount (balance_split);
@ -719,8 +713,10 @@ gnc_transaction_balance_trading (Transaction *trans, Account *root)
}
else
{
old_value = xaccSplitGetValue (balance_split);
new_value = gnc_numeric_sub (old_value, val_imbalance,
gnc_numeric val_imbalance = gnc_transaction_get_commodity_imbalance (trans, commodity);
gnc_numeric old_value = xaccSplitGetValue (balance_split);
gnc_numeric new_value = gnc_numeric_sub (old_value, val_imbalance,
gnc_commodity_get_fraction(txn_curr),
GNC_HOW_RND_ROUND_HALF_UP);