Check price_source precedence first to save computation.

This commit is contained in:
John Ralls 2016-03-11 15:08:11 -08:00
parent ba4acdfef1
commit e26e598cdc

View File

@ -1589,6 +1589,12 @@ update_price(XferDialog *xferData, PriceReq *pr)
if (gnc_numeric_equal(pr->reverse ? gnc_numeric_invert(value) : value,
price_value))
if (gnc_price_get_source(pr->price) < xferData->price_source)
{
PINFO("Existing price is preferred, so won't supersede.");
gnc_price_unref (pr->price);
return;
}
{
PINFO("Same price for %s in %s",
gnc_commodity_get_mnemonic(pr->from),
@ -1596,12 +1602,6 @@ update_price(XferDialog *xferData, PriceReq *pr)
gnc_price_unref (pr->price);
return;
}
if (gnc_price_get_source(pr->price) < xferData->price_source)
{
PINFO("Existing price is preferred, so won't supersede.");
gnc_price_unref (pr->price);
return;
}
gnc_price_begin_edit (pr->price);
gnc_price_set_time (pr->price, pr->ts);
gnc_price_set_typestr(pr->price, xferData->price_type);