mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-02-05 15:42:32 +08:00
Change file memory type for extending to default, and correct error in
backward compatibility for multi VFD.
This commit is contained in:
parent
d935aa3555
commit
17468defc7
@ -1358,8 +1358,12 @@ H5FD_multi_set_eoa(H5FD_t *_file, H5FD_mem_t type, haddr_t eoa)
|
||||
H5Eclear2(H5E_DEFAULT);
|
||||
|
||||
mmt = file->fa.memb_map[type];
|
||||
if(H5FD_MEM_DEFAULT == mmt)
|
||||
mmt = type;
|
||||
if(H5FD_MEM_DEFAULT == mmt) {
|
||||
if(H5FD_MEM_DEFAULT == type)
|
||||
mmt = H5FD_MEM_SUPER;
|
||||
else
|
||||
mmt = type;
|
||||
} /* end if */
|
||||
|
||||
/* Handle backward compatibility in a quick and simple way. v1.6 library
|
||||
* had EOA for the entire virtual file. But it wasn't meaningful. So v1.8
|
||||
@ -1371,7 +1375,7 @@ H5FD_multi_set_eoa(H5FD_t *_file, H5FD_mem_t type, haddr_t eoa)
|
||||
* address, the EOAs of v1.6 and v1.8 files are the same. It won't cause
|
||||
* any trouble. (Please see Issue 2598 in Jira) SLU - 2011/6/21
|
||||
*/
|
||||
if(H5FD_MEM_SUPER == type && file->memb_eoa[H5FD_MEM_SUPER] > 0 && eoa > file->memb_eoa[H5FD_MEM_SUPER])
|
||||
if(H5FD_MEM_SUPER == mmt && file->memb_eoa[H5FD_MEM_SUPER] > 0 && eoa > (file->memb_next[H5FD_MEM_SUPER] / 2))
|
||||
return 0;
|
||||
|
||||
assert(eoa >= file->fa.memb_addr[mmt]);
|
||||
|
@ -474,7 +474,7 @@ H5F__super_read(H5F_t *f, hid_t dxpl_id, hbool_t initial_read)
|
||||
} /* end if */
|
||||
|
||||
/* (Account for the stored EOA being absolute offset -NAF) */
|
||||
if(H5F__set_eoa(f, H5FD_MEM_SUPER, udata.stored_eof - sblock->base_addr) < 0)
|
||||
if(H5F__set_eoa(f, H5FD_MEM_DEFAULT, udata.stored_eof - sblock->base_addr) < 0)
|
||||
HGOTO_ERROR(H5E_FILE, H5E_CANTSET, FAIL, "unable to set end-of-address marker for file")
|
||||
|
||||
/* Decode the optional superblock extension info */
|
||||
|
Loading…
Reference in New Issue
Block a user