From ecff4858c210ed2cd7b6f5ca6d09955a423b5d3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20K=C3=B6hler?= Date: Thu, 20 Mar 2008 23:29:26 +0000 Subject: [PATCH] Fix/extend r17039 and make gnc_commodity_find_currency() free its temporary data. BP git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@17040 57a11ea4-9604-0410-9ed3-97b8803252fd --- src/backend/file/gnc-commodity-xml-v2.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/backend/file/gnc-commodity-xml-v2.c b/src/backend/file/gnc-commodity-xml-v2.c index ddbef8e5f0..ae0fbcd649 100644 --- a/src/backend/file/gnc-commodity-xml-v2.c +++ b/src/backend/file/gnc-commodity-xml-v2.c @@ -215,6 +215,7 @@ static gnc_commodity * gnc_commodity_find_currency (QofBook *book, xmlNodePtr tree) { gnc_commodity_table * table; + gnc_commodity *currency = NULL; gchar *exchange = NULL, *mnemonic = NULL; xmlNodePtr node; @@ -226,22 +227,20 @@ gnc_commodity_find_currency (QofBook *book, xmlNodePtr tree) mnemonic = (gchar*) xmlNodeGetContent (node->xmlChildrenNode); } - if (!exchange || !mnemonic) + if (exchange + && gnc_commodity_namespace_is_iso(exchange) + && mnemonic) { - if (exchange) xmlFree(exchange); - if (mnemonic) xmlFree(mnemonic); - return NULL; + table = gnc_commodity_table_get_table(book); + currency = gnc_commodity_table_lookup(table, exchange, mnemonic); } - if (!gnc_commodity_namespace_is_iso(exchange)) - { + if (exchange) xmlFree(exchange); + if (mnemonic) xmlFree(mnemonic); - return NULL; - } - table = gnc_commodity_table_get_table(book); - return gnc_commodity_table_lookup(table, exchange, mnemonic); + return currency; } static gboolean