summaryrefslogtreecommitdiffstats
path: root/src/H5FSsection.c
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2012-08-11 21:27:58 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2012-08-11 21:27:58 (GMT)
commitd20da589dd51cf3fe184bffce8851bd5d032e7f4 (patch)
tree7a04d4ec975064ba805fbc83ed56426ee1ac4469 /src/H5FSsection.c
parent3552beb08b10a9037691905b5dec644428a9ac35 (diff)
downloadhdf5-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.c6
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 */