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:
M. Scot Breitenfeld
2026-08-18 17:19:31 -05:00
parent f9d339f082
commit e28d1a368f
+4 -4
View File
@@ -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)