diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2012-08-11 21:27:58 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2012-08-11 21:27:58 (GMT) |
commit | d20da589dd51cf3fe184bffce8851bd5d032e7f4 (patch) | |
tree | 7a04d4ec975064ba805fbc83ed56426ee1ac4469 /src/H5FSsection.c | |
parent | 3552beb08b10a9037691905b5dec644428a9ac35 (diff) | |
download | hdf5-d20da589dd51cf3fe184bffce8851bd5d032e7f4.zip hdf5-d20da589dd51cf3fe184bffce8851bd5d032e7f4.tar.gz hdf5-d20da589dd51cf3fe184bffce8851bd5d032e7f4.tar.bz2 |
[svn-r22668] Description:
Have free space manager use temporary address space for storing the
section info, until the file is flushed or closed.
Tested on:
Mac OSX/64 10.7.4 (amazon) w/debug, gcc 4.7.x, C++, FORTRAN & threadsafe
(h5committest forthcoming)
Diffstat (limited to 'src/H5FSsection.c')
-rw-r--r-- | src/H5FSsection.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/H5FSsection.c b/src/H5FSsection.c index 0f126c2..581d3dc 100644 --- a/src/H5FSsection.c +++ b/src/H5FSsection.c @@ -445,8 +445,10 @@ HDfprintf(stderr, "%s: Relinquishing section info ownership\n", FUNC); HDfprintf(stderr, "%s: Freeing section info on disk, old_sect_addr = %a, old_alloc_sect_size = %Hu\n", FUNC, old_sect_addr, old_alloc_sect_size); #endif /* H5FS_SINFO_DEBUG */ /* Release space for section info in file */ - if(H5MF_xfree(f, H5FD_MEM_FSPACE_SINFO, dxpl_id, old_sect_addr, old_alloc_sect_size) < 0) - HGOTO_ERROR(H5E_FSPACE, H5E_CANTFREE, FAIL, "unable to free free space sections") + if(!H5F_IS_TMP_ADDR(f, old_sect_addr)) { + if(H5MF_xfree(f, H5FD_MEM_FSPACE_SINFO, dxpl_id, old_sect_addr, old_alloc_sect_size) < 0) + HGOTO_ERROR(H5E_FSPACE, H5E_CANTFREE, FAIL, "unable to free free space sections") + } /* end if */ } /* end if */ } /* end if */ |