[svn-r18037] Description:
Bring r18035 from merge_metadata_journaling branch to trunk:
More "brush clearing" convergence between metadata_journaling branch
and the trunk.
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (smirom) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in debug mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
Mac OS X/32 10.6.2 (amazon) in debug mode
Mac OS X/32 10.6.2 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
This commit is contained in:
@@ -71,7 +71,7 @@ static unsigned H5O_alloc_new_chunk(H5F_t *f, hid_t dxpl_id, H5O_t *oh,
|
||||
static htri_t H5O_move_cont(H5F_t *f, H5O_t *oh, unsigned cont_u, hid_t dxpl_id);
|
||||
static htri_t H5O_move_msgs_forward(H5F_t *f, H5O_t *oh, hid_t dxpl_id);
|
||||
static htri_t H5O_merge_null(H5F_t *f, H5O_t *oh, hid_t dxpl_id);
|
||||
static htri_t H5O_remove_empty_chunks(H5F_t *f, H5O_t *oh, hid_t dxpl_id);
|
||||
static htri_t H5O_remove_empty_chunks(H5F_t *f, hid_t dxpl_id, H5O_t *oh);
|
||||
static herr_t H5O_alloc_shrink_chunk(H5F_t *f, H5O_t *oh, hid_t dxpl_id, unsigned chunkno);
|
||||
|
||||
|
||||
@@ -598,7 +598,7 @@ H5O_alloc_extend_chunk(H5F_t *f, hid_t dxpl_id, H5O_t *oh, unsigned chunkno,
|
||||
if(oh->mesg[u].chunkno == chunkno) {
|
||||
oh->mesg[u].raw = oh->chunk[chunkno].image + extra_prfx_size + (oh->mesg[u].raw - old_image);
|
||||
|
||||
/* Flag message as dirty */
|
||||
/* Flag message as dirty directly */
|
||||
oh->mesg[u].dirty = TRUE;
|
||||
} /* endif */
|
||||
|
||||
@@ -607,7 +607,7 @@ H5O_alloc_extend_chunk(H5F_t *f, hid_t dxpl_id, H5O_t *oh, unsigned chunkno,
|
||||
* it's size is directly encoded in the object header) */
|
||||
if(chunkno > 0 && (H5O_CONT_ID == oh->mesg[u].type->id) &&
|
||||
(((H5O_cont_t *)(oh->mesg[u].native))->chunkno == chunkno)) {
|
||||
/* Adjust size of continuation message */
|
||||
/* Adjust size in continuation message */
|
||||
HDassert(((H5O_cont_t *)(oh->mesg[u].native))->size == old_size);
|
||||
((H5O_cont_t *)(oh->mesg[u].native))->size = oh->chunk[chunkno].size;
|
||||
|
||||
@@ -1638,7 +1638,7 @@ done:
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
static htri_t
|
||||
H5O_remove_empty_chunks(H5F_t *f, H5O_t *oh, hid_t dxpl_id)
|
||||
H5O_remove_empty_chunks(H5F_t *f, hid_t dxpl_id, H5O_t *oh)
|
||||
{
|
||||
hbool_t deleted_chunk; /* Whether to a chunk was deleted */
|
||||
hbool_t did_deleting = FALSE; /* Whether any chunks were deleted */
|
||||
@@ -1813,7 +1813,7 @@ H5O_condense_header(H5F_t *f, H5O_t *oh, hid_t dxpl_id)
|
||||
rescan_header = TRUE;
|
||||
|
||||
/* Scan for empty chunks to remove */
|
||||
result = H5O_remove_empty_chunks(f, oh, dxpl_id);
|
||||
result = H5O_remove_empty_chunks(f, dxpl_id, oh);
|
||||
if(result < 0)
|
||||
HGOTO_ERROR(H5E_OHDR, H5E_CANTPACK, FAIL, "can't remove empty chunk")
|
||||
if(result > 0)
|
||||
|
||||
Reference in New Issue
Block a user