diff --git a/libgnucash/engine/gnc-pricedb.c b/libgnucash/engine/gnc-pricedb.c index caefdbca27..8e4abc4051 100644 --- a/libgnucash/engine/gnc-pricedb.c +++ b/libgnucash/engine/gnc-pricedb.c @@ -796,26 +796,30 @@ gnc_price_list_destroy(PriceList *prices) gboolean gnc_price_list_equal(PriceList *prices1, PriceList *prices2) { - GList *n1, *n2; + GList *n1 = prices1; + GList *n2 = prices2; if (prices1 == prices2) return TRUE; - if (g_list_length (prices1) < g_list_length (prices2)) + while (n1 || n2) { - PINFO ("prices2 has extra prices"); - return FALSE; - } - - if (g_list_length (prices1) > g_list_length (prices2)) - { - PINFO ("prices1 has extra prices"); - return FALSE; - } - - for (n1 = prices1, n2 = prices2; n1 ; n1 = n1->next, n2 = n2->next) + if (!n1) + { + PINFO ("prices2 has extra prices"); + return FALSE; + } + if (!n2) + { + PINFO ("prices1 has extra prices"); + return FALSE; + } if (!gnc_price_equal (n1->data, n2->data)) return FALSE; + n1 = n1->next; + n2 = n2->next; + }; + return TRUE; }