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.
I open this PR because I have been browsing through the code, and it often took me a while tracing the meaning of function arguments, so I wrote some comments that I thought would be interesting to share to others as doxygen comments.
Also, and more importantly, I have been adding a few const type qualifiers to input arguments passed as pointers.
There are a lot of cases where structs are passed as pointers, most often only for input (they are unmodified).
Input and output arguments passed as reference can be explained by using doxygen
@param[in]
and@param[out]
but I think a good and visual safeguard is also to qualify them as const so that the programmer and compiler both know this argument should not be modified.Adding const qualification is a recursive action that can lead to changing many sub-function calls, so there is quite some work to be done, probably each time starting from higher level functions, and necessarily recursively reworking the prototypes of the sub-functions they use.