r17132 - gnucash/branches/2.2/src/backend/file - [r17040] Fix/extend r17039 and make gnc_commodity_find_currency() free its temporary data.

Andreas Köhler andi5 at cvs.gnucash.org
Sat Apr 26 12:49:28 EDT 2008


Author: andi5
Date: 2008-04-26 12:49:28 -0400 (Sat, 26 Apr 2008)
New Revision: 17132
Trac: http://svn.gnucash.org/trac/changeset/17132

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


Modified: gnucash/branches/2.2/src/backend/file/gnc-commodity-xml-v2.c
===================================================================
--- gnucash/branches/2.2/src/backend/file/gnc-commodity-xml-v2.c	2008-04-26 16:49:19 UTC (rev 17131)
+++ gnucash/branches/2.2/src/backend/file/gnc-commodity-xml-v2.c	2008-04-26 16:49:28 UTC (rev 17132)
@@ -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