mirror of
https://github.com/HDFGroup/hdf5.git
synced 2024-11-27 02:10:55 +08:00
[svn-r14702] 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".
This commit is contained in:
parent
52378f9e94
commit
4de5549f92
@ -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 */
|
||||
|
||||
|
@ -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)
|
||||
|
@ -29,7 +29,7 @@
|
||||
#define DATASET_NAME "DATASET_NAME"
|
||||
#define GROUP_NAME "GROUP"
|
||||
#define ATTR_NAME "ATTR"
|
||||
#define NUM_GRPS 350
|
||||
#define NUM_GRPS 35000
|
||||
#define NUM_ATTRS 100
|
||||
|
||||
/*
|
||||
|
@ -3,20 +3,20 @@ Expected output for 'h5stat h5stat_newgrat.h5'
|
||||
#############################
|
||||
Filename: h5stat_newgrat.h5
|
||||
File information
|
||||
# of unique groups: 351
|
||||
# of unique groups: 35001
|
||||
# of unique datasets: 1
|
||||
# of unique named dataypes: 0
|
||||
# of unique links: 0
|
||||
# of unique other: 0
|
||||
Max. # of links to object: 1
|
||||
Max. # of objects in group: 351
|
||||
Max. # of objects in group: 35001
|
||||
Object header size: (total/unused)
|
||||
Groups: 51597/32292
|
||||
Groups: 5145147/3220092
|
||||
Datasets: 414/312
|
||||
Storage information:
|
||||
Groups:
|
||||
B-tree/List: 5158
|
||||
Heap: 7643
|
||||
B-tree/List: 470054
|
||||
Heap: 739128
|
||||
Attributes:
|
||||
B-tree/List: 2598
|
||||
Heap: 4442
|
||||
@ -28,12 +28,12 @@ Storage information:
|
||||
Heap: 0
|
||||
Superblock extension: 0
|
||||
Small groups:
|
||||
# of groups of size 0: 350
|
||||
Total # of small groups: 350
|
||||
# of groups of size 0: 35000
|
||||
Total # of small groups: 35000
|
||||
Group bins:
|
||||
# of groups of size 0: 350
|
||||
# of groups of size 100 - 999: 1
|
||||
Total # of groups: 351
|
||||
# of groups of size 0: 35000
|
||||
# of groups of size 10000 - 99999: 1
|
||||
Total # of groups: 35001
|
||||
Dataset dimension information:
|
||||
Max. rank of datasets: 0
|
||||
Dataset ranks:
|
||||
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user