It seems that recently we switched from storing our configuration in a std::map to an unordered_set or something equivalent. Most likely this has some good size and performance characteristics - so we want to keep it that way =)
Unfortunately - it also introduces non-determinism when writing the the instdir/user/registrymodifications.xcu (run an xmllint --format on that before and after a load and exit to see the difference ;-).
This is not ideal =) Luckily writing that is done asynchronously in its own thread - so we can use plenty of CPU there.
It would be great to hack:
To tackle this sort of iteration (there are several of these in there):
for (NodeMap::const_iterator i(node->getMembers().begin());
i != node->getMembers().end(); ++i)
And to instead have a local function that builds a new sorted vector of the nodes we want to write. Then if ~nothing changes in the config we can see what did change.
Thanks ! =)
(In reply to Michael Meeks from comment #0)
> And to instead have a local function that builds a new sorted vector of the
> nodes we want to write. Then if ~nothing changes in the config we can see
> what did change.
As each <item> is written to an individual line,
diff <(sort registrymodifications.xcu-old) <(sort registrymodifications.xcu-new)
should show that difference reasonably well, too.
Migrating Whiteboard tags to Keywords: (easyHack, difficultyBeginner, skillCpp, topicCleanup)
closing as WONTFIX based on the (IMO sufficient?) workaround in comment 2
Remove LibreOffice Dev List from CC on EasyHacks
(curtailing excessive email to list)