Fix memory leak in radTSend::OutRelaxResultsInfo #3
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.
TotOutArray
was not properly deallocated. This PR changes the code to usestd::vector
, which is a more idiomatic way to handle dynamically sized arrays, and it automatically manages the memory.If the memory allocation fails, an exception is thrown. (But: C++ code is almost always written with the assumption that memory allocations do not fail. It is very hard to write programs that use dynamic memory allocation and that work when memory allocations fail. It is more common to avoid dynamic memory allocation altogether if that is a concern.)
The
.resize()
call will zero-initialize the vector, which carries a performance penalty. This performance penalty will be tiny if the vector is small enough to fit on a cache page aka 4K. If you worry about this, it is possible to useunique_ptr
instead ofvector
.I found this with Address Sanitizer. The change removes the warning and seems to work. The change is tested on Linux/Clang only.