summaryrefslogtreecommitdiffstats
path: root/src/H5HFdtable.c
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2006-07-22 01:55:14 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2006-07-22 01:55:14 (GMT)
commit58ed885d1314d2c971c106e70c9271df3a70ebc9 (patch)
treedf8dcecc4112ba026cad00a3fc9c8af64b20a208 /src/H5HFdtable.c
parent59d5e5c6fbbc951545e079333dc00e5a12dc9065 (diff)
downloadhdf5-58ed885d1314d2c971c106e70c9271df3a70ebc9.zip
hdf5-58ed885d1314d2c971c106e70c9271df3a70ebc9.tar.gz
hdf5-58ed885d1314d2c971c106e70c9271df3a70ebc9.tar.bz2
[svn-r12491] Description:
Refactored object deletion code for fractal heap to fix scaling problems. Passing all previous tests again now. Tested: FreeBSD 4.11 (sleipnir) Linux 2.4 (chicago) Mac OS X (amazon)
Diffstat (limited to 'src/H5HFdtable.c')
-rw-r--r--src/H5HFdtable.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/H5HFdtable.c b/src/H5HFdtable.c
index 1461cd7..4c41805 100644
--- a/src/H5HFdtable.c
+++ b/src/H5HFdtable.c
@@ -116,8 +116,10 @@ H5HF_dtable_init(H5HF_dtable_t *dtable)
HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "can't create doubling table block size table")
if(NULL == (dtable->row_block_off = H5MM_malloc(dtable->max_root_rows * sizeof(hsize_t))))
HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "can't create doubling table block offset table")
- if(NULL == (dtable->row_dblock_free = H5MM_malloc(dtable->max_root_rows * sizeof(hsize_t))))
- HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "can't create doubling table direct block free space table")
+ if(NULL == (dtable->row_tot_dblock_free = H5MM_malloc(dtable->max_root_rows * sizeof(hsize_t))))
+ HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "can't create doubling table total direct block free space table")
+ if(NULL == (dtable->row_max_dblock_free = H5MM_malloc(dtable->max_root_rows * sizeof(size_t))))
+ HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "can't create doubling table max. direct block free space table")
tmp_block_size = dtable->cparam.start_block_size;
acc_block_off = dtable->cparam.start_block_size * dtable->cparam.width;
dtable->row_block_size[0] = dtable->cparam.start_block_size;
@@ -205,8 +207,11 @@ H5HF_dtable_dest(H5HF_dtable_t *dtable)
/* Free the block offset lookup table for the doubling table */
H5MM_xfree(dtable->row_block_off);
- /* Free the direct block free space lookup table for the doubling table */
- H5MM_xfree(dtable->row_dblock_free);
+ /* Free the total direct block free space lookup table for the doubling table */
+ H5MM_xfree(dtable->row_tot_dblock_free);
+
+ /* Free the max. direct block free space lookup table for the doubling table */
+ H5MM_xfree(dtable->row_max_dblock_free);
FUNC_LEAVE_NOAPI(SUCCEED)
} /* end H5HF_dtable_dest() */