r21203 - gnucash/trunk/src - Delete qofinstance_gemini and all related functions; they were left over from the clone-the-book-when-closing code abandoned in 2005
John Ralls
jralls at code.gnucash.org
Sun Aug 21 23:58:10 EDT 2011
Author: jralls
Date: 2011-08-21 23:58:10 -0400 (Sun, 21 Aug 2011)
New Revision: 21203
Trac: http://svn.gnucash.org/trac/changeset/21203
Modified:
gnucash/trunk/src/engine/Account.c
gnucash/trunk/src/engine/Account.h
gnucash/trunk/src/engine/gncAddress.c
gnucash/trunk/src/engine/gncAddressP.h
gnucash/trunk/src/engine/gncBillTerm.c
gnucash/trunk/src/engine/gncBillTermP.h
gnucash/trunk/src/engine/gncCustomer.c
gnucash/trunk/src/engine/gncCustomerP.h
gnucash/trunk/src/engine/gncEmployee.c
gnucash/trunk/src/engine/gncEmployeeP.h
gnucash/trunk/src/engine/gncEntry.c
gnucash/trunk/src/engine/gncEntryP.h
gnucash/trunk/src/engine/gncInvoice.c
gnucash/trunk/src/engine/gncInvoiceP.h
gnucash/trunk/src/engine/gncJob.c
gnucash/trunk/src/engine/gncJobP.h
gnucash/trunk/src/engine/gncOrder.c
gnucash/trunk/src/engine/gncOrderP.h
gnucash/trunk/src/engine/gncOwner.c
gnucash/trunk/src/engine/gncOwnerP.h
gnucash/trunk/src/engine/gncTaxTable.c
gnucash/trunk/src/engine/gncTaxTableP.h
gnucash/trunk/src/engine/gncVendor.c
gnucash/trunk/src/engine/gncVendorP.h
gnucash/trunk/src/libqof/qof/qofinstance.c
gnucash/trunk/src/libqof/qof/qofinstance.h
gnucash/trunk/src/libqof/qof/test/test-qofinstance.c
Log:
Delete qofinstance_gemini and all related functions; they were left over from the clone-the-book-when-closing code abandoned in 2005
Modified: gnucash/trunk/src/engine/Account.c
===================================================================
--- gnucash/trunk/src/engine/Account.c 2011-08-21 19:42:55 UTC (rev 21202)
+++ gnucash/trunk/src/engine/Account.c 2011-08-22 03:58:10 UTC (rev 21203)
@@ -1029,16 +1029,6 @@
}
Account *
-xaccCloneAccount (const Account *from, QofBook *book)
-{
- Account *ret = xaccCloneAccountCommon(from, book);
- qof_instance_gemini (&ret->inst, (QofInstance *) &from->inst);
- g_assert (ret ==
- (Account*) qof_instance_lookup_twin (QOF_INSTANCE(from), book));
- return ret;
-}
-
-Account *
xaccCloneAccountSimple (const Account *from, QofBook *book)
{
Account *ret = xaccCloneAccountCommon(from, book);
@@ -4517,58 +4507,6 @@
g_list_free(children);
LEAVE (" ");
}
-
-void
-gnc_account_copy_children (Account *to, Account *from)
-{
- AccountPrivate *to_priv, *from_priv;
- GList *node;
- QofBook *to_book;
-
- /* errors */
- g_return_if_fail(GNC_IS_ACCOUNT(to));
- g_return_if_fail(GNC_IS_ACCOUNT(from));
-
- /* optimizations */
- to_priv = GET_PRIVATE(to);
- from_priv = GET_PRIVATE(from);
- if (!from_priv->children)
- return;
-
- to_book = gnc_account_get_book(to);
- if (!to_book) return;
-
- ENTER (" ");
- xaccAccountBeginEdit(to);
- xaccAccountBeginEdit(from);
- for (node = from_priv->children; node; node = node->next)
- {
- Account *to_acc, *from_acc = node->data;
-
- /* This will copy the basic data and the KVP. It will
- * not copy any splits/transactions. It will gemini. */
- to_acc = xaccCloneAccount (from_acc, to_book);
-
- xaccAccountBeginEdit (to_acc);
- to_priv->children = g_list_append(to_priv->children, to_acc);
-
- GET_PRIVATE(to_acc)->parent = to;
- qof_instance_set_dirty(&to_acc->inst);
-
- /* Copy child accounts too. */
- if (GET_PRIVATE(from_acc)->children)
- {
- gnc_account_copy_children(to_acc, from_acc);
- }
- xaccAccountCommitEdit (to_acc);
- qof_event_gen (&to_acc->inst, QOF_EVENT_CREATE, NULL);
- /* DRH - Should this send ADD/REMOVE events */
- }
- xaccAccountCommitEdit(from);
- xaccAccountCommitEdit(to);
- LEAVE (" ");
-}
-
/********************************************************************\
\********************************************************************/
Modified: gnucash/trunk/src/engine/Account.h
===================================================================
--- gnucash/trunk/src/engine/Account.h 2011-08-21 19:42:55 UTC (rev 21202)
+++ gnucash/trunk/src/engine/Account.h 2011-08-22 03:58:10 UTC (rev 21203)
@@ -177,14 +177,6 @@
/** Create a new root level account. */
Account * gnc_account_create_root (QofBook *book);
-/** The xaccCloneAccount() does the same as xaccCloneAccountSimple(),
- * except that it also also places a pair of GncGUID-pointers
- * of each account to the other, in the other's kvp slot.
- * The guid pointers are stored under the under the kvp
- * path "gemini".
- */
-Account * xaccCloneAccount (const Account *source, QofBook *book);
-
/** The xaccCloneAccountSimple() routine makes a simple copy of the
* indicated account, placing it in the indicated book. It copies
* the account type, name, description, and the kvp values;
@@ -192,8 +184,6 @@
* a commodity table in it that has commodities with the same
* unique name as the ones being copied in the account (the
* commodities in the clone will be those from the book).
- * Note that this routines does *NOT* use the 'gemini' kvp value
- * to indicate where it was copied from.
*/
Account * xaccCloneAccountSimple (const Account *source, QofBook *book);
@@ -889,15 +879,6 @@
*/
void gnc_account_join_children (Account *to_parent, Account *from_parent);
-/** The gnc_account_copy_children() subroutine will copy all child
- * accounts from the "src" account to the "dest" account, preserving
- * the account hierarchy. It will also take care that the moved
- * accounts will have the "dest" account's book parent as well. This
- * routine will *NOT* copy any splits/transactions. It will copy the
- * KVP trees in each account.
- */
-void gnc_account_copy_children (Account *dest, Account *src);
-
/** The gnc_account_merge_children() subroutine will go through an
* account, merging all child accounts that have the same name and
* description. This function is useful when importing Quicken(TM)
Modified: gnucash/trunk/src/engine/gncAddress.c
===================================================================
--- gnucash/trunk/src/engine/gncAddress.c 2011-08-21 19:42:55 UTC (rev 21202)
+++ gnucash/trunk/src/engine/gncAddress.c 2011-08-22 03:58:10 UTC (rev 21203)
@@ -357,31 +357,6 @@
return addr->parent;
}
-GncAddress *
-gncCloneAddress (const GncAddress *from, QofInstance *new_parent, QofBook *book)
-{
- GncAddress *addr;
-
- if (!book) return NULL;
-
- addr = g_object_new (GNC_TYPE_ADDRESS, NULL);
- qof_instance_init_data(&addr->inst, GNC_ID_ADDRESS, book);
- addr->book = book;
- addr->dirty = TRUE;
- addr->parent = new_parent;
-
- addr->name = CACHE_INSERT (from->name);
- addr->addr1 = CACHE_INSERT (from->addr1);
- addr->addr2 = CACHE_INSERT (from->addr2);
- addr->addr3 = CACHE_INSERT (from->addr3);
- addr->addr4 = CACHE_INSERT (from->addr4);
- addr->phone = CACHE_INSERT (from->phone);
- addr->fax = CACHE_INSERT (from->fax);
- addr->email = CACHE_INSERT (from->email);
-
- return addr;
-}
-
void
gncAddressDestroy (GncAddress *addr)
{
Modified: gnucash/trunk/src/engine/gncAddressP.h
===================================================================
--- gnucash/trunk/src/engine/gncAddressP.h 2011-08-21 19:42:55 UTC (rev 21202)
+++ gnucash/trunk/src/engine/gncAddressP.h 2011-08-22 03:58:10 UTC (rev 21203)
@@ -32,8 +32,4 @@
gboolean gncAddressRegister (void);
-/** Make a copy of the address, setting the parent to 'new_parent' */
-GncAddress * gncCloneAddress (const GncAddress *from, QofInstance *new_parent, QofBook *book);
-
-
#endif /* GNC_ADDRESSP_H_ */
Modified: gnucash/trunk/src/engine/gncBillTerm.c
===================================================================
--- gnucash/trunk/src/engine/gncBillTerm.c 2011-08-21 19:42:55 UTC (rev 21202)
+++ gnucash/trunk/src/engine/gncBillTerm.c 2011-08-22 03:58:10 UTC (rev 21203)
@@ -302,68 +302,6 @@
g_object_unref (term);
}
-GncBillTerm *
-gncCloneBillTerm (GncBillTerm *from, QofBook *book)
-{
- GList *node;
- GncBillTerm *term;
-
- if (!book || !from) return NULL;
-
- term = g_object_new (GNC_TYPE_BILLTERM, NULL);
- qof_instance_init_data(&term->inst, _GNC_MOD_NAME, book);
- qof_instance_gemini (&term->inst, &from->inst);
-
- term->name = CACHE_INSERT (from->name);
- term->desc = CACHE_INSERT (from->desc);
- term->type = from->type;
- term->due_days = from->due_days;
- term->disc_days = from->disc_days;
- term->discount = from->discount;
- term->cutoff = from->cutoff;
- term->invisible = from->invisible;
-
- term->refcount = 0;
-
- /* Make copies of parents and children. Note that this can be
- * a recursive copy ... treat as doubly-linked list. */
- if (from->child)
- {
- term->child = gncBillTermObtainTwin (from->child, book);
- term->child->parent = term;
- }
- if (from->parent)
- {
- term->parent = gncBillTermObtainTwin (from->parent, book);
- term->parent->child = term;
- }
- for (node = g_list_last(from->children); node; node = node->next)
- {
- GncBillTerm *btrm = node->data;
- btrm = gncBillTermObtainTwin (btrm, book);
- btrm->parent = term;
- term->children = g_list_prepend(term->children, btrm);
- }
-
- addObj (term);
- qof_event_gen (&term->inst, QOF_EVENT_CREATE, NULL);
- return term;
-}
-
-GncBillTerm *
-gncBillTermObtainTwin (GncBillTerm *from, QofBook *book)
-{
- GncBillTerm *term;
- if (!from) return NULL;
-
- term = (GncBillTerm *) qof_instance_lookup_twin (QOF_INSTANCE(from), book);
- if (!term)
- {
- term = gncCloneBillTerm (from, book);
- }
- return term;
-}
-
/* ============================================================== */
/* Set Functions */
Modified: gnucash/trunk/src/engine/gncBillTermP.h
===================================================================
--- gnucash/trunk/src/engine/gncBillTermP.h 2011-08-21 19:42:55 UTC (rev 21202)
+++ gnucash/trunk/src/engine/gncBillTermP.h 2011-08-22 03:58:10 UTC (rev 21203)
@@ -40,30 +40,6 @@
gboolean gncBillTermGetInvisible (const GncBillTerm *term);
-/** The gncCloneBillTerm() routine makes a copy of the indicated
- * bill term, placing it in the indicated book. It copies
- * the name, description, type, due-days, discount, etc.
- * It also copies (as needed) both parents and children, so that
- * the parent-child relationship is correctly mirrored in the
- * clone.
- * XXX the refcount is mis-handled. This needs fixin....
- * It then adds a pair of 'gemini' kvp pointers so that each copy
- * can be found from the other.
- */
-
-GncBillTerm * gncCloneBillTerm (GncBillTerm *from, QofBook *);
-
-/** The gncBillTermObtainTwin() will find the 'twin' of the
- * indicated bill term in the indicated book. If the twin doesn't
- * yet exist in the book, it will be created (by calling
- * gncCloneBillTerm()) and placed into the book.
- *
- * We called this routine 'Obtain' instead of "Get" to distinguish
- * it from the other Get routines, which work in fundamentally
- * different ways.
- */
-GncBillTerm * gncBillTermObtainTwin (GncBillTerm *from, QofBook *book);
-
#define gncBillTermSetGUID(E,G) qof_instance_set_guid(QOF_INSTANCE(E),(G))
Modified: gnucash/trunk/src/engine/gncCustomer.c
===================================================================
--- gnucash/trunk/src/engine/gncCustomer.c 2011-08-21 19:42:55 UTC (rev 21202)
+++ gnucash/trunk/src/engine/gncCustomer.c 2011-08-22 03:58:10 UTC (rev 21203)
@@ -276,50 +276,6 @@
return cust;
}
-/** Create a copy of a customer, placing the copy into a new book. */
-GncCustomer *
-gncCloneCustomer (GncCustomer *from, QofBook *book)
-{
- GList *node;
- GncCustomer *cust;
-
- cust = g_object_new (GNC_TYPE_CUSTOMER, NULL);
-
- qof_instance_init_data (&cust->inst, _GNC_MOD_NAME, book);
- qof_instance_gemini (&cust->inst, &from->inst);
-
- cust->id = CACHE_INSERT (from->id);
- cust->name = CACHE_INSERT (from->name);
- cust->notes = CACHE_INSERT (from->notes);
- cust->discount = from->discount;
- cust->credit = from->credit;
- cust->taxincluded = from->taxincluded;
- cust->active = from->active;
- cust->taxtable_override = from->taxtable_override;
-
- cust->addr = gncCloneAddress (from->addr, &cust->inst, book);
- cust->shipaddr = gncCloneAddress (from->shipaddr, &cust->inst, book);
-
- /* Find the matching currency in the new book, assumes
- * currency has already been copied into new book. */
- cust->currency = gnc_commodity_obtain_twin (from->currency, book);
-
- /* Find the matching bill term, tax table in the new book */
- cust->terms = gncBillTermObtainTwin(from->terms, book);
- cust->taxtable = gncTaxTableObtainTwin (from->taxtable, book);
-
- for (node = g_list_last(cust->jobs); node; node = node->next)
- {
- GncJob *job = node->data;
- job = gncJobObtainTwin (job, book);
- cust->jobs = g_list_prepend(cust->jobs, job);
- }
-
- qof_event_gen (&cust->inst, QOF_EVENT_CREATE, NULL);
-
- return cust;
-}
-
void gncCustomerDestroy (GncCustomer *cust)
{
if (!cust) return;
@@ -354,20 +310,6 @@
g_object_unref (cust);
}
-GncCustomer *
-gncCustomerObtainTwin (GncCustomer *from, QofBook *book)
-{
- GncCustomer *cust;
- if (!from) return NULL;
-
- cust = (GncCustomer *) qof_instance_lookup_twin (QOF_INSTANCE(from), book);
- if (!cust)
- {
- cust = gncCloneCustomer (from, book);
- }
- return cust;
-}
-
/* ============================================================== */
/* Set Functions */
Modified: gnucash/trunk/src/engine/gncCustomerP.h
===================================================================
--- gnucash/trunk/src/engine/gncCustomerP.h 2011-08-21 19:42:55 UTC (rev 21202)
+++ gnucash/trunk/src/engine/gncCustomerP.h 2011-08-22 03:58:10 UTC (rev 21203)
@@ -34,25 +34,6 @@
gboolean gncCustomerRegister (void);
gchar *gncCustomerNextID (QofBook *book);
-/** The gncCloneCustomer() routine makes a copy of the indicated
- * customer, placing it in the indicated book. It copies
- * the addresses, credits, currency, billing terms and jobs.
- * It then adds a pair of 'gemini' kvp pointers so that each copy
- * can be found from the other.
- */
-GncCustomer * gncCloneCustomer (GncCustomer *from, QofBook *book);
-
-/** The gncCustomerObtainTwin() will find the 'twin' of the
- * indicated customer in the indicated book. If the twin doesn't
- * yet exist in the book, it will be created (by calling
- * gncCloneCustomer()) and placed into the book.
- *
- * We called this routine 'Obtain' instead of "Get" to distinguish
- * it from the other Get routines, which work in fundamentally
- * different ways.
- */
-GncCustomer * gncCustomerObtainTwin (GncCustomer *from, QofBook *book);
-
#define gncCustomerSetGUID(E,G) qof_instance_set_guid(QOF_INSTANCE(E),(G))
#endif /* GNC_CUSTOMERP_H_ */
Modified: gnucash/trunk/src/engine/gncEmployee.c
===================================================================
--- gnucash/trunk/src/engine/gncEmployee.c 2011-08-21 19:42:55 UTC (rev 21202)
+++ gnucash/trunk/src/engine/gncEmployee.c 2011-08-22 03:58:10 UTC (rev 21203)
@@ -279,48 +279,6 @@
g_object_unref (employee);
}
-GncEmployee *
-gncCloneEmployee (GncEmployee *from, QofBook *book)
-{
- GncEmployee *employee;
- if (!book || !from) return NULL;
-
- employee = g_object_new (GNC_TYPE_EMPLOYEE, NULL);
- qof_instance_init_data(&employee->inst, _GNC_MOD_NAME, book);
- qof_instance_gemini (&employee->inst, &from->inst);
-
- employee->id = CACHE_INSERT (from->id);
- employee->username = CACHE_INSERT (from->username);
- employee->language = CACHE_INSERT (from->language);
- employee->acl = CACHE_INSERT (from->acl);
- employee->addr = gncCloneAddress (from->addr, &employee->inst, book);
- employee->workday = from->workday;
- employee->rate = from->rate;
- employee->active = from->active;
- employee->currency = gnc_commodity_obtain_twin(from->currency, book);
- employee->ccard_acc =
- GNC_ACCOUNT(qof_instance_lookup_twin(QOF_INSTANCE(from->ccard_acc), book));
-
- qof_event_gen (&employee->inst, QOF_EVENT_CREATE, NULL);
-
- return employee;
-}
-
-GncEmployee *
-gncEmployeeObtainTwin (GncEmployee *from, QofBook *book)
-{
- GncEmployee *employee;
- if (!book) return NULL;
-
- employee = (GncEmployee *) qof_instance_lookup_twin (QOF_INSTANCE(from), book);
- if (!employee)
- {
- employee = gncCloneEmployee (from, book);
- }
-
- return employee;
-}
-
/* ============================================================== */
/* Set Functions */
Modified: gnucash/trunk/src/engine/gncEmployeeP.h
===================================================================
--- gnucash/trunk/src/engine/gncEmployeeP.h 2011-08-21 19:42:55 UTC (rev 21202)
+++ gnucash/trunk/src/engine/gncEmployeeP.h 2011-08-22 03:58:10 UTC (rev 21203)
@@ -34,29 +34,6 @@
gboolean gncEmployeeRegister (void);
gchar *gncEmployeeNextID (QofBook *book);
-/** The gncCloneEmployee() routine makes a copy of the indicated
- * employee, placing it in the indicated book. It copies
- * the username, address, currency, ccard account, etc.
- * It also copies (as needed) both parents and children, so that
- * the parent-child relationship is correctly mirrored in the
- * clone.
- * It then adds a pair of 'gemini' kvp pointers so that each copy
- * can be found from the other.
- */
-
-GncEmployee * gncCloneEmployee (GncEmployee *from, QofBook *);
-
-/** The gncEmployeeObtainTwin() will find the 'twin' of the
- * indicated employee in the indicated book. If the twin doesn't
- * yet exist in the book, it will be created (by calling
- * gncCloneEmployee()) and placed into the book.
- *
- * We called this routine 'Obtain' instead of "Get" to distinguish
- * it from the other Get routines, which work in fundamentally
- * different ways.
- */
-GncEmployee * gncEmployeeObtainTwin (GncEmployee *from, QofBook *book);
-
#define gncEmployeeSetGUID(E,G) qof_instance_set_guid(QOF_INSTANCE(E),(G))
#endif /* GNC_EMPLOYEEP_H_ */
Modified: gnucash/trunk/src/engine/gncEntry.c
===================================================================
--- gnucash/trunk/src/engine/gncEntry.c 2011-08-21 19:42:55 UTC (rev 21202)
+++ gnucash/trunk/src/engine/gncEntry.c 2011-08-22 03:58:10 UTC (rev 21203)
@@ -418,29 +418,6 @@
g_object_unref (entry);
}
-GncEntry *
-gncCloneEntry (GncEntry *from, QofBook *book)
-{
- /* XXX unfinished */
- return NULL;
-}
-
-GncEntry *
-gncEntryObtainTwin (GncEntry *from, QofBook *book)
-{
- GncEntry *entry;
- if (!book) return NULL;
-
- entry = (GncEntry *) qof_instance_lookup_twin (QOF_INSTANCE(from), book);
- if (!entry)
- {
- entry = gncCloneEntry (from, book);
- }
-
- return entry;
-}
-
-
/* ================================================================ */
/* Set Functions */
Modified: gnucash/trunk/src/engine/gncEntryP.h
===================================================================
--- gnucash/trunk/src/engine/gncEntryP.h 2011-08-21 19:42:55 UTC (rev 21202)
+++ gnucash/trunk/src/engine/gncEntryP.h 2011-08-22 03:58:10 UTC (rev 21203)
@@ -38,27 +38,6 @@
void gncEntrySetBill (GncEntry *entry, GncInvoice *bill);
void gncEntrySetDirty (GncEntry *entry, gboolean dirty);
-
-/** The gncCloneEntry() routine makes a copy of the indicated
- * entry, placing it in the indicated book. It copies
- * the whole kit-n-kaboodle.
- * It then adds a pair of 'gemini' kvp pointers so that each copy
- * can be found from the other.
- */
-
-GncEntry * gncCloneEntry (GncEntry *from, QofBook *);
-
-/** The gncEntryObtainTwin() will find the 'twin' of the
- * indicated entry in the indicated book. If the twin doesn't
- * yet exist in the book, it will be created (by calling
- * gncCloneEntry()) and placed into the book.
- *
- * We called this routine 'Obtain' instead of "Get" to distinguish
- * it from the other Get routines, which work in fundamentally
- * different ways.
- */
-GncEntry * gncEntryObtainTwin (GncEntry *from, QofBook *book);
-
#define gncEntrySetGUID(E,G) qof_instance_set_guid(QOF_INSTANCE(E),(G))
#endif /* GNC_ENTRYP_H_ */
Modified: gnucash/trunk/src/engine/gncInvoice.c
===================================================================
--- gnucash/trunk/src/engine/gncInvoice.c 2011-08-21 19:42:55 UTC (rev 21202)
+++ gnucash/trunk/src/engine/gncInvoice.c 2011-08-22 03:58:10 UTC (rev 21203)
@@ -406,81 +406,6 @@
g_object_unref (invoice);
}
-GncInvoice *
-gncCloneInvoice (GncInvoice *from, QofBook *book)
-{
- GList *node;
- GncInvoice *invoice;
-
- if (!book) return NULL;
-
- invoice = g_object_new (GNC_TYPE_INVOICE, NULL);
- qof_instance_init_data (&invoice->inst, _GNC_MOD_NAME, book);
-
- invoice->id = CACHE_INSERT (from->id);
- invoice->notes = CACHE_INSERT (from->notes);
- invoice->billing_id = CACHE_INSERT (from->billing_id);
- invoice->active = from->active;
-
- invoice->billto = gncCloneOwner (&from->billto, book);
- invoice->owner = gncCloneOwner (&from->owner, book);
- invoice->job = (GncJob*)gncJobObtainTwin (from->job, book);
- invoice->terms = gncBillTermObtainTwin (from->terms, book);
- gncBillTermIncRef (invoice->terms);
-
-
- invoice->to_charge_amount = from->to_charge_amount;
- invoice->printname = NULL; /* that's right, NULL. See below. */
- invoice->date_opened = from->date_opened;
- invoice->date_posted = from->date_posted;
-
- invoice->currency = gnc_commodity_obtain_twin (from->currency, book);
-
- invoice->entries = NULL;
- for (node = g_list_last(from->entries); node; node = node->next)
- {
- GncEntry *entry = node->data;
- entry = gncEntryObtainTwin (entry, book);
- invoice->entries = g_list_prepend (invoice->entries, entry);
- }
-
- invoice->prices = NULL;
- for (node = g_list_last(from->prices); node; node = node->next)
- {
- GNCPrice *price = node->data;
- price = gnc_price_clone(price, book);
- invoice->prices = g_list_prepend (invoice->prices, price);
- }
-
- /* XXX should probably be obtain-twin not lookup-twin */
- invoice->posted_acc =
- GNC_ACCOUNT(qof_instance_lookup_twin(QOF_INSTANCE(from->posted_acc), book));
-#if 0
- XXX not done * /
- Transaction * posted_txn;
- GNCLot * posted_lot;
-#endif
-
- qof_event_gen (&invoice->inst, QOF_EVENT_CREATE, NULL);
-
- return invoice;
-}
-
-GncInvoice *
-gncInvoiceObtainTwin (GncInvoice *from, QofBook *book)
-{
- GncInvoice *invoice;
- if (!book) return NULL;
-
- invoice = (GncInvoice *) qof_instance_lookup_twin (QOF_INSTANCE(from), book);
- if (!invoice)
- {
- invoice = gncCloneInvoice (from, book);
- }
-
- return invoice;
-}
-
/* ================================================================== */
/* Set Functions */
Modified: gnucash/trunk/src/engine/gncInvoiceP.h
===================================================================
--- gnucash/trunk/src/engine/gncInvoiceP.h 2011-08-21 19:42:55 UTC (rev 21202)
+++ gnucash/trunk/src/engine/gncInvoiceP.h 2011-08-22 03:58:10 UTC (rev 21203)
@@ -41,28 +41,5 @@
void gncInvoiceSetPostedLot (GncInvoice *invoice, GNCLot *lot);
void gncInvoiceSetPaidTxn (GncInvoice *invoice, Transaction *txn);
-
-/** The gncCloneInvoice() routine makes a copy of the indicated
- * invoice, placing it in the indicated book. It copies
- * the name, description, type, due-days, discount, etc.
- * It also copies (as needed) both parents and children, so that
- * the parent-child relationship is correctly mirrored in the
- * clone.
- * It then adds a pair of 'gemini' kvp pointers so that each copy
- * can be found from the other.
- */
-
-GncInvoice * gncCloneInvoice (GncInvoice *from, QofBook *);
-
-/** The gncInvoiceObtainTwin() will find the 'twin' of the
- * indicated invoice in the indicated book. If the twin doesn't
- * yet exist in the book, it will be created (by calling
- * gncCloneInvoice()) and placed into the book.
- *
- * We called this routine 'Obtain' instead of "Get" to distinguish
- * it from the other Get routines, which work in fundamentally
- * different ways.
- */
-GncInvoice * gncInvoiceObtainTwin (GncInvoice *from, QofBook *book);
#define gncInvoiceSetGUID(I,G) qof_instance_set_guid(QOF_INSTANCE(I),(G))
#endif /* GNC_INVOICEP_H_ */
Modified: gnucash/trunk/src/engine/gncJob.c
===================================================================
--- gnucash/trunk/src/engine/gncJob.c 2011-08-21 19:42:55 UTC (rev 21202)
+++ gnucash/trunk/src/engine/gncJob.c 2011-08-22 03:58:10 UTC (rev 21203)
@@ -199,29 +199,6 @@
return job;
}
-GncJob *
-gncCloneJob (GncJob *from, QofBook *book)
-{
- GncJob *job;
-
- if (!book) return NULL;
-
- job = g_object_new (GNC_TYPE_JOB, NULL);
- qof_instance_init_data (&job->inst, _GNC_MOD_NAME, book);
- qof_instance_gemini (&job->inst, &from->inst);
-
- job->id = CACHE_INSERT (from->id);
- job->name = CACHE_INSERT (from->name);
- job->desc = CACHE_INSERT (from->desc);
- job->active = from->active;
-
- job->owner = gncCloneOwner(&from->owner, book);
-
- qof_event_gen (&job->inst, QOF_EVENT_CREATE, NULL);
-
- return job;
-}
-
void gncJobDestroy (GncJob *job)
{
if (!job) return;
@@ -255,20 +232,7 @@
g_object_unref (job);
}
-GncJob *
-gncJobObtainTwin (GncJob *from, QofBook *book)
-{
- GncJob *job;
- if (!from) return NULL;
- job = (GncJob *) qof_instance_lookup_twin (QOF_INSTANCE(from), book);
- if (!job)
- {
- job = gncCloneJob (from, book);
- }
- return job;
-}
-
/* ================================================================== */
/* Set Functions */
Modified: gnucash/trunk/src/engine/gncJobP.h
===================================================================
--- gnucash/trunk/src/engine/gncJobP.h 2011-08-21 19:42:55 UTC (rev 21202)
+++ gnucash/trunk/src/engine/gncJobP.h 2011-08-22 03:58:10 UTC (rev 21203)
@@ -34,25 +34,6 @@
gboolean gncJobRegister (void);
gchar *gncJobNextID (QofBook *book);
-/** The gncCloneTaxTable() routine makes a copy of the indicated
- * tax table, placing it in the indicated book. It copies
- * the id, name description and owner.
- * It then adds a pair of 'gemini' kvp pointers so that each copy
- * can be found from the other.
- */
-GncJob * gncCloneJob (GncJob *from, QofBook *book);
-
-/** The gncJobObtainTwin() will find the 'twin' of the
- * indicated job in the indicated book. If the twin doesn't
- * yet exist in the book, it will be created (by calling
- * gncCloneJob()) and placed into the book.
- *
- * We called this routine 'Obtain' instead of "Get" to distinguish
- * it from the other Get routines, which work in fundamentally
- * different ways.
- */
-GncJob * gncJobObtainTwin (GncJob *from, QofBook *book);
-
#define gncJobSetGUID(E,G) qof_instance_set_guid(QOF_INSTANCE(E),(G))
#endif /* GNC_JOBP_H_ */
Modified: gnucash/trunk/src/engine/gncOrder.c
===================================================================
--- gnucash/trunk/src/engine/gncOrder.c 2011-08-21 19:42:55 UTC (rev 21202)
+++ gnucash/trunk/src/engine/gncOrder.c 2011-08-22 03:58:10 UTC (rev 21203)
@@ -236,57 +236,6 @@
g_object_unref (order);
}
-GncOrder *
-gncCloneOrder (GncOrder *from, QofBook *book)
-{
- GList *node;
- GncOrder *order;
-
- if (!book) return NULL;
-
- order = g_object_new (GNC_TYPE_ORDER, NULL);
- qof_instance_init_data (&order->inst, _GNC_MOD_NAME, book);
- qof_instance_gemini (&order->inst, &from->inst);
-
- order->id = CACHE_INSERT (from->id);
- order->notes = CACHE_INSERT (from->notes);
- order->reference = CACHE_INSERT (from->reference);
-
- order->active = from->active;
- order->printname = NULL; /* yes, null, that's right */
- order->opened = from->opened;
- order->closed = from->closed;
-
- order->owner = gncCloneOwner (&from->owner, book);
-
- order->entries = NULL;
- for (node = g_list_last(from->entries); node; node = node->prev)
- {
- GncEntry *entry = node->data;
- entry = gncEntryObtainTwin (entry, book);
- order->entries = g_list_prepend (order->entries, entry);
- }
-
- qof_event_gen (&order->inst, QOF_EVENT_CREATE, NULL);
-
- return order;
-}
-
-GncOrder *
-gncOrderObtainTwin (GncOrder *from, QofBook *book)
-{
- GncOrder *order;
- if (!book) return NULL;
-
- order = (GncOrder *) qof_instance_lookup_twin (QOF_INSTANCE(from), book);
- if (!order)
- {
- order = gncCloneOrder (from, book);
- }
-
- return order;
-}
-
/* =============================================================== */
/* Set Functions */
Modified: gnucash/trunk/src/engine/gncOrderP.h
===================================================================
--- gnucash/trunk/src/engine/gncOrderP.h 2011-08-21 19:42:55 UTC (rev 21202)
+++ gnucash/trunk/src/engine/gncOrderP.h 2011-08-22 03:58:10 UTC (rev 21203)
@@ -34,26 +34,6 @@
gboolean gncOrderRegister (void);
gchar *gncOrderNextID (QofBook *book);
-/** The gncCloneOrder() routine makes a copy of the indicated
- * order, placing it in the indicated book. It copies
- * the id, notes, reference, etc.
- * It then adds a pair of 'gemini' kvp pointers so that each copy
- * can be found from the other.
- */
-
-GncOrder * gncCloneOrder (GncOrder *from, QofBook *);
-
-/** The gncOrderObtainTwin() will find the 'twin' of the
- * indicated order in the indicated book. If the twin doesn't
- * yet exist in the book, it will be created (by calling
- * gncCloneOrder()) and placed into the book.
- *
- * We called this routine 'Obtain' instead of "Get" to distinguish
- * it from the other Get routines, which work in fundamentally
- * different ways.
- */
-GncOrder * gncOrderObtainTwin (GncOrder *from, QofBook *book);
-
#define gncOrderSetGUID(O,G) qof_instance_set_guid(QOF_INSTANCE(O),(G))
#endif /* GNC_ORDERP_H_ */
Modified: gnucash/trunk/src/engine/gncOwner.c
===================================================================
--- gnucash/trunk/src/engine/gncOwner.c 2011-08-21 19:42:55 UTC (rev 21202)
+++ gnucash/trunk/src/engine/gncOwner.c 2011-08-22 03:58:10 UTC (rev 21203)
@@ -378,36 +378,6 @@
memcpy (dest, src, sizeof (*dest));
}
-GncOwner
-gncCloneOwner (const GncOwner *from, QofBook *book)
-{
- GncOwner owner = { GNC_OWNER_NONE };
- if (!from) return owner;
- owner.type = from->type;
- switch (from->type)
- {
- case GNC_OWNER_NONE:
- return owner;
- case GNC_OWNER_UNDEFINED:
- owner.owner.undefined = from->owner.undefined; /* XXX probably wrong ! */
- return owner;
- case GNC_OWNER_CUSTOMER:
- owner.owner.customer = gncCustomerObtainTwin (from->owner.customer, book);
- return owner;
- case GNC_OWNER_JOB:
- owner.owner.job = gncJobObtainTwin (from->owner.job, book);
- return owner;
- case GNC_OWNER_VENDOR:
- owner.owner.vendor = gncVendorObtainTwin (from->owner.vendor, book);
- return owner;
- case GNC_OWNER_EMPLOYEE:
- owner.owner.employee = gncEmployeeObtainTwin (from->owner.employee, book);
- return owner;
- default:
- return owner;
- }
-}
-
gboolean gncOwnerEqual (const GncOwner *a, const GncOwner *b)
{
if (!a || !b) return FALSE;
Modified: gnucash/trunk/src/engine/gncOwnerP.h
===================================================================
--- gnucash/trunk/src/engine/gncOwnerP.h 2011-08-21 19:42:55 UTC (rev 21202)
+++ gnucash/trunk/src/engine/gncOwnerP.h 2011-08-22 03:58:10 UTC (rev 21203)
@@ -32,9 +32,5 @@
gboolean gncOwnerRegister (void);
-/** The gncCloneOwner() routine makes a copy of the indicated
- * owner union structure.
- */
-GncOwner gncCloneOwner (const GncOwner *from, QofBook *);
#endif /* GNC_OWNERP_H_ */
Modified: gnucash/trunk/src/engine/gncTaxTable.c
===================================================================
--- gnucash/trunk/src/engine/gncTaxTable.c 2011-08-21 19:42:55 UTC (rev 21202)
+++ gnucash/trunk/src/engine/gncTaxTable.c 2011-08-22 03:58:10 UTC (rev 21203)
@@ -66,8 +66,6 @@
GList * tables; /* visible tables */
};
-static GncTaxTableEntry * CloneTaxEntry (const GncTaxTableEntry*, QofBook *);
-
static QofLogModule log_module = GNC_MOD_BUSINESS;
/* =============================================================== */
@@ -379,73 +377,6 @@
return table;
}
-
-GncTaxTable *
-gncCloneTaxTable (GncTaxTable *from, QofBook *book)
-{
- GList *node;
- GncTaxTable *table;
- if (!book) return NULL;
-
- table = g_object_new (GNC_TYPE_TAXTABLE, NULL);
- qof_instance_init_data (&table->inst, _GNC_MOD_NAME, book);
- qof_instance_gemini (&table->inst, &from->inst);
-
- table->name = CACHE_INSERT (from->name);
- table->modtime = from->modtime;
- table->invisible = from->invisible;
-
- table->refcount = 0;
-
- /* Make copies of parents and children. Note that this can be
- * a recursive copy ... treat as doubly-linked list. */
- if (from->child)
- {
- table->child = gncTaxTableObtainTwin (from->child, book);
- table->child->parent = table;
- }
- if (from->parent)
- {
- table->parent = gncTaxTableObtainTwin (from->parent, book);
- table->parent->child = table;
- }
- for (node = g_list_last(from->children); node; node = node->next)
- {
- GncTaxTable *tbl = node->data;
- tbl = gncTaxTableObtainTwin (tbl, book);
- tbl->parent = table;
- table->children = g_list_prepend(table->children, tbl);
- }
-
- /* Copy tax entries, preserving the order in the list */
- table->entries = NULL;
- for (node = g_list_last(from->entries); node; node = node->prev)
- {
- GncTaxTableEntry *ent = node->data;
- ent = CloneTaxEntry (ent, book);
- table->entries = g_list_prepend (table->entries, ent);
- }
-
- addObj (table);
- qof_event_gen (&table->inst, QOF_EVENT_CREATE, NULL);
- return table;
-}
-
-GncTaxTable *
-gncTaxTableObtainTwin (const GncTaxTable *from, QofBook *book)
-{
- GncTaxTable *table;
- if (!from) return NULL;
-
- table = (GncTaxTable *) qof_instance_lookup_twin (QOF_INSTANCE(from), book);
- if (!table)
- {
- table = gncCloneTaxTable (table, book);
- }
- return table;
-}
-
-
void
gncTaxTableDestroy (GncTaxTable *table)
{
@@ -507,25 +438,6 @@
g_free (entry);
}
-/** Makes a clone. The account is from the appriate book.
- * Note that the table is left blank (for performance reasons
- * we set it above, when cloning the table).
- */
-static GncTaxTableEntry *
-CloneTaxEntry (const GncTaxTableEntry*from, QofBook *book)
-{
- QofInstance *acc;
- GncTaxTableEntry *entry;
- entry = g_new0 (GncTaxTableEntry, 1);
-
- entry->type = from->type;
- entry->amount = from->amount;
-
- acc = qof_instance_lookup_twin (QOF_INSTANCE(from->account), book);
- entry->account = (Account *) acc;
- return entry;
-}
-
/* =============================================================== */
/* Set Functions */
Modified: gnucash/trunk/src/engine/gncTaxTableP.h
===================================================================
--- gnucash/trunk/src/engine/gncTaxTableP.h 2011-08-21 19:42:55 UTC (rev 21202)
+++ gnucash/trunk/src/engine/gncTaxTableP.h 2011-08-22 03:58:10 UTC (rev 21203)
@@ -40,29 +40,6 @@
gboolean gncTaxTableGetInvisible (const GncTaxTable *table);
-/** The gncCloneTaxTable() routine makes a copy of the indicated
- * tax table, placing it in the indicated book. It copies
- * the tax table name and list of entries.
- * It also copies (as needed) both parents and children, so that
- * the parent-child relationship is correctly mirrored in the
- * clone.
- * XXX the refcount is mis-handled. This needs fixin....
- * It then adds a pair of 'gemini' kvp pointers so that each copy
- * can be found from the other.
- */
-GncTaxTable * gncCloneTaxTable (GncTaxTable *from, QofBook *book);
-
-/** The gncTaxTableObtainTwin() will find the 'twin' of the
- * indicated tax table in the indicated book. If the twin doesn't
- * yet exist in the book, it will be created (by calling
- * gncCloneTaxTable()) and placed into the book.
- *
- * We called this routine 'Obtain' instead of "Get" to distinguish
- * it from the other Get routines, which work in fundamentally
- * different ways.
- */
-GncTaxTable * gncTaxTableObtainTwin (const GncTaxTable *from, QofBook *book);
-
GncTaxTable* gncTaxTableEntryGetTable( const GncTaxTableEntry* entry );
#define gncTaxTableSetGUID(E,G) qof_instance_set_guid(QOF_INSTANCE(E),(G))
Modified: gnucash/trunk/src/engine/gncVendor.c
===================================================================
--- gnucash/trunk/src/engine/gncVendor.c 2011-08-21 19:42:55 UTC (rev 21202)
+++ gnucash/trunk/src/engine/gncVendor.c 2011-08-22 03:58:10 UTC (rev 21203)
@@ -288,63 +288,6 @@
g_object_unref (vendor);
}
-/** Create a copy of a vendor, placing the copy into a new book. */
-GncVendor *
-gncCloneVendor (GncVendor *from, QofBook *book)
-{
- GList *node;
- GncVendor *vendor;
-
- if (!book) return NULL;
-
- vendor = g_object_new (GNC_TYPE_VENDOR, NULL);
- qof_instance_init_data (&vendor->inst, _GNC_MOD_NAME, book);
- qof_instance_gemini (&vendor->inst, &from->inst);
-
- vendor->id = CACHE_INSERT (from->id);
- vendor->name = CACHE_INSERT (from->name);
- vendor->notes = CACHE_INSERT (from->notes);
- vendor->addr = gncCloneAddress (from->addr, &vendor->inst, book);
- vendor->taxincluded = from->taxincluded;
- vendor->taxtable_override = from->taxtable_override;
- vendor->active = from->active;
-
- vendor->terms = gncBillTermObtainTwin (from->terms, book);
- gncBillTermIncRef (vendor->terms);
-
- vendor->currency = gnc_commodity_obtain_twin (from->currency, book);
-
- vendor->taxtable = gncTaxTableObtainTwin (from->taxtable, book);
- gncTaxTableIncRef (vendor->taxtable);
-
- vendor->jobs = NULL;
- for (node = g_list_last(from->jobs); node; node = node->prev)
- {
- GncJob *job = node->data;
- job = gncJobObtainTwin (job, book);
- vendor->jobs = g_list_prepend(vendor->jobs, job);
- }
-
- qof_event_gen (&vendor->inst, QOF_EVENT_CREATE, NULL);
-
- return vendor;
-}
-
-GncVendor *
-gncVendorObtainTwin (GncVendor *from, QofBook *book)
-{
- GncVendor *vendor;
- if (!book) return NULL;
-
- vendor = (GncVendor *) qof_instance_lookup_twin (QOF_INSTANCE(from), book);
- if (!vendor)
- {
- vendor = gncCloneVendor (from, book);
- }
-
- return vendor;
-}
-
/* ============================================================== */
/* Set Functions */
Modified: gnucash/trunk/src/engine/gncVendorP.h
===================================================================
--- gnucash/trunk/src/engine/gncVendorP.h 2011-08-21 19:42:55 UTC (rev 21202)
+++ gnucash/trunk/src/engine/gncVendorP.h 2011-08-22 03:58:10 UTC (rev 21203)
@@ -33,25 +33,6 @@
gboolean gncVendorRegister (void);
gchar *gncVendorNextID (QofBook *book);
-/** The gncCloneVendor() routine makes a copy of the indicated
- * vendor, placing it in the indicated book. It copies
- * the name, notes, address, etc.
- * It then adds a pair of 'gemini' kvp pointers so that each copy
- * can be found from the other.
- */
-
-GncVendor * gncCloneVendor (GncVendor *from, QofBook *);
-
-/** The gncVendorObtainTwin() will find the 'twin' of the
- * indicated vendor in the indicated book. If the twin doesn't
- * yet exist in the book, it will be created (by calling
- * gncCloneVendor()) and placed into the book.
- *
- * We called this routine 'Obtain' instead of "Get" to distinguish
- * it from the other Get routines, which work in fundamentally
- * different ways.
- */
-GncVendor * gncVendorObtainTwin (GncVendor *from, QofBook *book);
#define gncVendorSetGUID(V,G) qof_instance_set_guid(QOF_INSTANCE(V),(G))
Modified: gnucash/trunk/src/libqof/qof/qofinstance.c
===================================================================
--- gnucash/trunk/src/libqof/qof/qofinstance.c 2011-08-21 19:42:55 UTC (rev 21202)
+++ gnucash/trunk/src/libqof/qof/qofinstance.c 2011-08-22 03:58:10 UTC (rev 21203)
@@ -815,64 +815,6 @@
/* ========================================================== */
-void
-qof_instance_gemini (QofInstance *to, const QofInstance *from)
-{
- QofInstancePrivate *from_priv, *to_priv, *fb_priv, *tb_priv;
- time_t now;
-
- g_return_if_fail(QOF_IS_INSTANCE(to));
- g_return_if_fail(QOF_IS_INSTANCE(from));
-
- from_priv = GET_PRIVATE(from);
- to_priv = GET_PRIVATE(to);
- fb_priv = GET_PRIVATE(from_priv->book);
- tb_priv = GET_PRIVATE(to_priv->book);
-
- /* Books must differ for a gemini to be meaningful */
- if (from_priv->book == to_priv->book)
- return;
-
- now = time(0);
-
- /* Make a note of where the copy came from */
- gnc_kvp_bag_add (to->kvp_data, "gemini", now,
- "inst_guid", &from_priv->guid,
- "book_guid", &fb_priv->guid,
- NULL);
- gnc_kvp_bag_add (from->kvp_data, "gemini", now,
- "inst_guid", &to_priv->guid,
- "book_guid", &tb_priv->guid,
- NULL);
-
- to_priv->dirty = TRUE;
-}
-
-QofInstance *
-qof_instance_lookup_twin (const QofInstance *src, QofBook *target_book)
-{
- QofCollection *col;
- KvpFrame *fr;
- GncGUID * twin_guid;
- QofInstance * twin;
- QofInstancePrivate *bpriv;
-
- if (!src || !target_book) return NULL;
- ENTER (" ");
-
- bpriv = GET_PRIVATE(QOF_INSTANCE(target_book));
- fr = gnc_kvp_bag_find_by_guid (src->kvp_data, "gemini",
- "book_guid", &bpriv->guid);
-
- twin_guid = kvp_frame_get_guid (fr, "inst_guid");
-
- col = qof_book_get_collection (target_book, src->e_type);
- twin = (QofInstance *) qof_collection_lookup_entity (col, twin_guid);
-
- LEAVE (" found twin=%p", twin);
- return twin;
-}
-
/* Returns a displayable name to represent this object */
gchar* qof_instance_get_display_name(const QofInstance* inst)
{
Modified: gnucash/trunk/src/libqof/qof/qofinstance.h
===================================================================
--- gnucash/trunk/src/libqof/qof/qofinstance.h 2011-08-21 19:42:55 UTC (rev 21202)
+++ gnucash/trunk/src/libqof/qof/qofinstance.h 2011-08-22 03:58:10 UTC (rev 21203)
@@ -225,33 +225,6 @@
guint32 qof_instance_get_idata (gconstpointer inst);
void qof_instance_set_idata(gpointer inst, guint32 idata);
-/** Pair things up. This routine inserts a kvp value into each instance
- * containing the guid of the other. In this way, if one has one of the
- * pair, one can always find the other by looking up it's guid. Typically,
- * you will want to use qof_instance_lookup_twin() to find the twin.
- * (The current implementation assumes the two instances belong to different
- * books, and will not add gemini kvp's unless the books differ. Note that
- * the gemini kvp includes the book guid as well, so that the right book can
- * be found.
- */
-void qof_instance_gemini (QofInstance *to, const QofInstance *from);
-
-/** The qof_instance_lookup_twin() routine will find the "twin" of this
- * instance 'src' in the given other 'book' (if the twin exists).
- *
- * When instances are gemini'ed or cloned, both of the pair are marked
- * with the guid of their copy, thus allowing the sibling-copy of
- * an instance to be found. Since the sibling may end up in a
- * different book, we need a way of finding it, given only that we
- * know the book, and that we know its twin.
- *
- * That's what this routine does. Given some book 'book', and an
- * instance 'src', it will find the sibling instance of 'src' that is
- * in 'book', and return it. If not found, it returns NULL. This
- * routine uses the 'gemini' kvp values to do its work.
- */
-QofInstance * qof_instance_lookup_twin (const QofInstance *src, QofBook *book);
-
/**
* Returns a displayable name for this object. The returned string must be freed by the caller.
*/
Modified: gnucash/trunk/src/libqof/qof/test/test-qofinstance.c
===================================================================
--- gnucash/trunk/src/libqof/qof/test/test-qofinstance.c 2011-08-21 19:42:55 UTC (rev 21202)
+++ gnucash/trunk/src/libqof/qof/test/test-qofinstance.c 2011-08-22 03:58:10 UTC (rev 21203)
@@ -357,44 +357,6 @@
qof_collection_destroy( col );
}
-static void
-test_instance_gemini_and_lookup( void )
-{
- QofBook *to_book, *from_book;
- KvpFrame *to_book_frame, *from_book_frame;
-
- /* setup books */
- to_book = qof_book_new();
- from_book = qof_book_new();
- g_assert( QOF_IS_BOOK( to_book ) );
- g_assert( QOF_IS_BOOK( from_book ) );
- g_assert( to_book != from_book );
- g_assert( to_book == qof_instance_get_book( QOF_INSTANCE( to_book ) ) );
- g_assert( from_book == qof_instance_get_book( QOF_INSTANCE( from_book ) ) );
-
- g_test_message( "Test instances lookup has instance and book null protection" );
- g_assert( qof_instance_lookup_twin( NULL, from_book ) == NULL );
- g_assert( qof_instance_lookup_twin( QOF_INSTANCE( from_book ), NULL ) == NULL );
-
- g_test_message( "Test instances lookup which are not geminis should return null" );
- g_assert( qof_instance_lookup_twin( QOF_INSTANCE( to_book ), from_book ) == NULL );
- g_assert( qof_instance_lookup_twin( QOF_INSTANCE( from_book ), to_book ) == NULL );
-
- g_test_message( "Test instances with the same book are not paired" );
- qof_instance_gemini (&to_book->inst, (QofInstance *) &to_book->inst);
- g_assert( qof_instance_lookup_twin( QOF_INSTANCE( to_book ), to_book ) == NULL );
- g_assert( qof_instance_lookup_twin( QOF_INSTANCE( from_book ), from_book ) == NULL );
-
- g_test_message( "Test instances with different books are paired" );
- qof_instance_gemini (&to_book->inst, (QofInstance *) &from_book->inst);
- g_assert( qof_instance_lookup_twin( QOF_INSTANCE( to_book ), from_book ) == &from_book->inst );
- g_assert( qof_instance_lookup_twin( QOF_INSTANCE( from_book ), to_book ) == &to_book->inst );
-
- /* destroy books */
- qof_book_destroy( to_book );
- qof_book_destroy( from_book );
-}
-
/* mock display name function */
static gchar*
mock_get_display_name(const QofInstance* inst)
@@ -1068,7 +1030,6 @@
GNC_TEST_ADD( suitename, "get set slots", Fixture, NULL, setup, test_instance_get_set_slots, teardown );
GNC_TEST_ADD_FUNC( suitename, "version compare", test_instance_version_cmp );
GNC_TEST_ADD( suitename, "get set dirty", Fixture, NULL, setup, test_instance_get_set_dirty, teardown );
- GNC_TEST_ADD_FUNC( suitename, "gemini creation and lookup", test_instance_gemini_and_lookup );
GNC_TEST_ADD( suitename, "display name", Fixture, NULL, setup, test_instance_display_name, teardown );
GNC_TEST_ADD( suitename, "begin edit", Fixture, NULL, setup, test_instance_begin_edit, teardown );
GNC_TEST_ADD( suitename, "commit edit", Fixture, NULL, setup, test_instance_commit_edit, teardown );
More information about the gnucash-changes
mailing list