Add unsafe tree and list insert functions to commotiond and use where appropriate. #94
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Commotiond, for efficiency reasons, tries to avoid doing copies of data structures where possible. Therefore, the network responses to some commands are serialized directly out of the standing data structures where it stores, for instance, profile information. Unfortunately, a recent bugfix revealed that halloc is not behaving as expected, and so some of those standing data structures were getting deleted as responses were getting freed. This pull request adds unsafe versions of the tree and list insert functions, which are functionally identical other than that they don't attempt to hattach new objects to those data structures; memory management is left up to the programmer. These are now used within certain areas of daemon.c so that we can still free all response objects but still access the standing data structures with impunity without worry of freeing them by accident.
To test:
commotion help
and verify that the output is as expected.