diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2004-08-17 07:30:23 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2004-08-17 07:30:23 (GMT) |
commit | 8d40aa83cfa3cc2a062d30ffbc2eb423a3485985 (patch) | |
tree | ab5bc91581a65695b4b9a37a4ae395bee70dad54 /src/H5Dpkg.h | |
parent | f69b447fab64f5cc7cdd66b6fc50a9ccc07745d6 (diff) | |
download | hdf5-8d40aa83cfa3cc2a062d30ffbc2eb423a3485985.zip hdf5-8d40aa83cfa3cc2a062d30ffbc2eb423a3485985.tar.gz hdf5-8d40aa83cfa3cc2a062d30ffbc2eb423a3485985.tar.bz2 |
[svn-r9102] Purpose:
Bug fix
Description:
1 - Dataset contiguous storage cache information had a bug where it was
possible to try to access invalid cache information if the cache wasn't filled
the first time it attempted to loop through the list of offset/length vectors.
2 - Additionally, the contiguous storage cache information was being used
in certain circumstances from the chunked dataset I/O code path, which was
generally fatal since the chunk storage and contiguous storage information
were stored together in a union.
Solution:
1 - Avoid special case of first trip through loop over offset/length
I/O vectors and always check for the contiguous storage sieve buffer buffer
being NULL.
2 - Change the union containing the chunk and contiguous storage cache
information into a struct, allowing both to be used at the same time.
Platforms tested:
FreeBSD 4.10 (sleipnir)
h5committested
Diffstat (limited to 'src/H5Dpkg.h')
-rw-r--r-- | src/H5Dpkg.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/H5Dpkg.h b/src/H5Dpkg.h index 30183c3..8b88e92 100644 --- a/src/H5Dpkg.h +++ b/src/H5Dpkg.h @@ -93,8 +93,12 @@ struct H5D_t { H5O_fill_t fill; /* Dataset fill value information */ /* Buffered/cached information for types of raw data storage*/ - union { + struct { H5D_rdcdc_t contig; /* Information about contiguous data */ + /* (Note that the "contig" cache + * information can be used by a chunked + * dataset in certain circumstances) + */ H5D_rdcc_t chunk; /* Information about chunked data */ }cache; }; |