diff options
author | Neil Fortner <nfortne2@hdfgroup.org> | 2012-03-29 16:50:49 (GMT) |
---|---|---|
committer | Neil Fortner <nfortne2@hdfgroup.org> | 2012-03-29 16:50:49 (GMT) |
commit | bd26865f7d69fed1e926e6a3ec5f8653ae0eb6da (patch) | |
tree | a789868314e2af8477afe93fbd8a9849cffa6d0a /src/H5Dearray.c | |
parent | 5a722a152a68b27151bb96553b0b9cfbbc5cda4c (diff) | |
download | hdf5-bd26865f7d69fed1e926e6a3ec5f8653ae0eb6da.zip hdf5-bd26865f7d69fed1e926e6a3ec5f8653ae0eb6da.tar.gz hdf5-bd26865f7d69fed1e926e6a3ec5f8653ae0eb6da.tar.bz2 |
[svn-r22187] Purpose: Fix dsets failure on ostrich
Description:
The "support" and "unsupport" chunk index callbacks took H5D_chunk_common_ud_t
udata pointers, which seems reasonable because the udata is only needed to
locate the chunk, and does not need to return anything to the callers. However,
for v1 b-trees, H5D_btree_found must be called in order to locate the chunk, and
this function assumes that the udata is an H5D_chunk_ud_t and writes to fields
that are not in H5D_chunk_common_ud_t. Modified the support and unsupport
callbacks to take H5D_chunk_ud_t.
Note: h5watch still fails
Tested: durandal, ostrich
Diffstat (limited to 'src/H5Dearray.c')
-rw-r--r-- | src/H5Dearray.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/H5Dearray.c b/src/H5Dearray.c index 40c5c5f..215eef8 100644 --- a/src/H5Dearray.c +++ b/src/H5Dearray.c @@ -128,9 +128,9 @@ static herr_t H5D_earray_idx_size(const H5D_chk_idx_info_t *idx_info, hsize_t *size); static herr_t H5D_earray_idx_reset(H5O_storage_chunk_t *storage, hbool_t reset_addr); static herr_t H5D_earray_idx_support(const H5D_chk_idx_info_t *idx_info, - H5D_chunk_common_ud_t *udata, H5AC_info_t *child_entry); + H5D_chunk_ud_t *udata, H5AC_info_t *child_entry); static herr_t H5D_earray_idx_unsupport(const H5D_chk_idx_info_t *idx_info, - H5D_chunk_common_ud_t *udata, H5AC_info_t *child_entry); + H5D_chunk_ud_t *udata, H5AC_info_t *child_entry); static herr_t H5D_earray_idx_dump(const H5O_storage_chunk_t *storage, FILE *stream); static herr_t H5D_earray_idx_dest(const H5D_chk_idx_info_t *idx_info); @@ -1886,7 +1886,7 @@ H5D_earray_idx_reset(H5O_storage_chunk_t *storage, hbool_t reset_addr) */ static htri_t H5D_earray_idx_support(const H5D_chk_idx_info_t *idx_info, - H5D_chunk_common_ud_t *udata, H5AC_info_t *child_entry) + H5D_chunk_ud_t *udata, H5AC_info_t *child_entry) { H5EA_t *ea; /* Pointer to extensible array structure */ hsize_t idx; /* Array index of chunk */ @@ -1917,7 +1917,7 @@ H5D_earray_idx_support(const H5D_chk_idx_info_t *idx_info, unsigned ndims = (idx_info->layout->ndims - 1); /* Number of dimensions */ /* Set up the swizzled chunk coordinates */ - HDmemcpy(swizzled_coords, udata->offset, ndims * sizeof(udata->offset[0])); + HDmemcpy(swizzled_coords, udata->common.offset, ndims * sizeof(udata->common.offset[0])); H5V_swizzle_coords(hsize_t, swizzled_coords, idx_info->layout->u.earray.unlim_dim); /* Calculate the index of this chunk */ @@ -1926,7 +1926,7 @@ H5D_earray_idx_support(const H5D_chk_idx_info_t *idx_info, } /* end if */ else { /* Calculate the index of this chunk */ - if(H5V_chunk_index((idx_info->layout->ndims - 1), udata->offset, idx_info->layout->dim, idx_info->layout->down_chunks, &idx) < 0) + if(H5V_chunk_index((idx_info->layout->ndims - 1), udata->common.offset, idx_info->layout->dim, idx_info->layout->down_chunks, &idx) < 0) HGOTO_ERROR(H5E_DATASPACE, H5E_BADRANGE, FAIL, "can't get chunk index") } /* end else */ @@ -1956,7 +1956,7 @@ done: */ static herr_t H5D_earray_idx_unsupport(const H5D_chk_idx_info_t *idx_info, - H5D_chunk_common_ud_t *udata, H5AC_info_t *child_entry) + H5D_chunk_ud_t *udata, H5AC_info_t *child_entry) { H5EA_t *ea; /* Pointer to extensible array structure */ hsize_t idx; /* Array index of chunk */ @@ -1987,7 +1987,7 @@ H5D_earray_idx_unsupport(const H5D_chk_idx_info_t *idx_info, unsigned ndims = (idx_info->layout->ndims - 1); /* Number of dimensions */ /* Set up the swizzled chunk coordinates */ - HDmemcpy(swizzled_coords, udata->offset, ndims * sizeof(udata->offset[0])); + HDmemcpy(swizzled_coords, udata->common.offset, ndims * sizeof(udata->common.offset[0])); H5V_swizzle_coords(hsize_t, swizzled_coords, idx_info->layout->u.earray.unlim_dim); @@ -1997,7 +1997,7 @@ H5D_earray_idx_unsupport(const H5D_chk_idx_info_t *idx_info, } /* end if */ else { /* Calculate the index of this chunk */ - if(H5V_chunk_index((idx_info->layout->ndims - 1), udata->offset, idx_info->layout->dim, idx_info->layout->down_chunks, &idx) < 0) + if(H5V_chunk_index((idx_info->layout->ndims - 1), udata->common.offset, idx_info->layout->dim, idx_info->layout->down_chunks, &idx) < 0) HGOTO_ERROR(H5E_DATASPACE, H5E_BADRANGE, FAIL, "can't get chunk index") } /* end else */ |