mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
Make indirect_balance_conversion work (and faster)
extract_common_prices was only looking at the first price on the "to" list and there's no point in getting a to list if the from list is empty.
This commit is contained in:
parent
0637f65fa3
commit
fc32f66404
@ -2251,7 +2251,7 @@ extract_common_prices (PriceList *from_prices, PriceList *to_prices)
|
||||
from_node = g_list_next(from_node))
|
||||
{
|
||||
for (to_node = to_prices; to_node != NULL;
|
||||
to_node = g_list_next(to_price))
|
||||
to_node = g_list_next(to_node))
|
||||
{
|
||||
gnc_commodity *to_com, *to_cur;
|
||||
gnc_commodity *from_com, *from_cur;
|
||||
@ -2324,13 +2324,17 @@ indirect_balance_conversion (GNCPriceDB *db, gnc_numeric bal,
|
||||
if (t == NULL)
|
||||
{
|
||||
from_prices = gnc_pricedb_lookup_latest_any_currency(db, from);
|
||||
to_prices = gnc_pricedb_lookup_latest_any_currency(db, to);
|
||||
/* "to" is often the book currency which may have lots of prices,
|
||||
so avoid getting them if they aren't needed. */
|
||||
if (from_prices)
|
||||
to_prices = gnc_pricedb_lookup_latest_any_currency(db, to);
|
||||
}
|
||||
else
|
||||
{
|
||||
from_prices = gnc_pricedb_lookup_nearest_in_time_any_currency(db,
|
||||
from, *t);
|
||||
to_prices = gnc_pricedb_lookup_nearest_in_time_any_currency(db,
|
||||
if (from_prices)
|
||||
to_prices = gnc_pricedb_lookup_nearest_in_time_any_currency(db,
|
||||
to, *t);
|
||||
}
|
||||
if (from_prices == NULL || to_prices == NULL)
|
||||
|
Loading…
Reference in New Issue
Block a user