On Sat, May 06, 2006 at 02:01:16AM -0400, David Hampton wrote: > Modified: gnucash/trunk/lib/libqof/qof/qofutil.c > =================================================================== > --- gnucash/trunk/lib/libqof/qof/qofutil.c 2006-05-06 01:27:40 UTC (rev > 13925) > +++ gnucash/trunk/lib/libqof/qof/qofutil.c 2006-05-06 06:01:14 UTC (rev > 13926) > @@ -269,6 +269,7 @@ > void (*on_free)(QofInstance *)) > { > QofBackend * be; > + gboolean dirty = inst->dirty; > > /* See if there's a backend. If there is, invoke it. */ > be = qof_book_get_backend(inst->book); > @@ -300,6 +301,9 @@ > on_free(inst); > return TRUE; > } > + > + if (dirty && qof_get_alt_dirty_mode()) > + qof_collection_mark_dirty(inst->entity.collection); > if (on_done) > on_done(inst); > return TRUE;
Why is this after the "on_free" case? Deleting an object will result in calling qof_commit_edit_part2() with do_free set, so this qof_collection_mark_dirty() will never be reached. So, if the collection isn't marked dirty on committing a deleted object, and if the freeing functions, which call qof_instance_release(), which calls qof_entity_release(), which calls qof_collection_remove() also no longer dirties the collections, then I don't see how the book would be dirtied when an object is deleted. Somehow, sometime, deleting an object needs to result in a dirty book, even though it contain collections of only clean instances (entities). -chris _______________________________________________ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel