AUDIT: r17040 - gnucash/trunk/src/backend/file - Fix/extend r17039 and make gnc_commodity_find_currency() free its temporary data.

Andreas Köhler andi5 at cvs.gnucash.org
Thu Mar 20 19:29:26 EDT 2008


Author: andi5
Date: 2008-03-20 19:29:26 -0400 (Thu, 20 Mar 2008)
New Revision: 17040
Trac: http://svn.gnucash.org/trac/changeset/17040

Modified:
   gnucash/trunk/src/backend/file/gnc-commodity-xml-v2.c
Log:
Fix/extend r17039 and make gnc_commodity_find_currency() free its temporary data.

BP


Modified: gnucash/trunk/src/backend/file/gnc-commodity-xml-v2.c
===================================================================
--- gnucash/trunk/src/backend/file/gnc-commodity-xml-v2.c	2008-03-20 23:15:04 UTC (rev 17039)
+++ gnucash/trunk/src/backend/file/gnc-commodity-xml-v2.c	2008-03-20 23:29:26 UTC (rev 17040)
@@ -215,6 +215,7 @@
 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 @@
 	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



More information about the gnucash-changes mailing list