Use the pointer to the commodity as a hash key instead of looking up

the commodity string and then hashing that.  Fixes 332678.


git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@13528 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
David Hampton 2006-03-08 00:06:35 +00:00
parent e278c02ea0
commit 4086eda561
2 changed files with 8 additions and 24 deletions

View File

@ -1,3 +1,9 @@
2006-03-07 David Hampton <hampton@employees.org>
* src/engine/gnc-pricedb.c: Use the pointer to the commodity as a
hash key instead of looking up the commodity string and then
hashing that. Fixes 332678.
2006-03-08 Andreas Köhler <andi5.py@gmx.net> 2006-03-08 Andreas Köhler <andi5.py@gmx.net>
* configure.in: * configure.in:

View File

@ -561,30 +561,8 @@ gnc_price_list_equal(GList *prices1, GList *prices2)
description of GNCPrice lists). The top-level key is the commodity description of GNCPrice lists). The top-level key is the commodity
you want the prices for, and the second level key is the commodity you want the prices for, and the second level key is the commodity
that the value is expressed in terms of. that the value is expressed in terms of.
*/ */
static guint
commodity_hash (gconstpointer key)
{
gnc_commodity * com = (gnc_commodity *) key;
g_return_val_if_fail (key, 0);
return g_str_hash (gnc_commodity_get_unique_name (com));
}
static gint
commodity_equal (gconstpointer a, gconstpointer b)
{
gnc_commodity * ca = (gnc_commodity *) a;
gnc_commodity * cb = (gnc_commodity *) b;
g_return_val_if_fail (a && b, FALSE);
return gnc_commodity_equiv (ca, cb);
}
static GNCPriceDB * static GNCPriceDB *
gnc_pricedb_create(QofBook * book) gnc_pricedb_create(QofBook * book)
{ {
@ -612,7 +590,7 @@ gnc_pricedb_create(QofBook * book)
provide one here. */ provide one here. */
qof_collection_set_data (col, result); qof_collection_set_data (col, result);
result->commodity_hash = g_hash_table_new(commodity_hash, commodity_equal); result->commodity_hash = g_hash_table_new(NULL, NULL);
g_return_val_if_fail (result->commodity_hash, NULL); g_return_val_if_fail (result->commodity_hash, NULL);
return result; return result;
} }
@ -832,7 +810,7 @@ add_price(GNCPriceDB *db, GNCPrice *p)
currency_hash = g_hash_table_lookup(db->commodity_hash, commodity); currency_hash = g_hash_table_lookup(db->commodity_hash, commodity);
if(!currency_hash) { if(!currency_hash) {
currency_hash = g_hash_table_new(commodity_hash, commodity_equal); currency_hash = g_hash_table_new(NULL, NULL);
g_hash_table_insert(db->commodity_hash, commodity, currency_hash); g_hash_table_insert(db->commodity_hash, commodity, currency_hash);
} }