diff options
author | Vailin Choi <vchoi@hdfgroup.org> | 2008-03-04 20:04:18 (GMT) |
---|---|---|
committer | Vailin Choi <vchoi@hdfgroup.org> | 2008-03-04 20:04:18 (GMT) |
commit | 87be7927dd360613f5d884859d03bcb65095a5ce (patch) | |
tree | 1d5516a82c73f1232d1f3fb62a43be3f492cba42 /src | |
parent | c635149be570fad877b9f79ae651153ef22a22dd (diff) | |
download | hdf5-87be7927dd360613f5d884859d03bcb65095a5ce.zip hdf5-87be7927dd360613f5d884859d03bcb65095a5ce.tar.gz hdf5-87be7927dd360613f5d884859d03bcb65095a5ce.tar.bz2 |
[svn-r14703] 1. H5HFiblock.c: fixed problem for uninitialized "u" for bug #1072 in H5HF_man_iblock_size().
2. H5HFstat.c: Since H5HF_space_size() zeroed out fs_size, add "meta_size" to store
free-space size before adding to "heap_size".
3. h5stat_gentest.c: increase # of groups to get "h5stat_newgrat.h5" that contains
indirect block entries in fractal heap.
This is for testing the recursive part of the code in H5HF_man_iblock_size().
4. h5stat_newgrat.h5: the new .h5 file generated by h5stat_gentest.c.
5. h5stat_newgrat.ddl: expected output from new "h5stat_newgrat.h5".
Tested on kagiso, smirom, linew.
Diffstat (limited to 'src')
-rw-r--r-- | src/H5HFiblock.c | 3 | ||||
-rw-r--r-- | src/H5HFstat.c | 7 |
2 files changed, 7 insertions, 3 deletions
diff --git a/src/H5HFiblock.c b/src/H5HFiblock.c index 70133aa..539761f 100644 --- a/src/H5HFiblock.c +++ b/src/H5HFiblock.c @@ -1624,7 +1624,8 @@ H5HF_man_iblock_size(H5F_t *f, hid_t dxpl_id, H5HF_hdr_t *hdr, haddr_t iblock_ad entry = hdr->man_dtable.max_direct_rows * hdr->man_dtable.cparam.width; first_row_bits = H5V_log2_of2((uint32_t)hdr->man_dtable.cparam.start_block_size) + H5V_log2_of2(hdr->man_dtable.cparam.width); - num_indirect_rows = (H5V_log2_gen(hdr->man_dtable.row_block_size[u]) - first_row_bits) + 1; + num_indirect_rows = + (H5V_log2_gen(hdr->man_dtable.row_block_size[hdr->man_dtable.max_direct_rows]) - first_row_bits) + 1; for(u = hdr->man_dtable.max_direct_rows; u < iblock->nrows; u++, num_indirect_rows++) { size_t v; /* Local index variable */ diff --git a/src/H5HFstat.c b/src/H5HFstat.c index 2e3e189..1311e03 100644 --- a/src/H5HFstat.c +++ b/src/H5HFstat.c @@ -128,6 +128,7 @@ H5HF_size(const H5HF_t *fh, hid_t dxpl_id, hsize_t *heap_size) { H5HF_hdr_t *hdr; /* Fractal heap header */ herr_t ret_value = SUCCEED; /* Return value */ + hsize_t meta_size = 0; /* free space storage size */ FUNC_ENTER_NOAPI(H5HF_size, FAIL) @@ -172,9 +173,11 @@ H5HF_size(const H5HF_t *fh, hid_t dxpl_id, hsize_t *heap_size) } /* end if */ /* Get storage for free-space tracking info */ - if(H5F_addr_defined(hdr->fs_addr)) - if(H5HF_space_size(hdr, dxpl_id, heap_size) < 0) + if(H5F_addr_defined(hdr->fs_addr)) { + if(H5HF_space_size(hdr, dxpl_id, &meta_size) < 0) HGOTO_ERROR(H5E_FSPACE, H5E_CANTGET, FAIL, "can't retrieve FS meta storage info") + *heap_size += meta_size; + } done: FUNC_LEAVE_NOAPI(ret_value) |