[Gnucash-changes] r12234 - gnucash/trunk - Initialize the qof instances in commodity namespaces.

David Hampton hampton at cvs.gnucash.org
Mon Jan 2 16:11:27 EST 2006


Author: hampton
Date: 2006-01-02 16:11:26 -0500 (Mon, 02 Jan 2006)
New Revision: 12234
Trac: http://svn.gnucash.org/trac/changeset/12234

Added:
   gnucash/trunk/ChangeLog
Modified:
   gnucash/trunk/src/engine/gnc-commodity.c
   gnucash/trunk/src/engine/gnc-commodity.h
   gnucash/trunk/src/engine/gw-engine-spec.scm
Log:
Initialize the qof instances in commodity namespaces.


Added: gnucash/trunk/ChangeLog
===================================================================
--- gnucash/trunk/ChangeLog	2006-01-02 21:07:03 UTC (rev 12233)
+++ gnucash/trunk/ChangeLog	2006-01-02 21:11:26 UTC (rev 12234)
@@ -0,0 +1,7 @@
+2006-01-02  David Hampton  <hampton at employees.org>
+
+	* src/engine/gw-engine-spec.scm:
+	* src/engine/gnc-commodity.[ch]: Initialize the qof instances in
+	commodity namespaces.
+
+

Modified: gnucash/trunk/src/engine/gnc-commodity.c
===================================================================
--- gnucash/trunk/src/engine/gnc-commodity.c	2006-01-02 21:07:03 UTC (rev 12233)
+++ gnucash/trunk/src/engine/gnc-commodity.c	2006-01-02 21:11:26 UTC (rev 12234)
@@ -499,7 +499,7 @@
   if (namespace) {
     retval->namespace = gnc_commodity_table_find_namespace(table, namespace);
     if (!retval->namespace)
-      retval->namespace = gnc_commodity_table_add_namespace(table, namespace);
+      retval->namespace = gnc_commodity_table_add_namespace(table, namespace, book);
   } else {
     retval->namespace = NULL;
   }
@@ -764,7 +764,7 @@
   if(!cm) return;
   book = qof_instance_get_book (&cm->inst);
   table = gnc_commodity_table_get_table(book);
-  nsp = gnc_commodity_table_add_namespace(table, namespace);
+  nsp = gnc_commodity_table_add_namespace(table, namespace, book);
   if (cm->namespace == nsp)
     return;
 
@@ -1172,6 +1172,7 @@
   gnc_commodity_namespace * nsp = NULL;
   gnc_commodity *c;
   const char *ns_name;
+  QofBook *book;
 
   if (!table) return NULL;
   if (!comm) return NULL;
@@ -1191,8 +1192,9 @@
     return c;
   }
 
-  nsp = gnc_commodity_table_add_namespace(table, ns_name);
-  
+  book = qof_instance_get_book (&comm->inst);
+  nsp = gnc_commodity_table_add_namespace(table, ns_name, book);
+
   PINFO ("insert %p %s into nsp=%p %s", comm->mnemonic, comm->mnemonic,
          nsp->cm_table, nsp->name);
   g_hash_table_insert(nsp->cm_table, 
@@ -1418,7 +1420,8 @@
 
 gnc_commodity_namespace * 
 gnc_commodity_table_add_namespace(gnc_commodity_table * table,
-                                  const char * namespace) 
+                                  const char * namespace,
+				  QofBook *book) 
 {
   gnc_commodity_namespace * ns = NULL; 
   
@@ -1430,6 +1433,7 @@
     ns = g_new0(gnc_commodity_namespace, 1);
     ns->cm_table = g_hash_table_new(g_str_hash, g_str_equal);
     ns->name = gnc_string_cache_insert((gpointer)namespace);
+    qof_instance_init (&ns->inst, GNC_ID_COMMODITY_NAMESPACE, book);
     gnc_engine_gen_event (&ns->inst.entity, GNC_EVENT_CREATE);
     
     g_hash_table_insert(table->ns_table,
@@ -1654,11 +1658,11 @@
 gnc_commodity_table_add_default_data(gnc_commodity_table *table, QofBook *book)
 {
   ENTER ("table=%p", table);
-  gnc_commodity_table_add_namespace(table, GNC_COMMODITY_NS_AMEX);
-  gnc_commodity_table_add_namespace(table, GNC_COMMODITY_NS_NYSE);
-  gnc_commodity_table_add_namespace(table, GNC_COMMODITY_NS_NASDAQ);
-  gnc_commodity_table_add_namespace(table, GNC_COMMODITY_NS_EUREX);
-  gnc_commodity_table_add_namespace(table, GNC_COMMODITY_NS_MUTUAL);
+  gnc_commodity_table_add_namespace(table, GNC_COMMODITY_NS_AMEX, book);
+  gnc_commodity_table_add_namespace(table, GNC_COMMODITY_NS_NYSE, book);
+  gnc_commodity_table_add_namespace(table, GNC_COMMODITY_NS_NASDAQ, book);
+  gnc_commodity_table_add_namespace(table, GNC_COMMODITY_NS_EUREX, book);
+  gnc_commodity_table_add_namespace(table, GNC_COMMODITY_NS_MUTUAL, book);
 
   #include "iso-4217-currencies.c"
 

Modified: gnucash/trunk/src/engine/gnc-commodity.h
===================================================================
--- gnucash/trunk/src/engine/gnc-commodity.h	2006-01-02 21:07:03 UTC (rev 12233)
+++ gnucash/trunk/src/engine/gnc-commodity.h	2006-01-02 21:11:26 UTC (rev 12234)
@@ -726,7 +726,8 @@
  *
  *  @return A pointer to the newly created namespace. */
 gnc_commodity_namespace * gnc_commodity_table_add_namespace(gnc_commodity_table * table,
-							    const char * namespace);
+							    const char * namespace,
+							    QofBook *book);
 
 /** This function finds a commodity namespace in the set of existing commodity namespaces.
  *

Modified: gnucash/trunk/src/engine/gw-engine-spec.scm
===================================================================
--- gnucash/trunk/src/engine/gw-engine-spec.scm	2006-01-02 21:07:03 UTC (rev 12233)
+++ gnucash/trunk/src/engine/gw-engine-spec.scm	2006-01-02 21:11:26 UTC (rev 12234)
@@ -2145,7 +2145,8 @@
  '<gnc:commodity-namespace*>
  "gnc_commodity_table_add_namespace"
  '((<gnc:commodity-table*> table)
-   ((<gw:mchars> caller-owned const) namespace))
+   ((<gw:mchars> caller-owned const) namespace)
+   (<gnc:Book*> book))
  "Add a new namespace to the commodity table")
 
 (gw:wrap-function



More information about the gnucash-changes mailing list