Bugfix: completed transformed-data read requests and VARCHUNK data buffers of returned de-transformed data are now properly freed cleaned up at the correct time during chunked reads. Previously, completed read reqests were freed immediately upon completion, invalidating the last varchunk returned to the user. Also, previous varchunk data buffers lent to the user were only freed upon a new varchunk arriving, leaving the last varchunk unfreed even if the first bug were fixed. Now, cleanup is done immediatly after any check_reads, including the final call that returns 0.
Added comments and removed extra newlines in some places
Refactored datablock patching code again, making handling of different selection type combinations more robust, and breaking the code into subroutines
Now properly handling the data buffer from returned VARCHUNKs. Previously, we were keeping the actual ADIOS_VARCHUNK returned to the user, and freeing its buffer later. However, this is erroneous, as the user may (and is expected to) free the ADIOS_VARCHUNK. Instead, we now simply keep a pointer to the buffer itself.
fixup! Bugfix: ADIOS_VARCHUNKs returned by Transform layer should now have their from_steps/nsteps fields set properly