silo_f.c: add an interface to free an option set with dbaddcaopt #244
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.
Hi @markcmiller86
I'm very pleased to open my first PR for Silo !
I hope I'm on the right branch (I took 'main').
To make it short, when using
dbaddcaopt
, one gets a memory leak. This PR is to provide a user Fortran function to remove memory before callingdbfreeoptlist
To tell the whole story, I met a puzzling bug using
dbaddiopt
: I had not realized that the DBoptlist values were pointers only, so when I called dbaddiopt(optid, DBOPT_NMATNOS, n-1), I did not realize that my smart gfortran optimal memory manager compiler decided to reuse the address of (n-1) for another purpose - which was a write(6, FMT='("hello folks")') : so my number of materials changed unexpectedly ! When I grasped what were DBoptlist values I understood there was a memory leak dbaddcaopt.And that's it !
Maybe both things (the short and the full stories) could be added to documentation, at a later time.