Commit Graph

3340 Commits

Author SHA1 Message Date
Quincey Koziol
2dab610c43 [svn-r9332] Purpose:
Bug fix

Description:
    Correct assertion to check pointer value correctly.

Platforms tested:
    AIX 5.1 (copper)
    too minor to require h5committest
2004-09-28 14:45:28 -05:00
Quincey Koziol
85597e5cc7 [svn-r9330] Purpose:
Bug fix

Description:
    Another attempt to fix the address overflow in the core VFL, hopefully one
that works on 64-bit platforms.

Platforms tested:
    AIX 5.1 (copper)
2004-09-28 14:07:01 -05:00
James Laird
5c0011a713 [svn-r9329]
Purpose:
Feature

Description:
Datatypes and groups now use H5FO "file object" code that was previously
only used by datasets.  These objects will hold a file open if the file
is closed but they have not yet been closed.  If these objects are unlinked
then relinked, they will not be destroyed.  If they are opened twice (even
by two different names), both IDs will "see" changes made to the object
using the other ID.
When an object is opened using two different names (e.g., if a dataset was
opened under one name, then mounted and opened under its new name), calling
H5Iget_name() on a given hid_t will return the name used to open that hid_t,
not the current name of the object (this is a feature, and a change from the
previous behavior of datasets).

Solution:
Used H5FO code that was already in place for datasets.  Broke H5D_t's, H5T_t's,
and H5G_t's into a "shared" struct and a private struct.  The shared structs
(H5D_shared_t, etc.) hold the object's information and are used by all IDs
that point to a given object in the file.  The private structs are pointed
to by the hid_t and contain the object's group entry information (including its
name) and a pointer to the shared struct for that object.
This changed the naming of structs throughout the library (e.g., datatype->size
is now datatype->shared->size).  I added an updated H5Tinit.c to windows.zip.

Platforms tested:
Visual Studio 7, sleipnir, arabica, verbena

Misc. update:
2004-09-28 14:04:19 -05:00
Quincey Koziol
a841ea3529 [svn-r9327] Purpose:
Bug fix.

Description:
    Fix off-by-one error in Core VFL driver which would cause spurious address
or size overflow errors when an odd valued address or size was checked.

Platforms tested:
    FreeBSD 4.10 (sleipnir)
    Linux 2.4 (heping)
    Solaris 2.7 (arabica)
2004-09-27 23:34:38 -05:00
Quincey Koziol
3f2fb8bed1 [svn-r9322] Purpose:
Bug fix

Description:
    Fix situation where deleting a chunked datasets with B-tree nodes that
weren't in the metadata cache would die with a core dump.

Platforms tested:
    FreeBSD 4.10 (sleipnir)
    Linux 2.4 (heping)
    Solaris 2.7 (arabica)
2004-09-27 13:06:11 -05:00
HDF Admin
643811be02 [svn-r9321] Snapshot version 1.7 release 38 2004-09-26 04:47:53 -05:00
Leon Arber
41440bc2dc [svn-r9314] Purpose:
Bug fix

Description:
Fix for small memory leak that occurs when destroying the data transform
property.  Forgot to free the array of pointers to the temorary data.

Solution:
Freed memory.

Platforms tested:
sol + eirene

Misc. update:
2004-09-23 10:43:54 -05:00
Quincey Koziol
9fc48a0097 [svn-r9312] Purpose:
Bug fix.

Description:
    Allow I/O to occur on 0 element selections.

Platforms tested:
    h5committest
2004-09-22 22:05:15 -05:00
Quincey Koziol
f235187dba [svn-r9310] Purpose:
Code optimization

Description:
    Avoid performing a check on the number of objects in a group (which
currently involves iterating over all entries in the group's B-tree) before
calling H5G_get_obj<foo>_by_idx.  Instead, just have H5G_get_obj<foo>_by_idx()
notice when you've walked off the end and return fail then.

Platforms tested:
    FreeBSD 4.10 (sleipnir)
    h5committest
2004-09-22 15:01:27 -05:00
Albert Cheng
9d9621ef0c [svn-r9297] Purpose:
Bug fix.

Description:
Code would attempt to Calloc with zero count when a simple expression
that has no x term.  That resulted in NULL for some platform (like AIX).
That appeared as a failure treated as out of space.

Solution:
Checked if count is larger than 0 before making the calloc request.

Platforms tested:
Tested in copper (pp) where the failure appeared.  Also in eirene
as double check.  No h5committest as the change is trivial.
2004-09-21 20:18:47 -05:00
John Mainzer
30f2ba6e07 [svn-r9273] Purpose:
Port fix of parallel I/O mode confusion bug from the 1.6 tree to the 1.7 tree.


Description:

Collective I/O is not supported for point selections.  Thus when some
processes attempted I/O with point selections, and others without, some
attempted collective I/O while others did independent I/O.


Solution:

Arranged for all processes to compare notes before starting I/O, and
for all to use independent I/O if any one of them can't do collective
I/O.


Platforms tested:

copper
h5committested
eirene (parallel)

Misc. update:
2004-09-18 16:29:41 -05:00
Albert Cheng
6b2e47d974 [svn-r9271] Purpose:
Update for the new API, H5Pget_data_transform.

Platforms tested:
Copper only.  No h5committest since this is trivial.
2004-09-17 17:01:45 -05:00
Leon Arber
0df4bee931 [svn-r9267] Purpose:
Added H5Pget_data_transform
Added support for polynomial data transforms

Description:
There is now support for polynomial data transforms (ie, (2+x)*(x-5)) instead
of just linear ones.

Note that, in order to compute a polynomial transform, one temporary copy of
the original data must be stored for each occurence of "x" in the transform
expression.  This can result in very high memory usage for expressions of high
order.

Platforms tested:
sol + eirene

Misc. update:
2004-09-16 13:11:31 -05:00
Quincey Koziol
b73f323059 [svn-r9250] Purpose:
Bug fix

Description:
    Correct typedef for dataset region references to avoid struct alignment
issues on Crays.

Solution:
    Change the typedef for hdset_reg_ref_t from a struct to an array of
unsigned char's of the correct size and propagate the appropriate adjustments
around the code.

Platforms tested:
    FreeBSD 4.10 (sleipnir)
    Linux 2.4 (verbena) w/fortran
    Cray T90 (subzero) w/fortran
    Cray SV1 (wind) w/fortran & parallel
    Cray T3E (cyclone) w/fortran & parallel
2004-09-14 00:04:25 -05:00
HDF Admin
147951e4bb [svn-r9243] Snapshot version 1.7 release 37 2004-09-12 04:05:05 -05:00
Quincey Koziol
eb3e9ccd8a [svn-r9234] Purpose:
Code cleanup

Description:
    Tweak recent "forward compatibility" changes to the H5E* API (which allowed
for the old H5E API functions to remain unchanged) by allowing for the error
stack callback function (H5E_auto_t) to also remain unchanged from the 1.6
branch.  This required changing the H5E{get|set}_auto routines to have the
old style H5E_auto_t type (which didn't have a stack ID parameter) and the new
H5E{get|set}_auto_stack routines to have a newer "H5E_auto_stack_t" type (which
has a stack ID parameter).  This should make the H5E API changes as forwardly
compatible as possible.
    One side-affect of this change was that it was impossible to determine if
the current auto error callback was the old style (H5E_auto_t) or the new style
(H5E_auto_stack_t) of callback, so a new API function (H5Eauto_is_stack) was
adde to query this.

Platforms tested:
    FreeBSD 4.10 (sleipnir)
    IRIX64 6.5 (modi4)
    h5committest
2004-09-08 21:37:02 -05:00
Pedro Vicente Nunes
2ef1d47a76 [svn-r9218] Purpose:
bug fix

Description:

The H5O_mtime_decode function was not handling properly the case for the
Code Warrior compiler



Solution:

Platforms tested:
Code Warrior

Misc. update:
2004-09-07 14:44:18 -05:00
Pedro Vicente Nunes
0424d72fc1 [svn-r9212] Purpose:
bug fix

Description:

on the Cray SV1 an INT type was wrongly converted to a SHORT type
by the get_native_integer function

Choose the type based on the precision; this is to support cases
like the Cray SV1, where the size of short is 8 but precision is 32
 (e.g an INT (size 8, prec 64) would be converted to a SHORT
    (size 8, prec 32) if the size was the deciding factor)



Solution:

Platforms tested:
linux
solaris
aix

Misc. update:
2004-09-07 11:41:59 -05:00
HDF Admin
cfd312161f [svn-r9209] Snapshot version 1.7 release 36 2004-09-05 04:07:33 -05:00
Raymond Lu
922e8a4a8b [svn-r9208] Purpose: Bug fix
Description:  A few items were left out when tried to restore the old Error API.
There are also a few minor bug fixes.


Platforms tested:  arabica fuss h5committest.
2004-09-04 16:06:48 -05:00
Pedro Vicente Nunes
bd6857eab6 [svn-r9203] Purpose:
bug fix


Description:

Description:
the dataset region reference data was not portable between the Cray T3E and other machines




Solution:
this was due to the fact that the  buffer to store the heap ID and index was using a sizeof(int) for its
size


 4 is used instead of sizeof(int) to permit portability between
   the Crays and other machines (the heap ID is always encoded as an int32 anyway)




Solution:

Platforms tested:
linux
aix
solaris



Misc. update:
2004-09-03 14:27:40 -05:00
Raymond Lu
cb7f03a26f [svn-r9183] Purpose: New feature
Description:  Restore 6 old error API functions back to the library to be backward
compatible with v1.6.  They are H5Epush, H5Eprint, H5Ewalk, H5Eclear, H5Eset_auto,
H5Eget_auto.  These functions do not have error stack  as parameter.

Solution:  Internally, these functions use default error stack.

Platforms tested:  h5committest and fuss.

Misc. update: RELEASE.txt
2004-09-01 12:43:30 -05:00
Albert Cheng
e2fa9d8da4 [svn-r9172] Purpose:
"bug fix" sort of.

Description:
The current mpicc at TG-NCSA recognizes uint64_t but not
int64_t.  hdf5 code rightly assumes when the unsigned type
is defined, the corresponding signed type should be valid
too.  So, when it detected uint64_t is valid, it went ahead
using int64_t which ended in compiling failure.

Solution:
Changed the detection to check on int64_t instead.  This does
not change any logic, just goes around the mpicc compiler error
at TG-NCSA.

Platforms tested:
h5committested and tested at TG-NCSA (pp) too.

Misc. update:
2004-08-27 13:36:46 -05:00
Quincey Koziol
22d00ce23f [svn-r9155] Purpose:
Bug fix (sorta)

Description:
    Change reading of "missing" chunks from datasets with undefined fill
values to not overwrite the application buffer with random garbage from
memory.  Note that this is almost the same, since whatever garbage the
application had in those locations will still be there...

Platforms tested:
    FreeBSD 4.10 (sleipnir)
    IRIX64 6.5 (modi4)
    h5committested
2004-08-25 03:30:32 -05:00
Elena Pourmal
0a965d2236 [svn-r9154]
Purpose: Maintenance/bug fixes (OSF1 C++ and missing Fortran APIs)

Description: bringing 1.6 changes to 1.7

Solution:

Platforms tested: OSF1, Solaris 2.8, AIX5.1

Misc. update:
2004-08-24 22:44:59 -05:00
HDF Admin
93c167f3ff [svn-r9134] Snapshot version 1.7 release 35 2004-08-22 04:06:16 -05:00
Raymond Lu
3ac10b282b [svn-r9117] Purpose: Minor Bug Fix
Description:  In H5O_fill_new_decode and H5O_fill_new_encode, UINT32DECODE and
UINT32ENCODE were used to decode and encode message size, which is ssize_t.

Solution:  Change to INT32DECODE and INT32ENCODE.

Platforms tested:  fuss - very simple change.

Misc. update:
2004-08-19 09:26:46 -05:00
Raymond Lu
da6b493330 [svn-r9108] Purpose: Bug fix
Description: In H5O_fill_new_decode, it tries to read message size(-1) when
fill value is undefined for version 1.  During UINT32DECODE, if the machine is
64-bit, a value 0x00000000ffffffff is returned, which is like a valid value.

Solution: If fill value is undefined, don't read the message size, simply
assign -1 to it.

Platforms tested:  fuss - did h5committest for v1.6 already.
2004-08-18 14:05:40 -05:00
Quincey Koziol
2d3c6215f2 [svn-r9101] 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
2004-08-17 02:30:18 -05:00
HDF Admin
02ae88e353 [svn-r9089] Snapshot version 1.7 release 34 2004-08-15 04:05:47 -05:00
Robert E. McGrath
c58e0caeba [svn-r9066] Purpose:
Bug.  See other checkin.

Description:

Solution:

Platforms tested:

Misc. update:
2004-08-11 12:48:19 -05:00
Quincey Koziol
6ae26dba82 [svn-r9053] Purpose:
Bug fix

Description:
    Correct possible core dump when a datatype conversion function is
registered with the library after a compound datatype has been converted
(having it's type conversion information cached by the library).  The compound
datatype must have been created by inserting the fields in non-increasing
offset order to see the bug.

Solution:
    Re-sort the fields in the compound datatypes before recalculating the
cached information when performing the conversion on them.

Platforms tested:
    FreeBSD 4.10 (sleipnir)
    h5committested
2004-08-08 17:12:18 -05:00
HDF Admin
51bdf6c34d [svn-r9052] Snapshot version 1.7 release 33 2004-08-08 04:47:51 -05:00
Quincey Koziol
e3c46f3eef [svn-r9037] Purpose:
Code cleanup/bug fix

Description:
    Check for _O_BINARY being defined instead of O_BINARY, since we actually use
_O_BINARY.  (Note that this only affects Windows)

Platforms tested:
    FreeBSD 4.10 (sleipnir)
    Not tested w/h5committest
2004-08-06 14:05:20 -05:00
Quincey Koziol
14cc705352 [svn-r9024] Purpose:
Bug fix

Description:
    Correct buffer overrun in "multi" VFL driver that was writing past the
end of the "driver name" buffer when encoding the driver info block for the
file's superblock.

Platforms tested:
    FreeBSD 4.10 (sleipnir)
    Too minor to require h5committest
2004-08-05 13:44:27 -05:00
John Mainzer
8265779dc0 [svn-r9022] Purpose: Optimization of the cache code in H5C.
Description: Cache was running too slowly.

Solution: Added a hash table for indexing.  Retained the tree, but
	  only for dirty entries.  As we need to flush dirty entries
	  in increasing address order, this is sufficient.

          Updated statistics collection code for the above.

	  Converted a number of local functions into macros to avoid
	  the function call overhead.

	  Added code to disable the clean and dirty LRU lists in serial
	  mode.

	  Updated test code to account for the above changes.


Platforms tested: h5committested + serial, parallel, and fp on Eirene.

Misc. update:
2004-08-05 13:13:49 -05:00
Albert Cheng
5390a63a77 [svn-r9018] Purpose:
Bug fix (Failures when dataset size >= 1 GB, reported by Bill Loewe.)

Description:
In the IBM AIX system using 32bit mode, if a dataset size was 1GB or
larger, when the "end" of the dataset was selected, MPI would complain
it could not keep the Upper bound of a datatype within the range of
MPI_Aint.  This was because the old algorithm would derive the selection
with extent of each row first.  After all dimensions were processed,
it then calculate the start position and just displace the whole
MPI derived type.  So, the final MPI type was actually the start
position plus the whole dataset.  Since the start can be as big as
the whole dataset, this made the final derived twice as big as 1GB.
That would hit the 2GB MPI_Aint range limit in the 32 bit mode.

Solution:
Use a different algorithm to include the start position in the
defining of MPI type for each dimension.  When all dimensions
are processed, the MPI type represents the selection exactly.

Platforms tested:
h5committested

Misc. update:
2004-08-05 00:15:08 -05:00
Robert E. McGrath
2491ee240d [svn-r9009] Purpose:
Update Szip to accept 'n-bit' data

Description:
See earlier checkins.

Solution:

Platforms tested:

Misc. update:
2004-08-04 10:59:02 -05:00
Quincey Koziol
daa96590d3 [svn-r8987] Purpose:
Code cleanup

Description:
    Fix another batch of minor differences between the development and release
branches.

Platforms tested:
    FreeBSD 4.10 (sleipnir) w/parallel
    Too minor to require h5committest
2004-08-02 12:51:50 -05:00
Quincey Koziol
084ed88137 [svn-r8983] Purpose:
Update dependencies

Description:
    Update dependencies after config/depend1.in bugfix

Platforms tested:
    FreeBSD 4.10 (sleipnir) w/parallel
    IRIX64 6.5 (modi4)
    h5committested
2004-08-02 09:06:07 -05:00
Quincey Koziol
3df2828991 [svn-r8981] Purpose:
Code cleanup

Description:
    Various minor tweaks to clean code up and bring it into closer
syncronization with the release branch.

Platforms tested:
    FreeBSD 4.10 (sleipnir) w/parallel
    h5committested
    IRIX64 6.5 (modi4)
2004-08-02 09:03:40 -05:00
HDF Admin
e91a21cd3b [svn-r8979] Snapshot version 1.7 release 32 2004-08-01 03:46:18 -05:00
Quincey Koziol
c4015e03e5 [svn-r8969] Purpose:
Bug fix.

Description:
    Address two problems:
        - The computation of the scanline in the szip filter was being
            performed in the "can apply" callback routine instead of the
            "set local" routine.
        - The routine which allocated all the chunks for an entire dataset
            (which is invoked when the allocation time is early or late,
            rather than incremental) wasn't recording a failed filter in
            the information for the chunk, causing the library to believe
            that the chunk had the filter applied when it really hadn't.

Solution:
    - Move the scanline computation to the "set local" callback.

    - Record the filter mask with each chunk created when allocating them.

Platforms tested:
    FreeBSD 4.10 (sleipnir) w/szip
    Too obscure to require h5committest
2004-07-29 22:34:15 -05:00
Quincey Koziol
d60d367930 [svn-r8964] Purpose:
Revise new feature

Description:
    Add buffer type and version # bytes to the encoded datatype and dataspace
buffers (for H5Tencode & H5Sencode)

Platforms tested:
    FreeBSD 4.10 (sleipnir)
    Too minor to require h5committest
2004-07-27 22:51:43 -05:00
Quincey Koziol
ae0ae15956 [svn-r8962] Purpose:
Bug fix

Description:
    Allow I/O on extendible chunked datasets with (currently) zero-sized
dimensions to proceed harmlessly instead of dumping core on an assertion.

Solution:
    Removed assertion and added checks to avoid problem situation in H5TB_end

Platforms tested:
    FreeBSD 4.10 (sleipnir) w/ & w/o parallel
    Too minor to require h5committest
2004-07-27 22:22:12 -05:00
Quincey Koziol
8df0288b6d [svn-r8958] Purpose:
Bug fix

Description:
    Always write fill values to chunks when initializing entire B-tree and
any filters are defined.

Platforms tested:
    FreeBSD 4.10 (sleipnir) w/parallel
    Solaris 2.7 (arabica)
    Too minor to require h5committest
2004-07-27 15:41:57 -05:00
James Laird
5a19f181b3 [svn-r8953]
Purpose:
Bug fix

Description:
When a simple dataspace is created, its extent should be set before using it,
or it will silently function as a NULL dataspace.

Solution:
Added checks on user-supplied dataspaces.  Now dataspaces without extents set
will throw errors; users must explicitly set a dataspace to be NULL.

Platforms tested:
sleipnir, windows
2004-07-27 11:55:19 -05:00
Quincey Koziol
7a07c6cc13 [svn-r8946] Purpose:
Code cleanup, sorta

Description:
    Added ifdef sections for "H5_USING_PURIFY" in various places in the code,
which are designed to reduce the spurious "uninitialized memory read" warnings
from purify which are actually OK.  Note that this macro will have to be
turned on by adding it to the CFLAGS for the build - I didn't think it was
important enough to add a configure flag for.

    Also, the changes in H5HG.c optimize the walks through the objects in a
heap to only look at the 'used' entries instead of all the 'allocated' entries.

Platforms tested:
    Solaris 2.7 (arabica) w/purify
    Not tested by h5committest
2004-07-25 23:41:48 -05:00
Quincey Koziol
6543e55efa [svn-r8944] Purpose:
Code optimization

Description:
    Eliminate duplicated call to H5T_detect_class()

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.10 (sleipnir) w/parallel
    Too minor to require h5committest
2004-07-25 23:33:31 -05:00
Quincey Koziol
5ffd704c8c [svn-r8943] Purpose:
Bug fix

Description:
    Close memory leak I introduced in H5Sencode() routine.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.10 (sleipnir) w/parallel
    Too minor to require h5committest
2004-07-25 23:32:10 -05:00