Bug Fix
Description:
Replace an 'if' statement taken out in commit earlier today which was
necessary for routing around endian conversions when zero elements were
converted.
Platforms tested:
IRIX64 6.5 (modi4)
Code cleanup
Description:
Windows is generating hundreds of warnings from some of the practices in
the library. Mostly, they are because size_t is 32-bit and hsize_t is
64-bit on Windows and we were carelessly casting the larger values down to
the smaller ones without checking for overflow.
Also, some other small code cleanups,etc.
Solution:
Re-worked some algorithms to eliminate the casts and also added more
overflow checking for assignments and function parameters which needed
casts.
Kent did most of the work, I just went over his changes and fit them into
the the library code a bit better.
Platforms tested:
FreeBSD 4.4 (hawkwind)
Code cleanup
Description:
Added macro to check for overflows when assigning a value to a variable
which requires a cast down in size or precision.
Platforms tested:
FreeBSD 4.4 (hawkwind)
Code cleanup (sorta)
Description:
H5_SIZEOF_HSIZE_T was missing from among the definitions we provide for
the variables we declare.
Solution:
Added it.
Platforms tested:
FreeBSD 4.4 (hawkwind)
Bug fix
Description:
A couple more compile problems from the recent elimination of IDs from
internal function calls.
Platforms tested:
IRIX64 6.5 (modi4)
Bug fix.
Description:
Builds for parallel testing exposed some places that I forgot to get rid of
using IDs in internal APIs.
Solution:
Switch sections of code to use proper data structures instead of IDs.
Platforms tested:
Parallel compiles from daily tests.
Code cleanup
Description:
Got rid of IDs from internal API functions and also got rid of API calls
from internal functions.
Platforms tested:
FreeBSD 4.4 (hawkwind)
Code cleanup & bug fixes
Description:
Clean up memory leaks when shutting down H5P API.
Remove all IDs from internal API calls, except for H5P_isa_class, which
should be the only internal API call which accepts an ID besides the H5I*
functions.
Platforms tested:
FreeBSD 4.4 (hawkwind)
Bug fix & code cleanup
Description:
Be much more careful when closing all the IDs in an ID group, re-flush
the ID cache after each ID closed, since the close callback for an ID could
get back into the ID API code and create havoc.
Platforms tested:
FreeBSD 4.4 (hawkwind)
Code cleanup
Description:
Be more careful when starting up and shutting down APIs, only initialize
variables which are actually shut down already.
Get rid of IDs from internal function calls
Platforms tested:
FreeBSD 4.4 (hawkwind)
Code cleanup
Description:
Get rid of IDs from internal function calls and some small cleanups from
the old-stype => generic property list conversion.
Platforms tested:
FreeBSD 4.4 (hawkwind)
Bug fix.
Description:
The internal B-tree code was dumping core with an assertion failure when
flushing data to the file if too many objects were put into the same B-tree
(forcing the root node to split, I think).
Solution:
Fixed the B-tree copy routine to copy the correct number of raw keys.
Platforms tested:
FreeBSD 4.4 (hawkwind), Solaris 2.6 (baldric)
Purpose:
1. temporarily fixed mtime test when daylight saving changes on windows.
2. move H5_inline defination for win32 to windows H5pubconf.h at H5private.h.
Description:
1. the mtime test is not working when the daylight saving ends. Hard-coded back to the correct time. Need to find a universal solution later.
2. Move H5_inline defination for win32 at H5private.h into windows specificed H5pubconf.h so that windows maintenance can be more easy to handle.
Solution:
see above.
Platforms tested:
windows 2000, confirmed at Linux Red Hat 6.2.
Code speedups, etc.
Description:
Bring in new algorithms and data structures for dealing with hyperslabs.
This speeds up the hyperslab I/O for non-regular hyperslabs by a huge
amount.
Currently, the new API functions are ifdef'ed out, pending discussion
and consensus approval.
Platforms tested:
FreeBSD 4.4 (hawkwind)
Purpose:
Switch from old property list to new generic property list.
Description:
Mainly changed H5Pcreat, H5Pclose, H5Pcopy.
Platforms tested:
IRIX64 6.5, FreeBSD, SunOS 5.7.
Bug fix
Description:
H5S_select_elements is not actually putting the new point on the list of
points selected when there are no points currently selected and the
'append' operation is chosen.
Solution:
Add new point to list correctly.
Platforms tested:
FreeBSD 4.4 (hawkwind)
Bug fix.
Description:
H5S_select_hyperslab fails to correctly define a hyperslab when the space
to put the hyperslab into is currently a 'none' selection and the hyperslab
operation is the 'or' operation.
Solution:
Detect the situation and internally modify the hyperslab operation to be
a 'set' operation, since that's the next affect desired.
Platforms tested:
FreeBSD 4.4. (hawkwind)
Bug Fix
Description:
Section of code which defined file offset and length macros was removed
a while ago and found during testing just now.
Solution:
Replaced section of code to define macros.
Platforms tested:
IRIX64 6.5 (modi4)
Code cleanup.
Description:
Fix a few compiler warnings from the file creation property list -> generic
property list conversion. Also change a hard-wired value (8) for the
number of B-tree key values to a value that uses the enum's generated by
the compiler.
Platforms tested:
FreeBSD 4.4 (hawkwind)
Bug Fix
Description:
Purify detected an uninitialized memory read in H5Pset_chunk and a memory
leak in H5P_remove.
Solution:
Patched both up.
Platforms tested:
Solaris 2.7 (arabica)
Bug fix
Description:
Remove 'const' modifier in prototype for H5D_new, the dcpl_id parameter
needs to be non-const.
Platforms tested:
Eyeballed (reported on gondolin)
Document bug fix.
Description:
When reading or writing to chunked datasets and the data needed datatype
conversion, and the amount of data was more than one conversion buffer,
data in the conversion buffer was getting corrupted.
Solution:
Corrected error in advancing buffer pointer where it was being advanced
by the number of elements instead of the number of bytes.
Platforms tested:
FreeBSD 4.4 (hawkwind)
Bug fix/optimization.
Description:
Single, contiguous (in memory) hyperslabs are able to be transferred in one
I/O operation, but weren't being detected correctly by the code in
H5S_all_read()/H5S_all_write() and were getting routed into slower I/O
routines. (Or, possibly failing in some circumstances)
Solution:
Wrote code to correctly detect single contiguous hyperslabs in memory and
adjust arrays and buffer pointers describing the memory information so that
the entire hyperslab can be transferred in one operation.
Platforms Tested:
FreeBSD 4.4 (hawkwind)
Bug fix.
Problem:
When an entire dataset was selected (through whatever means, H5S_ALL, making
an explicit "all" selection, etc.), the code was not allowing the optimized
routine to read the entire dataset in at once when the current dimensions
did not match the maximum dimensions and instead was defaulting to a [much]
slower method to read in the dataset.
Solution:
Took out check which was requiring current dimensions to be equal to the
maximum dimensions.
Platforms tested:
FreeBSD 4.4 (hawkwind)
Bug Fix
Description:
When writing (or reading) the entire dataset to a chunked dataset, there
was a boundary case where the code to generate the description of the
piece of the dataset to read into the buffer for data conversion would
attempt to read off the boundary of the dataset. This was occuring because
the code to detect the edge of the dataset was not propagating the change
up through the remaining dimensions when an edge in a fast changing
dimension was detected.
Solution:
Propagate edge detection up through slower changing dimensions properly.
Platforms tested:
Linux 2.2.18smp (eirene)