mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-01-30 15:32:37 +08:00
[svn-r19544] Purpose:
Patch for metadata accumulator bug Description: Linew failed one of the randomly seeded fheap tests due to a corner case bug in the metadata accumulator code. This patch fixes the corner case. Tested: used same random seed in fheap tests to reproduce and verify on linew; plus full make check on jam. unit tests for accumulator code coming soon.
This commit is contained in:
parent
b879321f24
commit
dbcf40c5a4
@ -312,12 +312,6 @@ H5F_accum_adjust(H5F_meta_accum_t *accum, H5FD_t *lf, hid_t dxpl_id,
|
||||
accum->dirty = FALSE;
|
||||
} /* end if */
|
||||
|
||||
/* Move remnant of accumulator down */
|
||||
HDmemmove(accum->buf, (accum->buf + shrink_size), remnant_size);
|
||||
|
||||
/* Adjust accumulator's location */
|
||||
accum->loc += shrink_size;
|
||||
|
||||
/* Adjust dirty region tracking info */
|
||||
accum->dirty_off -= shrink_size;
|
||||
} /* end else */
|
||||
@ -325,6 +319,15 @@ H5F_accum_adjust(H5F_meta_accum_t *accum, H5FD_t *lf, hid_t dxpl_id,
|
||||
|
||||
/* Trim the accumulator's use of its buffer */
|
||||
accum->size = remnant_size;
|
||||
|
||||
/* When appending, need to adjust location of accumulator */
|
||||
if(H5F_ACCUM_APPEND == adjust) {
|
||||
/* Move remnant of accumulator down */
|
||||
HDmemmove(accum->buf, (accum->buf + shrink_size), remnant_size);
|
||||
|
||||
/* Adjust accumulator's location */
|
||||
accum->loc += shrink_size;
|
||||
} /* end if */
|
||||
} /* end if */
|
||||
|
||||
/* Check for accumulator needing to be reallocated */
|
||||
|
Loading…
Reference in New Issue
Block a user