Source
377
377
/* Point at correct offset in header for the filter information */
378
378
p = buf + filter_info_off;
379
379
380
380
/* Decode the size of a filtered root direct block */
381
381
H5F_DECODE_LENGTH(udata->f, p, hdr->pline_root_direct_size);
382
382
383
383
/* Decode the filter mask for a filtered root direct block */
384
384
UINT32DECODE(p, hdr->pline_root_direct_filter_mask);
385
385
386
386
/* Decode I/O filter information */
387
-
if(NULL == (pline = (H5O_pline_t *)H5O_msg_decode(hdr->f, udata->dxpl_id, NULL, H5O_PLINE_ID, len, image)))
387
+
if(NULL == (pline = (H5O_pline_t *)H5O_msg_decode(hdr->f, udata->dxpl_id, NULL, H5O_PLINE_ID, hdr->filter_len, p)))
388
388
HGOTO_ERROR(H5E_HEAP, H5E_CANTDECODE, NULL, "can't decode I/O pipeline filters")
389
389
p += hdr->filter_len;
390
390
391
391
/* Copy the information into the header's I/O pipeline structure */
392
392
if(NULL == H5O_msg_copy(H5O_PLINE_ID, pline, &(hdr->pline)))
393
393
HGOTO_ERROR(H5E_HEAP, H5E_CANTCOPY, NULL, "can't copy I/O filter pipeline")
394
394
395
395
/* Release the space allocated for the I/O pipeline filters */
396
396
H5O_msg_free(H5O_PLINE_ID, pline);
397
397
} /* end if */