summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2009-07-30 00:55:45 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2009-07-30 00:55:45 (GMT)
commit7c22743e8eaa5e5d2ffc8b0db7518ed6c5be40ee (patch)
treee21068d63c94d67084af0dd902a2da902dec03dd
parent2a07e56c0522aa3ff86005ad923b9bd96c05689e (diff)
downloadhdf5-7c22743e8eaa5e5d2ffc8b0db7518ed6c5be40ee.zip
hdf5-7c22743e8eaa5e5d2ffc8b0db7518ed6c5be40ee.tar.gz
hdf5-7c22743e8eaa5e5d2ffc8b0db7518ed6c5be40ee.tar.bz2
[svn-r17267] Description:
Bring r17262:17265 from trunk to revise_chunks brach. Tested on: FreeBSD/32 6.3 (duty) in debug mode FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode Linux/32 2.6 (jam) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe, in debug mode Linux/64-amd64 2.6 (smirom) w/Intel compilers w/default API=1.6.x, w/C++ & FORTRAN, in production mode Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN, w/szip filter, in production mode Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN, in production mode Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in debug mode Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode Mac OS X/32 10.5.7 (amazon) in debug mode Mac OS X/32 10.5.7 (amazon) w/C++ & FORTRAN, w/threadsafe, in production mode
-rw-r--r--src/H5Dbtree.c34
-rw-r--r--src/H5Dearray.c38
-rw-r--r--src/H5Dfarray.c34
-rw-r--r--src/H5Olayout.c42
-rw-r--r--src/H5Oprivate.h19
-rw-r--r--src/H5Pdcpl.c2
6 files changed, 69 insertions, 100 deletions
diff --git a/src/H5Dbtree.c b/src/H5Dbtree.c
index c251994..6b8da2f 100644
--- a/src/H5Dbtree.c
+++ b/src/H5Dbtree.c
@@ -901,13 +901,13 @@ H5D_btree_idx_create(const H5D_chk_idx_info_t *idx_info)
HDassert(idx_info->f);
HDassert(idx_info->pline);
HDassert(idx_info->layout);
- HDassert(!H5F_addr_defined(idx_info->layout->store.u.chunk.u.btree.addr));
+ HDassert(!H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr));
/* Initialize "user" data for B-tree callbacks, etc. */
udata.mesg = idx_info->layout;
/* Create the v1 B-tree for the chunk index */
- if(H5B_create(idx_info->f, idx_info->dxpl_id, H5B_BTREE, &udata, &(idx_info->layout->store.u.chunk.u.btree.addr)/*out*/) < 0)
+ if(H5B_create(idx_info->f, idx_info->dxpl_id, H5B_BTREE, &udata, &(idx_info->layout->store.u.chunk.idx_addr)/*out*/) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't create B-tree")
done:
@@ -938,7 +938,7 @@ H5D_btree_idx_is_space_alloc(const H5O_layout_t *layout)
HDassert(layout);
/* Set return value */
- ret_value = (hbool_t)H5F_addr_defined(layout->store.u.chunk.u.btree.addr);
+ ret_value = (hbool_t)H5F_addr_defined(layout->store.u.chunk.idx_addr);
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5D_btree_idx_is_space_alloc() */
@@ -968,14 +968,14 @@ H5D_btree_idx_insert(const H5D_chk_idx_info_t *idx_info, H5D_chunk_ud_t *udata)
HDassert(idx_info->f);
HDassert(idx_info->pline);
HDassert(idx_info->layout);
- HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.u.btree.addr));
+ HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr));
HDassert(udata);
/*
* Create the chunk it if it doesn't exist, or reallocate the chunk if
* its size changed.
*/
- if(H5B_insert(idx_info->f, idx_info->dxpl_id, H5B_BTREE, idx_info->layout->store.u.chunk.u.btree.addr, udata) < 0)
+ if(H5B_insert(idx_info->f, idx_info->dxpl_id, H5B_BTREE, idx_info->layout->store.u.chunk.idx_addr, udata) < 0)
HGOTO_ERROR(H5E_IO, H5E_WRITEERROR, FAIL, "unable to allocate chunk")
done:
@@ -1012,7 +1012,7 @@ H5D_btree_idx_get_addr(const H5D_chk_idx_info_t *idx_info, H5D_chunk_ud_t *udata
HDassert(udata);
/* Go get the chunk information from the B-tree */
- if(H5B_find(idx_info->f, idx_info->dxpl_id, H5B_BTREE, idx_info->layout->store.u.chunk.u.btree.addr, udata) < 0)
+ if(H5B_find(idx_info->f, idx_info->dxpl_id, H5B_BTREE, idx_info->layout->store.u.chunk.idx_addr, udata) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't get chunk info")
done:
@@ -1094,7 +1094,7 @@ H5D_btree_idx_iterate(const H5D_chk_idx_info_t *idx_info,
HDassert(idx_info->f);
HDassert(idx_info->pline);
HDassert(idx_info->layout);
- HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.u.btree.addr));
+ HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr));
HDassert(chunk_cb);
HDassert(chunk_udata);
@@ -1105,7 +1105,7 @@ H5D_btree_idx_iterate(const H5D_chk_idx_info_t *idx_info,
udata.udata = chunk_udata;
/* Iterate over existing chunks */
- if((ret_value = H5B_iterate(idx_info->f, idx_info->dxpl_id, H5B_BTREE, idx_info->layout->store.u.chunk.u.btree.addr, H5D_btree_idx_iterate_cb, &udata)) < 0)
+ if((ret_value = H5B_iterate(idx_info->f, idx_info->dxpl_id, H5B_BTREE, idx_info->layout->store.u.chunk.idx_addr, H5D_btree_idx_iterate_cb, &udata)) < 0)
HERROR(H5E_DATASET, H5E_BADITER, "unable to iterate over chunk B-tree");
FUNC_LEAVE_NOAPI(ret_value)
@@ -1135,13 +1135,13 @@ H5D_btree_idx_remove(const H5D_chk_idx_info_t *idx_info, H5D_chunk_common_ud_t *
HDassert(idx_info->f);
HDassert(idx_info->pline);
HDassert(idx_info->layout);
- HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.u.btree.addr));
+ HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr));
HDassert(udata);
/* Remove the chunk from the v1 B-tree index and release the space for the
* chunk (in the B-tree callback).
*/
- if(H5B_remove(idx_info->f, idx_info->dxpl_id, H5B_BTREE, idx_info->layout->store.u.chunk.u.btree.addr, udata) < 0)
+ if(H5B_remove(idx_info->f, idx_info->dxpl_id, H5B_BTREE, idx_info->layout->store.u.chunk.idx_addr, udata) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTDELETE, FAIL, "unable to remove chunk entry")
done:
@@ -1177,7 +1177,7 @@ H5D_btree_idx_delete(const H5D_chk_idx_info_t *idx_info)
HDassert(idx_info->layout);
/* Check if the index data structure has been allocated */
- if(H5F_addr_defined(idx_info->layout->store.u.chunk.u.btree.addr)) {
+ if(H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr)) {
H5O_layout_t tmp_layout; /* Local copy of layout info */
H5D_btree_ud0_t udata; /* User data for B-tree iterator call */
@@ -1191,7 +1191,7 @@ H5D_btree_idx_delete(const H5D_chk_idx_info_t *idx_info)
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't create wrapper for shared B-tree info")
/* Delete entire B-tree */
- if(H5B_delete(idx_info->f, idx_info->dxpl_id, H5B_BTREE, tmp_layout.store.u.chunk.u.btree.addr, &udata) < 0)
+ if(H5B_delete(idx_info->f, idx_info->dxpl_id, H5B_BTREE, tmp_layout.store.u.chunk.idx_addr, &udata) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTDELETE, FAIL, "unable to delete chunk B-tree")
/* Free the raw B-tree node buffer */
@@ -1234,7 +1234,7 @@ H5D_btree_idx_copy_setup(const H5D_chk_idx_info_t *idx_info_src,
HDassert(idx_info_dst->f);
HDassert(idx_info_dst->pline);
HDassert(idx_info_dst->layout);
- HDassert(!H5F_addr_defined(idx_info_dst->layout->store.u.chunk.u.btree.addr));
+ HDassert(!H5F_addr_defined(idx_info_dst->layout->store.u.chunk.idx_addr));
/* Create shared B-tree info for each file */
if(H5D_btree_shared_create(idx_info_src->f, idx_info_src->layout) < 0)
@@ -1245,7 +1245,7 @@ H5D_btree_idx_copy_setup(const H5D_chk_idx_info_t *idx_info_src,
/* Create the root of the B-tree that describes chunked storage in the dest. file */
if(H5D_btree_idx_create(idx_info_dst) < 0)
HGOTO_ERROR(H5E_IO, H5E_CANTINIT, FAIL, "unable to initialize chunked storage")
- HDassert(H5F_addr_defined(idx_info_dst->layout->store.u.chunk.u.btree.addr));
+ HDassert(H5F_addr_defined(idx_info_dst->layout->store.u.chunk.idx_addr));
done:
FUNC_LEAVE_NOAPI(ret_value)
@@ -1326,7 +1326,7 @@ H5D_btree_idx_size(const H5D_chk_idx_info_t *idx_info, hsize_t *index_size)
udata.mesg = idx_info->layout;
/* Get metadata information for B-tree */
- if(H5B_get_info(idx_info->f, idx_info->dxpl_id, H5B_BTREE, idx_info->layout->store.u.chunk.u.btree.addr, &bt_info, NULL, &udata) < 0)
+ if(H5B_get_info(idx_info->f, idx_info->dxpl_id, H5B_BTREE, idx_info->layout->store.u.chunk.idx_addr, &bt_info, NULL, &udata) < 0)
HGOTO_ERROR(H5E_BTREE, H5E_CANTINIT, FAIL, "unable to iterate over chunk B-tree")
/* Set the size of the B-tree */
@@ -1369,7 +1369,7 @@ H5D_btree_idx_reset(H5O_layout_t *layout, hbool_t reset_addr)
/* Reset index info */
if(reset_addr)
- layout->store.u.chunk.u.btree.addr = HADDR_UNDEF;
+ layout->store.u.chunk.idx_addr = HADDR_UNDEF;
layout->u.chunk.u.btree.shared = NULL;
FUNC_LEAVE_NOAPI(SUCCEED)
@@ -1399,7 +1399,7 @@ H5D_btree_idx_dump(const H5D_chk_idx_info_t *idx_info, FILE *stream)
HDassert(idx_info->layout);
HDassert(stream);
- HDfprintf(stream, " Address: %a\n", idx_info->layout->store.u.chunk.u.btree.addr);
+ HDfprintf(stream, " Address: %a\n", idx_info->layout->store.u.chunk.idx_addr);
FUNC_LEAVE_NOAPI(SUCCEED)
} /* end H5D_btree_idx_dump() */
diff --git a/src/H5Dearray.c b/src/H5Dearray.c
index 204b455..865526e 100644
--- a/src/H5Dearray.c
+++ b/src/H5Dearray.c
@@ -622,7 +622,7 @@ H5D_earray_idx_depend(const H5D_chk_idx_info_t *idx_info)
HDassert(idx_info->pline);
HDassert(idx_info->layout);
HDassert(H5D_CHUNK_IDX_EARRAY == idx_info->layout->u.chunk.idx_type);
- HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.u.earray.addr));
+ HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr));
HDassert(idx_info->layout->u.chunk.u.earray.ea);
/* Set up object header location for dataset */
@@ -677,7 +677,7 @@ H5D_earray_idx_undepend(const H5D_chk_idx_info_t *idx_info)
HDassert(idx_info->pline);
HDassert(idx_info->layout);
HDassert(H5D_CHUNK_IDX_EARRAY == idx_info->layout->u.chunk.idx_type);
- HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.u.earray.addr));
+ HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr));
HDassert(idx_info->layout->u.chunk.u.earray.ea);
/* Set up object header location for dataset */
@@ -735,7 +735,7 @@ H5D_earray_idx_open(const H5D_chk_idx_info_t *idx_info)
HDassert(idx_info->pline);
HDassert(idx_info->layout);
HDassert(H5D_CHUNK_IDX_EARRAY == idx_info->layout->u.chunk.idx_type);
- HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.u.earray.addr));
+ HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr));
HDassert(NULL == idx_info->layout->u.chunk.u.earray.ea);
/* Set up the user data */
@@ -744,7 +744,7 @@ H5D_earray_idx_open(const H5D_chk_idx_info_t *idx_info)
/* Open the extensible array for the chunk index */
cls = (idx_info->pline->nused > 0) ? H5EA_CLS_FILT_CHUNK : H5EA_CLS_CHUNK;
- if(NULL == (idx_info->layout->u.chunk.u.earray.ea = H5EA_open(idx_info->f, idx_info->dxpl_id, idx_info->layout->store.u.chunk.u.earray.addr, cls, &udata)))
+ if(NULL == (idx_info->layout->u.chunk.u.earray.ea = H5EA_open(idx_info->f, idx_info->dxpl_id, idx_info->layout->store.u.chunk.idx_addr, cls, &udata)))
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't open extensible array")
/* Check for SWMR writes to the file */
@@ -857,7 +857,7 @@ H5D_earray_idx_create(const H5D_chk_idx_info_t *idx_info)
HDassert(idx_info->f);
HDassert(idx_info->pline);
HDassert(idx_info->layout);
- HDassert(!H5F_addr_defined(idx_info->layout->store.u.chunk.u.earray.addr));
+ HDassert(!H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr));
HDassert(NULL == idx_info->layout->u.chunk.u.earray.ea);
/* General parameters */
@@ -898,7 +898,7 @@ H5D_earray_idx_create(const H5D_chk_idx_info_t *idx_info)
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't create extensible array")
/* Get the address of the extensible array in file */
- if(H5EA_get_addr(idx_info->layout->u.chunk.u.earray.ea, &(idx_info->layout->store.u.chunk.u.earray.addr)) < 0)
+ if(H5EA_get_addr(idx_info->layout->u.chunk.u.earray.ea, &(idx_info->layout->store.u.chunk.idx_addr)) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't query extensible array address")
/* Check for SWMR writes to the file */
@@ -935,7 +935,7 @@ H5D_earray_idx_is_space_alloc(const H5O_layout_t *layout)
HDassert(layout);
/* Set return value */
- ret_value = (hbool_t)H5F_addr_defined(layout->store.u.chunk.u.earray.addr);
+ ret_value = (hbool_t)H5F_addr_defined(layout->store.u.chunk.idx_addr);
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5D_earray_idx_is_space_alloc() */
@@ -967,7 +967,7 @@ H5D_earray_idx_insert(const H5D_chk_idx_info_t *idx_info, H5D_chunk_ud_t *udata)
HDassert(idx_info->f);
HDassert(idx_info->pline);
HDassert(idx_info->layout);
- HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.u.earray.addr));
+ HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr));
HDassert(udata);
/* Check if the extensible array is open yet */
@@ -1127,7 +1127,7 @@ H5D_earray_idx_get_addr(const H5D_chk_idx_info_t *idx_info, H5D_chunk_ud_t *udat
HDassert(idx_info->f);
HDassert(idx_info->pline);
HDassert(idx_info->layout);
- HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.u.earray.addr));
+ HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr));
HDassert(udata);
/* Check if the extensible array is open yet */
@@ -1258,7 +1258,7 @@ H5D_earray_idx_iterate(const H5D_chk_idx_info_t *idx_info,
HDassert(idx_info->f);
HDassert(idx_info->pline);
HDassert(idx_info->layout);
- HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.u.earray.addr));
+ HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr));
HDassert(chunk_cb);
HDassert(chunk_udata);
@@ -1366,7 +1366,7 @@ H5D_earray_idx_remove(const H5D_chk_idx_info_t *idx_info, H5D_chunk_common_ud_t
HDassert(idx_info->f);
HDassert(idx_info->pline);
HDassert(idx_info->layout);
- HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.u.earray.addr));
+ HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr));
HDassert(udata);
/* Check if the extensible array is open yet */
@@ -1513,7 +1513,7 @@ H5D_earray_idx_delete(const H5D_chk_idx_info_t *idx_info)
HDassert(idx_info->layout);
/* Check if the index data structure has been allocated */
- if(H5F_addr_defined(idx_info->layout->store.u.chunk.u.earray.addr)) {
+ if(H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr)) {
H5D_earray_ud_t udata; /* User data for callback */
/* Initialize user data for callback */
@@ -1530,9 +1530,9 @@ H5D_earray_idx_delete(const H5D_chk_idx_info_t *idx_info)
idx_info->layout->u.chunk.u.earray.ea = NULL;
/* Delete extensible array */
- if(H5EA_delete(idx_info->f, idx_info->dxpl_id, idx_info->layout->store.u.chunk.u.earray.addr) < 0)
+ if(H5EA_delete(idx_info->f, idx_info->dxpl_id, idx_info->layout->store.u.chunk.idx_addr) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTDELETE, FAIL, "unable to delete chunk extensible array")
- idx_info->layout->store.u.chunk.u.earray.addr = HADDR_UNDEF;
+ idx_info->layout->store.u.chunk.idx_addr = HADDR_UNDEF;
} /* end if */
else
HDassert(NULL == idx_info->layout->u.chunk.u.earray.ea);
@@ -1571,7 +1571,7 @@ H5D_earray_idx_copy_setup(const H5D_chk_idx_info_t *idx_info_src,
HDassert(idx_info_dst->f);
HDassert(idx_info_dst->pline);
HDassert(idx_info_dst->layout);
- HDassert(!H5F_addr_defined(idx_info_dst->layout->store.u.chunk.u.earray.addr));
+ HDassert(!H5F_addr_defined(idx_info_dst->layout->store.u.chunk.idx_addr));
/* Check if the source extensible array is open yet */
if(NULL == idx_info_src->layout->u.chunk.u.earray.ea) {
@@ -1583,7 +1583,7 @@ H5D_earray_idx_copy_setup(const H5D_chk_idx_info_t *idx_info_src,
/* Create the extensible array that describes chunked storage in the dest. file */
if(H5D_earray_idx_create(idx_info_dst) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to initialize chunked storage")
- HDassert(H5F_addr_defined(idx_info_dst->layout->store.u.chunk.u.earray.addr));
+ HDassert(H5F_addr_defined(idx_info_dst->layout->store.u.chunk.idx_addr));
done:
FUNC_LEAVE_NOAPI(ret_value)
@@ -1656,7 +1656,7 @@ H5D_earray_idx_size(const H5D_chk_idx_info_t *idx_info, hsize_t *index_size)
HDassert(idx_info->f);
HDassert(idx_info->pline);
HDassert(idx_info->layout);
- HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.u.earray.addr));
+ HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr));
HDassert(index_size);
/* Open the extensible array in file */
@@ -1711,7 +1711,7 @@ H5D_earray_idx_reset(H5O_layout_t *layout, hbool_t reset_addr)
/* Reset index info */
if(reset_addr) {
- layout->store.u.chunk.u.earray.addr = HADDR_UNDEF;
+ layout->store.u.chunk.idx_addr = HADDR_UNDEF;
layout->u.chunk.u.earray.dset_ohdr_addr = HADDR_UNDEF;
} /* end if */
layout->u.chunk.u.earray.ea = NULL;
@@ -1879,7 +1879,7 @@ H5D_earray_idx_dump(const H5D_chk_idx_info_t *idx_info, FILE *stream)
HDassert(idx_info->layout);
HDassert(stream);
- HDfprintf(stream, " Address: %a\n", idx_info->layout->store.u.chunk.u.earray.addr);
+ HDfprintf(stream, " Address: %a\n", idx_info->layout->store.u.chunk.idx_addr);
FUNC_LEAVE_NOAPI(SUCCEED)
} /* end H5D_earray_idx_dump() */
diff --git a/src/H5Dfarray.c b/src/H5Dfarray.c
index f1b3ee1..8bba822 100644
--- a/src/H5Dfarray.c
+++ b/src/H5Dfarray.c
@@ -630,7 +630,7 @@ H5D_farray_idx_open(const H5D_chk_idx_info_t *idx_info)
HDassert(idx_info->pline);
HDassert(idx_info->layout);
HDassert(H5D_CHUNK_IDX_FARRAY == idx_info->layout->u.chunk.idx_type);
- HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.u.farray.addr));
+ HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr));
HDassert(NULL == idx_info->layout->u.chunk.u.farray.fa);
/* Set up the user data */
@@ -639,7 +639,7 @@ H5D_farray_idx_open(const H5D_chk_idx_info_t *idx_info)
/* Open the fixed array for the chunk index */
cls = (idx_info->pline->nused > 0) ? H5FA_CLS_FILT_CHUNK : H5FA_CLS_CHUNK;
- if(NULL == (idx_info->layout->u.chunk.u.farray.fa = H5FA_open(idx_info->f, idx_info->dxpl_id, idx_info->layout->store.u.chunk.u.farray.addr, cls, &udata)))
+ if(NULL == (idx_info->layout->u.chunk.u.farray.fa = H5FA_open(idx_info->f, idx_info->dxpl_id, idx_info->layout->store.u.chunk.idx_addr, cls, &udata)))
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't open fixed array")
done:
@@ -679,7 +679,7 @@ H5D_farray_idx_create(const H5D_chk_idx_info_t *idx_info)
HDassert(idx_info->f);
HDassert(idx_info->pline);
HDassert(idx_info->layout);
- HDassert(!H5F_addr_defined(idx_info->layout->store.u.chunk.u.farray.addr));
+ HDassert(!H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr));
HDassert(NULL == idx_info->layout->u.chunk.u.farray.fa);
HDassert(idx_info->layout->u.chunk.nchunks);
@@ -714,7 +714,7 @@ H5D_farray_idx_create(const H5D_chk_idx_info_t *idx_info)
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't create fixed array")
/* Get the address of the fixed array in file */
- if(H5FA_get_addr(idx_info->layout->u.chunk.u.farray.fa, &(idx_info->layout->store.u.chunk.u.farray.addr)) < 0)
+ if(H5FA_get_addr(idx_info->layout->u.chunk.u.farray.fa, &(idx_info->layout->store.u.chunk.idx_addr)) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "can't query fixed array address")
done:
@@ -745,7 +745,7 @@ H5D_farray_idx_is_space_alloc(const H5O_layout_t *layout)
HDassert(layout);
/* Set return value */
- ret_value = (hbool_t)H5F_addr_defined(layout->store.u.chunk.u.farray.addr);
+ ret_value = (hbool_t)H5F_addr_defined(layout->store.u.chunk.idx_addr);
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5D_farray_idx_is_space_alloc() */
@@ -777,7 +777,7 @@ H5D_farray_idx_insert(const H5D_chk_idx_info_t *idx_info, H5D_chunk_ud_t *udata)
HDassert(idx_info->f);
HDassert(idx_info->pline);
HDassert(idx_info->layout);
- HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.u.farray.addr));
+ HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr));
HDassert(udata);
/* Check if the fixed array is open yet */
@@ -922,7 +922,7 @@ H5D_farray_idx_get_addr(const H5D_chk_idx_info_t *idx_info, H5D_chunk_ud_t *udat
HDassert(idx_info->f);
HDassert(idx_info->pline);
HDassert(idx_info->layout);
- HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.u.farray.addr));
+ HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr));
HDassert(udata);
/* Check if the fixed array is open yet */
@@ -1055,7 +1055,7 @@ H5D_farray_idx_iterate(const H5D_chk_idx_info_t *idx_info,
HDassert(idx_info->f);
HDassert(idx_info->pline);
HDassert(idx_info->layout);
- HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.u.farray.addr));
+ HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr));
HDassert(chunk_cb);
HDassert(chunk_udata);
@@ -1125,7 +1125,7 @@ H5D_farray_idx_remove(const H5D_chk_idx_info_t *idx_info, H5D_chunk_common_ud_t
HDassert(idx_info->f);
HDassert(idx_info->pline);
HDassert(idx_info->layout);
- HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.u.farray.addr));
+ HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr));
HDassert(udata);
/* Check if the fixed array is open yet */
@@ -1265,7 +1265,7 @@ H5D_farray_idx_delete(const H5D_chk_idx_info_t *idx_info)
HDassert(idx_info->layout);
/* Check if the index data structure has been allocated */
- if(H5F_addr_defined(idx_info->layout->store.u.chunk.u.farray.addr)) {
+ if(H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr)) {
H5FA_t *fa; /* Pointer to fixed array structure */
H5FA_stat_t fa_stat; /* Fixed array statistics */
@@ -1304,9 +1304,9 @@ H5D_farray_idx_delete(const H5D_chk_idx_info_t *idx_info)
idx_info->layout->u.chunk.u.farray.fa = NULL;
/* Delete fixed array */
- if(H5FA_delete(idx_info->f, idx_info->dxpl_id, idx_info->layout->store.u.chunk.u.farray.addr) < 0)
+ if(H5FA_delete(idx_info->f, idx_info->dxpl_id, idx_info->layout->store.u.chunk.idx_addr) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTDELETE, FAIL, "unable to delete chunk fixed array")
- idx_info->layout->store.u.chunk.u.farray.addr = HADDR_UNDEF;
+ idx_info->layout->store.u.chunk.idx_addr = HADDR_UNDEF;
} /* end if */
else
HDassert(NULL == idx_info->layout->u.chunk.u.farray.fa);
@@ -1345,7 +1345,7 @@ H5D_farray_idx_copy_setup(const H5D_chk_idx_info_t *idx_info_src,
HDassert(idx_info_dst->f);
HDassert(idx_info_dst->pline);
HDassert(idx_info_dst->layout);
- HDassert(!H5F_addr_defined(idx_info_dst->layout->store.u.chunk.u.farray.addr));
+ HDassert(!H5F_addr_defined(idx_info_dst->layout->store.u.chunk.idx_addr));
/* Check if the source fixed array is open yet */
if(NULL == idx_info_src->layout->u.chunk.u.farray.fa) {
@@ -1357,7 +1357,7 @@ H5D_farray_idx_copy_setup(const H5D_chk_idx_info_t *idx_info_src,
/* Create the fixed array that describes chunked storage in the dest. file */
if(H5D_farray_idx_create(idx_info_dst) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to initialize chunked storage")
- HDassert(H5F_addr_defined(idx_info_dst->layout->store.u.chunk.u.farray.addr));
+ HDassert(H5F_addr_defined(idx_info_dst->layout->store.u.chunk.idx_addr));
done:
FUNC_LEAVE_NOAPI(ret_value)
@@ -1430,7 +1430,7 @@ H5D_farray_idx_size(const H5D_chk_idx_info_t *idx_info, hsize_t *index_size)
HDassert(idx_info->f);
HDassert(idx_info->pline);
HDassert(idx_info->layout);
- HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.u.farray.addr));
+ HDassert(H5F_addr_defined(idx_info->layout->store.u.chunk.idx_addr));
HDassert(index_size);
/* Open the fixed array in file */
@@ -1480,7 +1480,7 @@ H5D_farray_idx_reset(H5O_layout_t *layout, hbool_t reset_addr)
/* Reset index info */
if(reset_addr)
- layout->store.u.chunk.u.farray.addr = HADDR_UNDEF;
+ layout->store.u.chunk.idx_addr = HADDR_UNDEF;
layout->u.chunk.u.farray.fa = NULL;
FUNC_LEAVE_NOAPI(SUCCEED)
@@ -1510,7 +1510,7 @@ H5D_farray_idx_dump(const H5D_chk_idx_info_t *idx_info, FILE *stream)
HDassert(idx_info->layout);
HDassert(stream);
- HDfprintf(stream, " Address: %a\n", idx_info->layout->store.u.chunk.u.farray.addr);
+ HDfprintf(stream, " Address: %a\n", idx_info->layout->store.u.chunk.idx_addr);
FUNC_LEAVE_NOAPI(SUCCEED)
} /* end H5D_farray_idx_dump() */
diff --git a/src/H5Olayout.c b/src/H5Olayout.c
index a456ef5..18fd664 100644
--- a/src/H5Olayout.c
+++ b/src/H5Olayout.c
@@ -159,7 +159,7 @@ H5O_layout_decode(H5F_t *f, hid_t UNUSED dxpl_id, H5O_t UNUSED *open_oh,
mesg->ops = H5D_LOPS_CONTIG;
} /* end if */
else if(mesg->type == H5D_CHUNKED) {
- H5F_addr_decode(f, &p, &(mesg->store.u.chunk.u.btree.addr));
+ H5F_addr_decode(f, &p, &(mesg->store.u.chunk.idx_addr));
/* Set the layout operations */
mesg->ops = H5D_LOPS_CHUNK;
@@ -242,7 +242,7 @@ H5O_layout_decode(H5F_t *f, hid_t UNUSED dxpl_id, H5O_t UNUSED *open_oh,
HGOTO_ERROR(H5E_OHDR, H5E_CANTLOAD, NULL, "dimensionality is too large")
/* B-tree address */
- H5F_addr_decode(f, &p, &(mesg->store.u.chunk.u.btree.addr));
+ H5F_addr_decode(f, &p, &(mesg->store.u.chunk.idx_addr));
/* Chunk dimensions */
for(u = 0; u < mesg->u.chunk.ndims; u++)
@@ -289,15 +289,15 @@ H5O_layout_decode(H5F_t *f, hid_t UNUSED dxpl_id, H5O_t UNUSED *open_oh,
mesg->u.chunk.size *= mesg->u.chunk.dim[u];
/* Chunk index type */
- mesg->u.chunk.idx_type = *p++;
+ mesg->u.chunk.idx_type = (H5D_chunk_index_t)*p++;
if(mesg->u.chunk.idx_type >= H5D_CHUNK_IDX_NTYPES)
HGOTO_ERROR(H5E_OHDR, H5E_CANTLOAD, NULL, "unknown chunk index type")
+ /* Chunk index address */
+ H5F_addr_decode(f, &p, &(mesg->store.u.chunk.idx_addr));
+
switch(mesg->u.chunk.idx_type) {
case H5D_CHUNK_IDX_BTREE: /* Remove this when v2 B-tree indices added */
- /* B-tree address */
- H5F_addr_decode(f, &p, &(mesg->store.u.chunk.u.btree.addr));
-
/* Set the chunk operations */
mesg->u.chunk.ops = H5D_COPS_BTREE;
break;
@@ -308,9 +308,6 @@ H5O_layout_decode(H5F_t *f, hid_t UNUSED dxpl_id, H5O_t UNUSED *open_oh,
if(0 == mesg->u.chunk.u.farray.cparam.max_dblk_page_nelmts_bits)
HGOTO_ERROR(H5E_OHDR, H5E_CANTLOAD, NULL, "invalid fixed array creation parameter")
- /* Fixed array header address */
- H5F_addr_decode(f, &p, &(mesg->store.u.chunk.u.farray.addr));
-
/* Set the chunk operations */
mesg->u.chunk.ops = H5D_COPS_FARRAY;
break;
@@ -333,9 +330,6 @@ H5O_layout_decode(H5F_t *f, hid_t UNUSED dxpl_id, H5O_t UNUSED *open_oh,
if(0 == mesg->u.chunk.u.earray.cparam.max_dblk_page_nelmts_bits)
HGOTO_ERROR(H5E_OHDR, H5E_CANTLOAD, NULL, "invalid extensible array creation parameter")
- /* Extensible array header address */
- H5F_addr_decode(f, &p, &(mesg->store.u.chunk.u.earray.addr));
-
/* Set the chunk operations */
mesg->u.chunk.ops = H5D_COPS_EARRAY;
break;
@@ -449,7 +443,7 @@ H5O_layout_encode(H5F_t *f, hbool_t UNUSED disable_shared, uint8_t *p, const voi
*p++ = (uint8_t)mesg->u.chunk.ndims;
/* B-tree address */
- H5F_addr_encode(f, &p, mesg->store.u.chunk.u.btree.addr);
+ H5F_addr_encode(f, &p, mesg->store.u.chunk.idx_addr);
/* Dimension sizes */
for(u = 0; u < mesg->u.chunk.ndims; u++)
@@ -474,18 +468,17 @@ H5O_layout_encode(H5F_t *f, hbool_t UNUSED disable_shared, uint8_t *p, const voi
/* Chunk index type */
*p++ = (uint8_t)mesg->u.chunk.idx_type;
+ /* Chunk index address */
+ H5F_addr_encode(f, &p, mesg->store.u.chunk.idx_addr);
+
switch(mesg->u.chunk.idx_type) {
- case H5D_CHUNK_IDX_BTREE: /* Remove this when v2 B-tree indices added */
- /* B-tree address */
- H5F_addr_encode(f, &p, mesg->store.u.chunk.u.btree.addr);
+ case H5D_CHUNK_IDX_BTREE: /* Remove this when v2 B-tree indices added */
+ /* Nothing to do */
break;
case H5D_CHUNK_IDX_FARRAY:
/* Fixed array creation parameters */
*p++ = mesg->u.chunk.u.farray.cparam.max_dblk_page_nelmts_bits;
-
- /* Fixed array header address */
- H5F_addr_encode(f, &p, mesg->store.u.chunk.u.farray.addr);
break;
case H5D_CHUNK_IDX_EARRAY:
@@ -495,9 +488,6 @@ H5O_layout_encode(H5F_t *f, hbool_t UNUSED disable_shared, uint8_t *p, const voi
*p++ = mesg->u.chunk.u.earray.cparam.sup_blk_min_data_ptrs;
*p++ = mesg->u.chunk.u.earray.cparam.data_blk_min_elmts;
*p++ = mesg->u.chunk.u.earray.cparam.max_dblk_page_nelmts_bits;
-
- /* Extensible array header address */
- H5F_addr_encode(f, &p, mesg->store.u.chunk.u.earray.addr);
break;
default:
@@ -879,22 +869,16 @@ H5O_layout_debug(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, const void *_mesg,
case H5D_CHUNK_IDX_BTREE:
HDfprintf(stream, "%*s%-*s %s\n", indent, "", fwidth,
"Index Type:", "v1 B-tree");
- HDfprintf(stream, "%*s%-*s %a\n", indent, "", fwidth,
- "B-tree address:", mesg->store.u.chunk.u.btree.addr);
break;
case H5D_CHUNK_IDX_FARRAY:
HDfprintf(stream, "%*s%-*s %s\n", indent, "", fwidth,
"Index Type:", "Fixed Array");
- HDfprintf(stream, "%*s%-*s %a\n", indent, "", fwidth,
- "Fixed Array address:", mesg->store.u.chunk.u.farray.addr);
break;
case H5D_CHUNK_IDX_EARRAY:
HDfprintf(stream, "%*s%-*s %s\n", indent, "", fwidth,
"Index Type:", "Extensible Array");
- HDfprintf(stream, "%*s%-*s %a\n", indent, "", fwidth,
- "Extensible Array address:", mesg->store.u.chunk.u.earray.addr);
break;
default:
@@ -902,6 +886,8 @@ H5O_layout_debug(H5F_t UNUSED *f, hid_t UNUSED dxpl_id, const void *_mesg,
"Index Type:", "Unknown", (unsigned)mesg->u.chunk.idx_type);
break;
} /* end switch */
+ HDfprintf(stream, "%*s%-*s %a\n", indent, "", fwidth,
+ "Index address:", mesg->store.u.chunk.idx_addr);
break;
case H5D_CONTIGUOUS:
diff --git a/src/H5Oprivate.h b/src/H5Oprivate.h
index 49f0b9b..6a13af9 100644
--- a/src/H5Oprivate.h
+++ b/src/H5Oprivate.h
@@ -362,25 +362,8 @@ typedef struct H5O_storage_contig_t {
haddr_t addr; /* File address of data */
} H5O_storage_contig_t;
-typedef struct H5O_storage_chunk_btree_t {
- haddr_t addr; /* File address of B-tree */
-} H5O_storage_chunk_btree_t;
-
-typedef struct H5O_storage_chunk_farray_t {
- haddr_t addr; /* File address of fixed array */
-} H5O_storage_chunk_farray_t;
-
-typedef struct H5O_storage_chunk_earray_t {
- haddr_t addr; /* File address of extensible array */
-} H5O_storage_chunk_earray_t;
-
typedef struct H5O_storage_chunk_t {
- H5D_chunk_index_t idx_type; /* Type of chunk index */
- union {
- H5O_storage_chunk_btree_t btree; /* Information for v1 B-tree index */
- H5O_storage_chunk_farray_t farray; /* Information for fixed array index */
- H5O_storage_chunk_earray_t earray; /* Information for extensible array index */
- } u;
+ haddr_t idx_addr; /* File address of chunk index */
} H5O_storage_chunk_t;
typedef struct H5O_storage_compact_t {
diff --git a/src/H5Pdcpl.c b/src/H5Pdcpl.c
index dd9843e..36e81b6 100644
--- a/src/H5Pdcpl.c
+++ b/src/H5Pdcpl.c
@@ -51,7 +51,7 @@
/* Define default layout information */
#define H5D_DEF_STORAGE_COMPACT_INIT {(hbool_t)FALSE, (size_t)0, NULL}
#define H5D_DEF_STORAGE_CONTIG_INIT {HADDR_UNDEF}
-#define H5D_DEF_STORAGE_CHUNK_INIT {H5D_CHUNK_IDX_BTREE, {{HADDR_UNDEF}}}
+#define H5D_DEF_STORAGE_CHUNK_INIT {HADDR_UNDEF}
#define H5D_DEF_LAYOUT_CONTIG_INIT {(hsize_t)0}
#define H5D_DEF_LAYOUT_CHUNK_INIT {H5D_CHUNK_IDX_BTREE, (unsigned)1, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, (unsigned)0, (uint32_t)0, (hsize_t)0, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, NULL, {{NULL}}}
#ifdef H5_HAVE_C99_DESIGNATED_INITIALIZER