Fix undefined behavior in memory allocation #626
Merged
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.
Pull Request Type
Description
Currently
mem_rmalloc
usesstd::malloc
for memory allocation and the deallocation is performed inmem_free
which calls
::free
. This does seem to work but is undefined behavior because memory allocated withstd::malloc
should be freed with
std::free
not::free
.We should use either
::malloc
and::free
, orstd::malloc
andstd::free
.The
mem_malloc/mem_free
functions already use the C interface so it makes sense to letmem_rmalloc
simply callmem_malloc
instead ofstd::malloc
directly. There's also no speed difference because everything is inline or a macro.This changes the
mem_rmalloc
function to callmem_malloc
instead ofstd::malloc
to match themem_free
call.Related Issues
Screenshots (if applicable)
Checklist
Additional Comments