Code cleanup
Description:
Patch up a few places where the metadata cache could ask for a read lock
instead of a write lock and other minor code cleanups.
Platforms tested:
FreeBSD 4.9 (sleipnir)
too minor to need h5committest
Misc. update:
Update
Description:
Added extra parameter to the H5AC_protect() function that indicates
if the cache being asked for is going to be written to or just read
from. Those AC_protect calls that were H5AC_find calls are now
read-only. The rest are writes.
Platforms tested:
Linux (h5committest not needed due to size and small impact)
Misc. update:
Bug fix.
Description:
Correct bug where a file opened twice, once with read-write permission
and once with read-only permission would cause closing the file with the
read-only file ID to fail because it was trying to flush information out
of the file.
Solution:
Check the permissions on file IDs that are being closed and only flush
when the particular file ID was opened with write permission.
Platforms tested:
FreeBSD 4.9 (sleipnir)
too small to need h5committest
Misc. update:
Removal of H5AC_find()
Description:
The H5AC_find() function is mostly redundant and with the new
Flexible Parallel HDF5 stuff, we need to do locking on metadata
returned from the H5AC_find() anyway. So, all of the locking stuff
will be placed in the H5AC_{un}protect() functions. The H5AC_find()
is no longer needed.
Solution:
Replaced all H5AC_finds with H5AC_protects and H5AC_unprotects.
Platforms tested:
Linux (Fortran & C++)
Solaris (Fortran)
Irix (Parallel & Fortran)
Misc. update:
bug fix
Description:
The same h5detect bug also happens in this branch.
Solution:
remove h5detect.c from the windows source directory.
Platforms tested:
windows 2000
Misc. update:
Code cleanup/bug fix
Description:
Move metadata cache calls around a bit so they protect the usage of the
metadata better.
Platforms tested:
FreeBSD 4.9 (sleipnir)
too small to need h5committest
Fix, of a sort
Description:
Some of the code would get an object from the cache via the
H5AC_find() function and then modify the returned object. This
behavior is incorrect as the pointer returned via the H5AC_find()
function is supposed to be read only.
Solution:
Changed the H5AC_finds to H5AC_protect() instead and added the
appropriate H5AC_unprotect() function.
Platforms tested:
(simulated h5committest by hand since it doesn't work for me)
Linux (Fortran, C++)
Solaris (Fortran)
AIX (Fortran, C++)
SGI (Parallel, Fortran)
Bug fix
Description:
The VFL driver ID in a file's access proprty list wasn't being reference
counted correctly, causing the VFL driver to get prematurely closed after
several calls to "H5Pget_access_plist->H5Pclose".
Solution:
Increment VFL driver ID reference count when copy of file's access property
list is made in H5Pget_access_plist()
Platforms tested:
FreeBSD 4.9 (sleipnir)
h5committest
Code cleanup
Description:
Clear up a couple of minor issues with compiling the library with a C++
compiler.
Platforms tested:
FreeBSD 4.9 (sleipnir)
Too minor to require h5committest
Bug Fix and code cleanup
Description:
Correct error in H5T_detect_class that was causing nested compound datatypes
with to not detect the datatype class of fields correctly, which caused errors
with fill-values, variable-length datatypes and chunks later on.
Return the rank of the array datatype from H5Tget_array_dims(), like
H5Sget_dims().
Lots of cleanups to datatype code, to make the handling of arrays, compound
types, variable-length strings and sequences and enumerated types more
consistent and robust.
Platforms tested:
FreeBSD 4.9 (sleipnir)
h5committest
Purpose:
Enhanced indexing; copy edits.
Description:
Restructured index and clarify descriptions and/or make them more
parallel; added link to "Other tools"
Added note that h4toh5 and h5toh4 are no longer part of the HDF5 library
distribution
Lots of copy edits
Platforms tested:
IE 5, Safari
Bug fix
Description:
When datasets are deleted from a file, they are removed from the sieve
buffer, but instead of invalidating only the part of the sieve buffer affected,
the sieve buffer code would throw away the entire sieve buffer, potentially
including other raw data in the buffer that hadn't been written to disk yet.
Solution:
Improve the sieve buffer clearing code to handle partial invalidations.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest
new feature
Description:
Added a new option of "setenvN" which does
set environment variable with $1 values
e.g., setenvN 3 x a b c is same as setenv x="a b c".
Platforms tested:
No h5committest. Tested by hand in copper.
Misc. update:
Purpose:
bug
Description:
pablo failed to build properly
Solution:
make needed header files on the fly once again. also allowed for length of
hdf entry names to be 80 characters.
Platforms tested:
modi4, copper, arabica, verbena
Misc. update:
Purpose:
Bug fix
Description:
pablo failed to build properly
Solution:
make needed header files on the fly once again.
Platforms tested:
modi4, copper, verbena, arabica
Misc. update:
Purpose:
Bug fix
Description:
pablo build failed.
Solution:
Fixed the makefile so that the needed header files are again created on the
fly.
Platforms tested:
modi4, copper, verbena, arabica
Misc. update:
bug fix
Description:
h5diff would incur a segmentation fault in Alpha clusters when
the percentage option is used. This was due to memory aliagment
issue when the options variable is declared as a local variable
in main().
Moved the declaration to a global declaration.
Platforms tested:
"h5committested"
And tested at cluster QT of SNL.
Misc. update:
Code cleanup
Description:
Clean up some of the code for writing out dataspace and datatype
information.
Platforms tested:
FreeBSD 4.8 (sleipnir)
too small to need h5committest
Bug fix
Description:
H5Gget_objname_by_idx should allow NULL for the 'name' parameter, to allow
for querying for the name's length.
Solution:
Allow NULL for the 'name' parameter, the internal functions were already
ready to handle that case.
Clean up RM information about H5Gget_objname_by_idx and
H5Gget_objtype_by_idx also.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest
Bug fix
Description:
Correct problem with mis-aligned string pointers on certain architectures
(i.e. on modi4) causing a core dump. The string pointers can be mis-aligned
due to being part of a compound datatype and how our compound type conversion
routines work.
Solution:
Allocate string with temporary variable and memcpy() the pointer to the
new string into the type conversion buffer, instead of dereferencing the type
conversion buffer directly.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest
Code cleanup
Description:
Remove various "fixtype" routines which duplicate (and actually pre-date)
the functionality in H5Tget_native_type in favor of having the tools call
H5Tget_native_type(). This provides the same functionality (actually better
functionality, since the old "fixtype" routines didn't handle alignment of
compound fields correctly) and reduces the amount of code to maintain.
Add additional tests to dump out a "complex" compound datatype which
exercises more code in the library for aligning compound fields correctly.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest
Bug fix
Description:
Temporary files were not cleaned out because the definiton of
temporary files had not been updated.
Solution:
Updated it.
Platforms tested:
Tested by hand in Copper while i was testing the MPE change.
Misc. update:
Bug fix
Description:
MPE color definitions were missing for new API.
Solution:
Updated it.
Platforms tested:
Tested by hand in Copper since that is the only place that
MPE option works currently.
Misc. update: