mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-03-13 16:47:58 +08:00
[svn-r6218] Purpose:
Bug Fix Description: Was encoding a value as DTYPE instead of MTIME, which would cause a couple of errors. Also, got rid of the EFL field as it's encoded in the PLIST already... Platforms tested: Linux...Modest test, FPHDF5 not fully implemented just yet.
This commit is contained in:
parent
5977b667aa
commit
a695575387
@ -134,7 +134,7 @@ H5O_fphdf5_decode(H5F_t *f, const uint8_t *p, H5O_shared_t UNUSED *sh)
|
||||
p += H5O_DTYPE[0].raw_size(f, fmeta->dtype);
|
||||
|
||||
/* decode the modification time next */
|
||||
fmeta->mtime = H5O_DTYPE[0].decode(f, p, NULL);
|
||||
fmeta->mtime = H5O_MTIME[0].decode(f, p, NULL);
|
||||
|
||||
if (!fmeta->mtime)
|
||||
HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed");
|
||||
@ -169,15 +169,6 @@ H5O_fphdf5_decode(H5F_t *f, const uint8_t *p, H5O_shared_t UNUSED *sh)
|
||||
/* jump past the dataset name part */
|
||||
p += H5O_NAME[0].raw_size(f, fmeta->dset);
|
||||
|
||||
/* decode the external file layout for the dataset */
|
||||
fmeta->efl = H5O_EFL[0].decode(f, p, NULL);
|
||||
|
||||
if (!fmeta->efl)
|
||||
HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed");
|
||||
|
||||
/* jump past the dataset name part */
|
||||
p += H5O_EFL[0].raw_size(f, fmeta->efl);
|
||||
|
||||
/* decode the property list last */
|
||||
fmeta->plist = H5O_PLIST[0].decode(f, p, NULL);
|
||||
|
||||
@ -190,28 +181,25 @@ H5O_fphdf5_decode(H5F_t *f, const uint8_t *p, H5O_shared_t UNUSED *sh)
|
||||
done:
|
||||
if (!ret_value && fmeta) {
|
||||
/* free up fmeta */
|
||||
if (H5O_SDSPACE[0].free)
|
||||
if (H5O_SDSPACE[0].free && fmeta->sdim)
|
||||
H5O_SDSPACE[0].free(fmeta->sdim);
|
||||
|
||||
if (H5O_DTYPE[0].free)
|
||||
if (H5O_DTYPE[0].free && fmeta->dtype)
|
||||
H5O_DTYPE[0].free(fmeta->dtype);
|
||||
|
||||
if (H5O_MTIME[0].free)
|
||||
if (H5O_MTIME[0].free && fmeta->mtime)
|
||||
H5O_MTIME[0].free(fmeta->mtime);
|
||||
|
||||
if (H5O_LAYOUT[0].free)
|
||||
if (H5O_LAYOUT[0].free && fmeta->layout)
|
||||
H5O_LAYOUT[0].free(fmeta->layout);
|
||||
|
||||
if (H5O_NAME[0].free)
|
||||
H5O_NAME[0].free(fmeta->group);
|
||||
|
||||
if (H5O_NAME[0].free)
|
||||
if (H5O_NAME[0].free && fmeta->group)
|
||||
H5O_NAME[0].free(fmeta->dset);
|
||||
|
||||
if (H5O_EFL[0].free)
|
||||
H5O_EFL[0].free(fmeta->efl);
|
||||
if (H5O_NAME[0].free && fmeta->dset)
|
||||
H5O_NAME[0].free(fmeta->dset);
|
||||
|
||||
if (H5O_PLIST[0].free)
|
||||
if (H5O_PLIST[0].free && fmeta->plist)
|
||||
H5O_PLIST[0].free(fmeta->plist);
|
||||
|
||||
H5FL_FREE(H5O_fphdf5_t, fmeta);
|
||||
@ -275,7 +263,7 @@ H5O_fphdf5_encode(H5F_t *f, uint8_t *p, const void *mesg)
|
||||
p += H5O_DTYPE[0].raw_size(f, fmeta->dtype);
|
||||
|
||||
/* encode the modification time next */
|
||||
ret_value = H5O_DTYPE[0].encode(f, p, fmeta->mtime);
|
||||
ret_value = H5O_MTIME[0].encode(f, p, fmeta->mtime);
|
||||
|
||||
if (ret_value < 0)
|
||||
HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed");
|
||||
@ -310,15 +298,6 @@ H5O_fphdf5_encode(H5F_t *f, uint8_t *p, const void *mesg)
|
||||
/* jump past the dataset name part */
|
||||
p += H5O_NAME[0].raw_size(f, fmeta->dset);
|
||||
|
||||
/* encode the external file layout stuff next */
|
||||
ret_value = H5O_EFL[0].encode(f, p, fmeta->efl);
|
||||
|
||||
if (ret_value < 0)
|
||||
HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed");
|
||||
|
||||
/* jump past the external file layout part */
|
||||
p += H5O_EFL[0].raw_size(f, fmeta->efl);
|
||||
|
||||
/* decode the property list last */
|
||||
ret_value = H5O_PLIST[0].encode(f, p, fmeta->plist);
|
||||
|
||||
@ -367,7 +346,6 @@ H5O_fphdf5_copy(const void *mesg, void *dest)
|
||||
H5O_LAYOUT[0].copy(src->layout, dst->layout);
|
||||
H5O_NAME[0].copy(src->group, dst->group);
|
||||
H5O_NAME[0].copy(src->dset, dst->dset);
|
||||
H5O_EFL[0].copy(src->efl, dst->efl);
|
||||
|
||||
if (H5O_PLIST[0].copy)
|
||||
H5O_PLIST[0].copy(src->plist, dst->plist);
|
||||
@ -414,7 +392,6 @@ H5O_fphdf5_size(H5F_t *f, const void *mesg)
|
||||
ret_value += H5O_LAYOUT[0].raw_size(f, fmeta->layout);
|
||||
ret_value += H5O_NAME[0].raw_size(f, fmeta->group);
|
||||
ret_value += H5O_NAME[0].raw_size(f, fmeta->dset);
|
||||
ret_value += H5O_EFL[0].raw_size(f, fmeta->efl);
|
||||
ret_value += H5O_PLIST[0].raw_size(f, fmeta->plist);
|
||||
|
||||
done:
|
||||
@ -464,9 +441,6 @@ H5O_fphdf5_reset(void *mesg)
|
||||
if (H5O_NAME[0].reset)
|
||||
ret_value = H5O_NAME[0].reset(fmeta->dset);
|
||||
|
||||
if (H5O_EFL[0].reset)
|
||||
ret_value = H5O_EFL[0].reset(fmeta->efl);
|
||||
|
||||
if (H5O_PLIST[0].reset)
|
||||
ret_value = H5O_PLIST[0].reset(fmeta->plist);
|
||||
|
||||
@ -494,28 +468,25 @@ H5O_fphdf5_free(void *mesg)
|
||||
FUNC_ENTER_NOAPI(H5O_fphdf5_free, FAIL);
|
||||
assert(fmeta);
|
||||
|
||||
if (H5O_SDSPACE[0].free)
|
||||
if (H5O_SDSPACE[0].free && fmeta->sdim)
|
||||
ret_value = H5O_SDSPACE[0].free(fmeta->sdim);
|
||||
|
||||
if (H5O_DTYPE[0].free)
|
||||
if (H5O_DTYPE[0].free && fmeta->dtype)
|
||||
ret_value = H5O_DTYPE[0].free(fmeta->dtype);
|
||||
|
||||
if (H5O_MTIME[0].free)
|
||||
if (H5O_MTIME[0].free && fmeta->mtime)
|
||||
ret_value = H5O_MTIME[0].free(fmeta->mtime);
|
||||
|
||||
if (H5O_LAYOUT[0].free)
|
||||
if (H5O_LAYOUT[0].free && fmeta->layout)
|
||||
ret_value = H5O_MTIME[0].free(fmeta->layout);
|
||||
|
||||
if (H5O_NAME[0].free)
|
||||
if (H5O_NAME[0].free && fmeta->group)
|
||||
ret_value = H5O_NAME[0].free(fmeta->group);
|
||||
|
||||
if (H5O_NAME[0].free)
|
||||
if (H5O_NAME[0].free && fmeta->dset)
|
||||
ret_value = H5O_NAME[0].free(fmeta->dset);
|
||||
|
||||
if (H5O_EFL[0].free)
|
||||
ret_value = H5O_EFL[0].free(fmeta->efl);
|
||||
|
||||
if (H5O_PLIST[0].free)
|
||||
if (H5O_PLIST[0].free && fmeta->plist)
|
||||
ret_value = H5O_PLIST[0].free(fmeta->plist);
|
||||
|
||||
H5FL_FREE(H5O_fphdf5_t, fmeta);
|
||||
@ -571,7 +542,6 @@ H5O_fphdf5_debug(H5F_t UNUSED *f, const void *mesg,
|
||||
ret_value = H5O_LAYOUT[0].debug(f, fmeta->layout, stream, indent + 1, fwidth);
|
||||
ret_value = H5O_NAME[0].debug(f, fmeta->group, stream, indent + 1, fwidth);
|
||||
ret_value = H5O_NAME[0].debug(f, fmeta->dset, stream, indent + 1, fwidth);
|
||||
ret_value = H5O_EFL[0].debug(f, fmeta->efl, stream, indent + 1, fwidth);
|
||||
ret_value = H5O_PLIST[0].debug(f, fmeta->plist, stream, indent + 1, fwidth);
|
||||
|
||||
HDfprintf(stream, "}\n");
|
||||
|
Loading…
x
Reference in New Issue
Block a user