[bugfix] I/O processing procedure: fixed bug (memory leakage) #49
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.
Description
This PR is intended to fix a bug (memory leakage) in the I/O processing procedure part of the MONIO package
Recently, debugging/profiling of the application
lfricjedi_hofx.x(OOPS class:oops::HofX4D) has been carried out by using the AddressSanitizer (ASan) tool.During this investigation, a few memory leaks have been identified.
A subset of them are associated with the I/O processing procedure part of the MONIO package.
* debugging/profiling (before)
The output of the debugging/profiling can be found here.
* solution:
The memory leaks occurs because the resources allocated for the data structure
dataFile_are not correctly deallocated at the end.The bug/issue is related with the call of the destructor of
std::unique_ptr, in particular it is related with the difference between the two methodsstd::unique_ptr::release()andstd::unique_ptr::reset().For details see here, here, and here.
* debugging/profiling (after)
The output of the debugging/profiling carried out after fixing the bug can be found here.
Issue(s) addressed
issue #48
Acceptance Criteria (Definition of Done)
All the tests pass.