r23450 - gnucash/trunk/src - Stop leaking and re-inserting Split slots

John Ralls jralls at code.gnucash.org
Wed Nov 27 19:38:58 EST 2013


Author: jralls
Date: 2013-11-27 19:38:57 -0500 (Wed, 27 Nov 2013)
New Revision: 23450
Trac: http://svn.gnucash.org/trac/changeset/23450

Modified:
   gnucash/trunk/src/backend/sql/gnc-transaction-sql.c
   gnucash/trunk/src/engine/Split.c
Log:
Stop leaking and re-inserting Split slots

Modified: gnucash/trunk/src/backend/sql/gnc-transaction-sql.c
===================================================================
--- gnucash/trunk/src/backend/sql/gnc-transaction-sql.c	2013-11-26 22:23:12 UTC (rev 23449)
+++ gnucash/trunk/src/backend/sql/gnc-transaction-sql.c	2013-11-28 00:38:57 UTC (rev 23450)
@@ -588,7 +588,7 @@
         op = OP_DB_UPDATE;
     }
     is_ok = gnc_sql_do_db_operation( be, op, SPLIT_TABLE, GNC_ID_SPLIT, inst, split_col_table );
-    if ( is_ok )
+    if ( is_ok && !qof_instance_get_destroying (inst))
     {
         is_ok = gnc_sql_slots_save( be,
                                     qof_instance_get_guid( inst ),

Modified: gnucash/trunk/src/engine/Split.c
===================================================================
--- gnucash/trunk/src/engine/Split.c	2013-11-26 22:23:12 UTC (rev 23449)
+++ gnucash/trunk/src/engine/Split.c	2013-11-28 00:38:57 UTC (rev 23450)
@@ -530,6 +530,9 @@
 
     split->date_reconciled.tv_sec = 0;
     split->date_reconciled.tv_nsec = 0;
+    if (split->inst.kvp_data)
+        kvp_frame_delete(split->inst.kvp_data);
+    split->inst.kvp_data = NULL;
 
     // Is this right?
     if (split->gains_split) split->gains_split->gains_split = NULL;



More information about the gnucash-changes mailing list