mirror of
https://github.com/HDFGroup/hdf5.git
synced 2026-09-25 04:09:44 +03:00
Fix H5Z_pipeline type mismatch introduced by the develop merge
upstream/develop added an internal-vs-external filter fast path to H5Z_pipeline (skip user-callback prep for id < H5Z_FILTER_RESERVED), written against fclass as H5Z_class2_t *. On this branch fclass in that function is H5Z_entry_t * (the class3 wrapper with H5Z_class2_t embedded as .base, per the comment in H5Zprivate.h), so fclass->id and fclass->filter don't exist as direct members. The merge auto-resolved textually without a conflict marker, since develop's addition didn't overlap the two hunks that did conflict (the filter2/base.filter dispatch), so this went undetected until the build failed. Qualified both occurrences as fclass->base.id / fclass->base.filter to match the embedded-first layout; verified with a full rebuild and the existing test suite.
This commit is contained in:
@@ -1657,9 +1657,9 @@ H5Z_pipeline(const H5O_pline_t *pline, unsigned flags, hid_t dxpl_id, const hsiz
|
||||
|
||||
{
|
||||
/* Don't prepare for a user callback if this is an internal filter */
|
||||
if (fclass->id < H5Z_FILTER_RESERVED)
|
||||
if (fclass->base.id < H5Z_FILTER_RESERVED)
|
||||
/* Invoke main "filter" callback */
|
||||
new_nbytes = (fclass->filter)(tmp_flags, pline->filter[idx].cd_nelmts, pline->filter[idx].cd_values, *nbytes, buf_size, buf);
|
||||
new_nbytes = (fclass->base.filter)(tmp_flags, pline->filter[idx].cd_nelmts, pline->filter[idx].cd_values, *nbytes, buf_size, buf);
|
||||
else {
|
||||
/* Prepare & restore library for user callback */
|
||||
H5_BEFORE_USER_CB(FAIL)
|
||||
@@ -1751,9 +1751,9 @@ H5Z_pipeline(const H5O_pline_t *pline, unsigned flags, hid_t dxpl_id, const hsiz
|
||||
|
||||
{
|
||||
/* Don't prepare for a user callback if this is an internal filter */
|
||||
if (fclass->id < H5Z_FILTER_RESERVED)
|
||||
if (fclass->base.id < H5Z_FILTER_RESERVED)
|
||||
/* Invoke main "filter" callback */
|
||||
new_nbytes = (fclass->filter)(flags | (pline->filter[idx].flags), pline->filter[idx].cd_nelmts, pline->filter[idx].cd_values, *nbytes, buf_size, buf);
|
||||
new_nbytes = (fclass->base.filter)(flags | (pline->filter[idx].flags), pline->filter[idx].cd_nelmts, pline->filter[idx].cd_values, *nbytes, buf_size, buf);
|
||||
else {
|
||||
/* Prepare & restore library for user callback */
|
||||
H5_BEFORE_USER_CB(FAIL)
|
||||
|
||||
Reference in New Issue
Block a user