> On Jan 27, 2026, at 12:19, Stefan Koch <[email protected]> wrote: > > Inside qofinstance.cpp, the guid functionality is only used inside the > following four functions. Those only seem to be used by the Split.cpp (in > particular Peer splits.) The add_guid only handle the kvp frame not the list. > The others work with either. > > 1. qof_instance_kvp_add_guid --- only used in split: xaccSplitAddPeerSplit > Only does kvpframe version. > 2. qof_instance_kvp_has_guid --- Only used in split: xaccSplitIsPeerSplit > 3. qof_instance_kvp_remove_guid --- Only used in split: > xaccSplitRemovePeerSplit > 4. qof_instance_kvp_merge_guids --- Only used in xaccSplitMergePeerSplits > > > I have removed the glist parts of the other three methods, and run the full > test suite. There were no failed tests. > > I'm glad you suggested removing the glist code. I was kinda stuck on setting > up an object manually just to test the other functions. It is not worth it, > unless there is some concern that some real code is doing that. (I'm not sure > I know how to look for that, so have not.) > > I will add the glist removal to the pending pull request (after I get the > rest of qofinstance.cpp tested). >
Stefan, No test touches qof_instance_kvp_remove_guid or qof_instance_kvp_merge_guids, see https://gnucash.github.io/gnucash/Coverage-HTML/libgnucash/engine/qofinstance.cpp.gcov.html, so it doesn’t provide any assurance that my analysis is correct. I think it’s a pretty safe bet anyway given that the functions are all called from only one place. I realized in reviewing that code that it assumes that a split should have only one peer relationship at a time, and that’s not necessarily true. So I went to search in BZ to see if anyone had reported a problem with that (didn’t find any, but...) I found bugs.gnucash.org/show_bug.cgi?id=798873 <http://bugs.gnucash.org/show_bug.cgi?id=798873>, and there’s a stack trace showing the crash originates at qofinstance.cpp line 1188. The version of qofinstance.cpp in 5.0, the GnuCash version of the bug, is https://github.com/Gnucash/gnucash/blob/af02dae28684f1e31c6937dc5a30df4d0e7adb01/libgnucash/engine/qofinstance.cpp and line 1188 is the second deletion of v in qof_instance_kvp_remove_guid, so you get to claim your first bug fix! The protocol for bug fix commits is that the summary line should be a copy of the bug title, in this case "Bug 798873 - Crash when scrubbing after "undoing” changes”. Please use that for your commit. Regards, John Ralls
_______________________________________________ gnucash-devel mailing list [email protected] https://lists.gnucash.org/mailman/listinfo/gnucash-devel
