summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/H5Dchunk.c14
-rw-r--r--src/H5Dpkg.h5
-rw-r--r--src/H5Olayout.c2
3 files changed, 7 insertions, 14 deletions
diff --git a/src/H5Dchunk.c b/src/H5Dchunk.c
index 4266e30..fa96aac 100644
--- a/src/H5Dchunk.c
+++ b/src/H5Dchunk.c
@@ -4290,9 +4290,8 @@ done:
herr_t
H5D_chunk_copy(H5F_t *f_src, H5O_storage_chunk_t *storage_src,
H5O_layout_chunk_t *layout_src, H5F_t *f_dst, H5O_storage_chunk_t *storage_dst,
- H5O_layout_chunk_t *layout_dst, const H5S_extent_t *ds_extent_src,
- const H5T_t *dt_src, const H5O_pline_t *pline_src,
- H5O_copy_t *cpy_info, hid_t dxpl_id)
+ const H5S_extent_t *ds_extent_src, const H5T_t *dt_src,
+ const H5O_pline_t *pline_src, H5O_copy_t *cpy_info, hid_t dxpl_id)
{
H5D_chunk_it_ud3_t udata; /* User data for iteration callback */
H5D_chk_idx_info_t idx_info_dst; /* Dest. chunked index info */
@@ -4319,10 +4318,9 @@ H5D_chunk_copy(H5F_t *f_src, H5O_storage_chunk_t *storage_src,
/* Check args */
HDassert(f_src);
- HDassert(layout_src);
HDassert(storage_src);
+ HDassert(layout_src);
HDassert(f_dst);
- HDassert(layout_dst);
HDassert(storage_dst);
HDassert(ds_extent_src);
HDassert(dt_src);
@@ -4353,10 +4351,6 @@ H5D_chunk_copy(H5F_t *f_src, H5O_storage_chunk_t *storage_src,
/* Set the source layout chunk information */
if(H5D_chunk_set_info_real(layout_src, ndims, curr_dims) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTSET, FAIL, "can't set layout's chunk info")
-
- /* Set the dest. layout chunk info also */
- if(H5D_chunk_set_info_real(layout_dst, ndims, curr_dims) < 0)
- HGOTO_ERROR(H5E_DATASET, H5E_CANTSET, FAIL, "can't set layout's chunk info")
} /* end block */
/* Compose source & dest chunked index info structs */
@@ -4369,7 +4363,7 @@ H5D_chunk_copy(H5F_t *f_src, H5O_storage_chunk_t *storage_src,
idx_info_dst.f = f_dst;
idx_info_dst.dxpl_id = dxpl_id;
idx_info_dst.pline = pline; /* Use same I/O filter pipeline for dest. */
- idx_info_dst.layout = layout_dst;
+ idx_info_dst.layout = layout_src /* Use same layout for dest. */;
idx_info_dst.storage = storage_dst;
/* Call the index-specific "copy setup" routine */
diff --git a/src/H5Dpkg.h b/src/H5Dpkg.h
index fc31ea6..df7dd51 100644
--- a/src/H5Dpkg.h
+++ b/src/H5Dpkg.h
@@ -618,9 +618,8 @@ H5_DLL herr_t H5D_chunk_addrmap(const H5D_io_info_t *io_info, haddr_t chunk_addr
H5_DLL herr_t H5D_chunk_update_cache(H5D_t *dset, hid_t dxpl_id);
H5_DLL herr_t H5D_chunk_copy(H5F_t *f_src, H5O_storage_chunk_t *storage_src,
H5O_layout_chunk_t *layout_src, H5F_t *f_dst, H5O_storage_chunk_t *storage_dst,
- H5O_layout_chunk_t *layout_dst, const H5S_extent_t *ds_extent_src,
- const H5T_t *dt_src, const H5O_pline_t *pline_src,
- H5O_copy_t *cpy_info, hid_t dxpl_id);
+ const H5S_extent_t *ds_extent_src, const H5T_t *dt_src,
+ const H5O_pline_t *pline_src, H5O_copy_t *cpy_info, hid_t dxpl_id);
H5_DLL herr_t H5D_chunk_bh_info(H5F_t *f, hid_t dxpl_id, H5O_layout_t *layout,
const H5O_pline_t *pline, hsize_t *btree_size);
H5_DLL herr_t H5D_chunk_dump_index(H5D_t *dset, hid_t dxpl_id, FILE *stream);
diff --git a/src/H5Olayout.c b/src/H5Olayout.c
index 13e095e..39905be 100644
--- a/src/H5Olayout.c
+++ b/src/H5Olayout.c
@@ -622,7 +622,7 @@ H5O_layout_copy_file(H5F_t *file_src, void *mesg_src, H5F_t *file_dst,
case H5D_CHUNKED:
if(H5D_chunk_is_space_alloc(&layout_src->storage)) {
/* Create chunked layout */
- if(H5D_chunk_copy(file_src, &layout_src->storage.u.chunk, &layout_src->u.chunk, file_dst, &layout_dst->storage.u.chunk, &layout_dst->u.chunk, udata->src_space_extent, udata->src_dtype, udata->src_pline, cpy_info, dxpl_id) < 0)
+ if(H5D_chunk_copy(file_src, &layout_src->storage.u.chunk, &layout_src->u.chunk, file_dst, &layout_dst->storage.u.chunk, udata->src_space_extent, udata->src_dtype, udata->src_pline, cpy_info, dxpl_id) < 0)
HGOTO_ERROR(H5E_OHDR, H5E_CANTCOPY, NULL, "unable to copy chunked storage")
} /* end if */
break;