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.
Hello, this PR fixes some memory leaks so Criterion is now usable with Valgrind and AddressSanitizer.
The first commit fixes a memory leak in the handling of the
-O
/--output
arguments. I've followed the Klib documentation https://attractivechaos.github.io/klib/#Khash%3A%20generic%20hash%20table to allocate and free the key for the hash table.The second commit fixes a bug in the string conversion functions for C++. The strings are allocated using
std::malloc
, but were unallocated usingfree
, which is aliased tocr_free
, which couldn't handle unallocation properly.The third commit fixes a memory leak in new asserts API. The allocated memory was not freed when the assert succeeds. I believe it also fixes issue #501.
Last commit adds missing
cr_stream_close
in the testfailmessages.c
that also lead to a memory leak.