summaryrefslogtreecommitdiffstats
path: root/src/H5FDmulti.c
diff options
context:
space:
mode:
authorAlbert Cheng <acheng@hdfgroup.org>2000-03-14 14:18:52 (GMT)
committerAlbert Cheng <acheng@hdfgroup.org>2000-03-14 14:18:52 (GMT)
commit29bbbcbd9c88c94f2769883913d2f08123a06d3d (patch)
treecb92d5404fae330064ddc0bb6d75df70dd8dff28 /src/H5FDmulti.c
parentdcb9d01fd6d979f4d5677e6594200d4ad3815d8d (diff)
downloadhdf5-29bbbcbd9c88c94f2769883913d2f08123a06d3d.zip
hdf5-29bbbcbd9c88c94f2769883913d2f08123a06d3d.tar.gz
hdf5-29bbbcbd9c88c94f2769883913d2f08123a06d3d.tar.bz2
[svn-r2032] Purpose:
Bug Fix. Description: Tests failed if drivers multi or split is used (split is implemented as a special case of multi). When a file created via those two drivers is opened again, the file sizes retrieved are incorrect. These seemed to happen to non-little-endian machines only (sun, sgi failed, but linux succeed.) Solution: The error was because the superblock encoding code was keeping track in nseen the pairs of HADDR needed to be converted but did not tell the H5Tconvert 2*nseen to convert. Thus only the first half of the addresses were converted, the rest were left alone. Corrected the numbers of addresses to convert. Platforms tested: IRIX64, Solaris 2.7, Linux.
Diffstat (limited to 'src/H5FDmulti.c')
-rw-r--r--src/H5FDmulti.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/H5FDmulti.c b/src/H5FDmulti.c
index ace79ee..276db2c 100644
--- a/src/H5FDmulti.c
+++ b/src/H5FDmulti.c
@@ -715,7 +715,7 @@ H5FD_multi_sb_encode(H5FD_t *_file, char *name/*out*/,
p += sizeof(haddr_t);
nseen++;
} END_MEMBERS;
- if (H5Tconvert(H5T_NATIVE_HADDR, H5T_STD_U64LE, nseen, buf+8, NULL,
+ if (H5Tconvert(H5T_NATIVE_HADDR, H5T_STD_U64LE, nseen*2, buf+8, NULL,
H5P_DEFAULT)<0) {
H5Epush_ret(func, H5E_DATATYPE, H5E_CANTCONVERT, "can't convert superblock info", -1);
}