Commit Graph

3340 Commits

Author SHA1 Message Date
James Laird
83ab4727e5 [svn-r8712] Fixed bugs in H5I code 2004-06-21 13:25:08 -05:00
James Laird
a4db480904 [svn-r8711] Fixed bugs in H5I code, updated manifest. 2004-06-21 13:21:04 -05:00
James Laird
f249eed71d [svn-r8707] Changed the way HDF5 handles hid_t's and added API functions to allow users to register IDs and ID types at runtime. 2004-06-18 11:56:04 -05:00
Raymond Lu
5fcc0b141b [svn-r8705] Purpose: Bug fix and new test.
Description:  This is an enhancement after a user reported data writing failure
for array datatype of compound type with variable-length type in the v1.6 branch.

Solution:  Added new test and ran with Purify.  Fixed memory errors and leaks in
H5Tconv.c.

Platforms tested:  h5committest
2004-06-18 11:18:42 -05:00
Raymond Lu
071756aa66 [svn-r8702] Purpose: Bug fix.
Description:  After I added H5S_NULL dataspace dumper test, the output didn't
match XML schema for attribute data.

Solution:  changed.

Platforms tested:  RH 8(fuss),  only dumper is involved, minor change.
2004-06-17 16:46:19 -05:00
Quincey Koziol
32336040a2 [svn-r8696] Purpose:
Code optimizations

Description:
    Eliminate memset() call in H5S_set_extent_simple().

    Use malloc() instead of calloc in H5B<mumble>.

    Change global heap code to track heap objects that are in use in order to
allocate new objects more quickly and also to avoid memset() and calloc() calls.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.10 (sleipnir) w/parallel
    Too minor to require h5committest
2004-06-16 13:56:52 -05:00
Quincey Koziol
2b81894af7 [svn-r8694] Purpose:
Code optimization

Description:
    Avoid memcpy() when setting up new chunk coordinates

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.10 (sleipnir) w/parallel
    Too minor to require h5committest
2004-06-15 11:12:29 -05:00
Quincey Koziol
7c18329abe [svn-r8692] Purpose:
Code optimization

Description:
    Avoid making copy of default vlen allocation info when default DXPL is
used.  Just retarget pointer to point to default info directly.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.10 (sleipnir) w/parallel
    Too minor to require h5committest
2004-06-15 11:02:44 -05:00
Quincey Koziol
193fc7a70f [svn-r8690] Purpose:
Code optimization

Description:
    Be smarter about copying hyperslab selection data and avoid memcpy() calls.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.10 (sleipnir) w/parallel
    Too minor to require h5committest
2004-06-15 09:58:39 -05:00
Quincey Koziol
fabb5167ba [svn-r8686] Purpose:
Code optimization

Description:
    Eliminate memcpy() when using default DXPL by pointing at existing
default object, instead of copying it.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.10 (sleipnir) w/parallel
    Too minor to require h5committest
2004-06-14 15:39:08 -05:00
Quincey Koziol
ef01629bb2 [svn-r8683] Purpose:
Code optimization

Description:
    Use 'size_t' instead of 'hsize_t' to track the number of elements in
memory buffers, especially for type conversion.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.10 (sleipnir) w/parallel
    Too minor to require h5committest
2004-06-14 14:32:02 -05:00
Raymond Lu
f5a192ff0d [svn-r8681] Purpose: Take out an unnecessary step
Description:  I put H5T_lock in H5T_open in last checkin but found it's
unnacessary.

Solution:  Took it out.

Platforms tested:  RH 8(fuss).  Simple change.
2004-06-14 11:21:38 -05:00
Quincey Koziol
c373a3dc7c [svn-r8679] Purpose:
Code optimization

Description:
    Detect when a default property list is being used and just copy over the
default VL allocation properties, instead of querying for them.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.10 (sleipnir) w/parallel
    Too minor to require h5committest
2004-06-13 20:23:22 -05:00
Quincey Koziol
0e94f35c1a [svn-r8677] Purpose:
Code cleanup & optimization

Description:
    Remove old structures that used a union to store information about the
dataspace extent and just store the information directly in the dataspace
extent itself.

    Remove ifdef'd references to permutation ordering in dataspaces.  We'll
definitely need more than this code if/when we implement this feature.

    Change allocation of dataspace information from calloc() to malloc().

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.10 (sleipnir) w/parallel
    Too minor to require h5committest
2004-06-13 19:33:03 -05:00
Quincey Koziol
986f335251 [svn-r8675] Purpose:
Code optimization

Description:
    Using existing dataspace extent copying routine instead of duplicating the
code (more slowly).

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.10 (sleipnir) w/parallel
    Too minor to require h5committest
2004-06-13 15:11:38 -05:00
Quincey Koziol
925f2ba710 [svn-r8673] Purpose:
Code optimization

Description:
    Revised dataspace selections to use a more "object oriented" mechanism
to set the function pointers for each selection and selection iterator.  This
reduces the amount and number of times that dataspace selection info has to
be copied.

    Additionally, change hyperslab selection information to be dynamically
allocated instead of an inline struct.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.10 (sleipnir) w/parallel
    Too minor to require h5committest
2004-06-13 14:08:17 -05:00
HDF Admin
b33344a7be [svn-r8672] Snapshot version 1.7 release 28 2004-06-13 03:30:32 -05:00
Quincey Koziol
ab989cd1a8 [svn-r8670] Purpose:
Code optimization

Description:
    Avoid a memory copy by directly reading from the variable-length sequence
buffer when there is no type conversion on the way to disk.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.10 (sleipnir) w/parallel
    Too minor to require h5committest
2004-06-12 22:11:27 -05:00
Quincey Koziol
46e9134612 [svn-r8668] Purpose:
Code optimization

Description:
    Avoid running conversion routine when it's a noop.

    Also, pick a minimum size for the variable-sized sequence conversion
buffer, instead of allocating lots of small buffers.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.10 (sleipnir) w/parallel
2004-06-12 21:23:13 -05:00
Quincey Koziol
53a9be3748 [svn-r8666] Purpose:
Code optimization

Description:
    Restructure conversion loop of variable-length objects to avoid walking
through memory backwards and allocating as many temporary buffers.  (This uses
the optimized method used in the atomic type conversions)

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.10 (sleipnir) w/parallel
    Too minor to require h5committest
2004-06-12 20:00:24 -05:00
Quincey Koziol
8b247f8aa3 [svn-r8664] Purpose:
Code optimization

Description:
    Allow global heap collections to grow in size (up to a 64K limit) if they
are able to.  This allows them to grow to a more reasonable size than the 4K
minimum size.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.10 (sleipnir) w/parallel
    Too minor to require h5committest
2004-06-12 17:32:19 -05:00
Raymond Lu
ea3103c15e [svn-r8661] Purpose: Add comments.
Description:  More comments to clarify action.


Platforms tested:  No code change, no test.
2004-06-11 15:18:43 -05:00
Quincey Koziol
ae69372425 [svn-r8656] Purpose:
Code optimization

Description:
    Eliminate redundant memory allocation for type conversion of variable-length
sequences.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.10 (sleipnir) w/parallel
    Too minor to require h5committest
2004-06-11 09:08:02 -05:00
Quincey Koziol
ae64ed8364 [svn-r8651] Purpose:
Code optimization

Description:
    Eliminate redundant memset() when creating chunk map structure.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.10 (sleipnir) w/parallel
2004-06-10 16:34:57 -05:00
Quincey Koziol
8b82f6d9f0 [svn-r8648] Purpose:
Code optimization

Description:
    Eliminate some operations through temporary variables in H5F_addr_encode.
Eliminate some redundant memset()'s of structures that will be completely
overwritten in the variable-length datatype code.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.10 (sleipnir) w/parallel
2004-06-10 16:02:43 -05:00
Raymond Lu
7ce626721c [svn-r8646] *** empty log message *** 2004-06-10 13:48:09 -05:00
Quincey Koziol
29f91cd95d [svn-r8639] Purpose:
Code optimization

Description:
    Call malloc() instead of calloc() for data structure that we completely
initialize.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.10 (sleipnir) w/parallel
2004-06-09 14:55:47 -05:00
Quincey Koziol
70044f9c88 [svn-r8636] Purpose:
Code optimization

Description:
    Don't allocate conversion buffer larger than the user's buffer.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.10 (sleipnir) w/parallel
    too minor to require h5committest
2004-06-09 13:07:36 -05:00
Quincey Koziol
1a9312bb6a [svn-r8630] Purpose:
Bug fix

Description:
    Correct potential file corruption from mis-setting the metadata accumulator
address. (Bugfix contributed by Sean Monner <seanm@quadrus.com>)

Solution:
    When the new metadata overlaps with the end of the metadata accumulator and
the accumulator grows in size, don't reset the address of the accumulator, since
it hasn't moved.

Platforms tested:
    FreeBSD 4.9 (sleipnir)
    too minor to require h5committest
2004-06-09 08:57:43 -05:00
Quincey Koziol
67a1ff05db [svn-r8625] Purpose:
Code optimization

Description:
    Avoid pushing errors on error stack when an object is not found in a B-tree.
Sometimes we are just checking if the object exists before we insert it into
the B-tree and the higher levels in the library should be responsible for
determining if not finding the object in B-tree is really an error.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.10 (sleipnir) w/parallel
    too minor to require h5committest
2004-06-08 10:25:58 -05:00
Quincey Koziol
8957d31809 [svn-r8623] Purpose:
Code optimization

Description:
    Use default dataset transfer property list for internal metadata I/O
operations when parallel I/O is disabled.  This avoids multiple copies of
the properties being made when the information is not needed.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.10 (sleipnir) w/parallel)
2004-06-08 09:33:25 -05:00
HDF Admin
95da7ce5c4 [svn-r8620] Snapshot version 1.7 release 27 2004-06-06 03:27:17 -05:00
Quincey Koziol
4d3188e588 [svn-r8618] Purpose:
Fix makefiles, dependencies & manifest after source file rename.
2004-06-05 14:32:31 -05:00
Quincey Koziol
1437b0bde7 [svn-r8616] Purpose:
Rename these files

Description:
    Since these files contain functions that are part of the dataset information
now, rename them to H5D<foo>.c
2004-06-05 14:10:41 -05:00
Quincey Koziol
339a81a766 [svn-r8613] Purpose:
Refactor code

Description:
    Move chunk and contiguous cached raw data from file information to dataset
information.  This simplifies a number of internal interfaces, aligns the
code with it's purpose better and should allow more optimizations to the
chunked data I/O performance.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.10 (sleipnir)
    h5committest

Misc. update:
2004-06-05 14:04:49 -05:00
Raymond Lu
825a435d36 [svn-r8604] Purpose: bug fix
Description:  For opaque datatype, if tag isn't defined, some operations will
have trouble because the tag string is null.

Solution:  Initialize the tag string to empty string after the opaque type is created.

Platforms tested:  h5committest
2004-06-02 11:35:43 -05:00
Quincey Koziol
1ec351813b [svn-r8600] Purpose:
Code optimization

Description:
    Don't recompute the internal index value for looking up the chunk in the
hash table, just use the value already computed from iterating through the
chunks.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.9 (sleipnir) w/parallel
2004-05-31 14:59:59 -05:00
Quincey Koziol
2ce06c3912 [svn-r8590] Purpose:
Code optimization & bug fix

Description:
    When dimension information is being stored in the storage layout message
on disk, it is stored as 32-bit quantities, possibly truncating the dimension
information, if a dimension is greater than 32-bits in size.

Solution:
    Fix the storage layout message problem by revising file format to not store
dimension information, since it is already available in the dataspace.

    Also revise the storage layout data structures to be more compartmentalized
for the information for contiguous, chunked and compact storage.

Platforms tested:
    FreeBSD 4.9 (sleipnir) w/parallel
    Solaris 2.7 (arabica)
    h5committest
2004-05-27 15:24:08 -05:00
Albert Cheng
3e56e3d7f9 [svn-r8565] Purpose:
Improvement

Description:
Break up the C99 integer types detection into even smaller
sub-module routines.  This has dropped the compile time (with
optimization) from 94 seconds to 6 seconds.

Platforms tested:
h5committested.

Misc. update:
2004-05-21 13:50:10 -05:00
Quincey Koziol
b03c529cdc [svn-r8560] Purpose:
Bug fix

Description:
    Add prototypes for H5S_select_serial_size() and H5S_select_serialize()
that were causing the library to fail when built with C++ compiler.

Platforms tested:
    FreeBSD 4.9 (sleipnir) w/CC=g++
    Only affects C++ builds, so no h5committest
2004-05-21 09:51:47 -05:00
Albert Cheng
bccad78144 [svn-r8558] Purpose:
Code cleanup

Description:
Changed local variables declaration to static to please compilers.

Platforms tested:
Tested by generating H5Tinit.c and verified it was same as before.
Tested in TG_NCSA.
2004-05-20 18:04:55 -05:00
Albert Cheng
54811a4dab [svn-r8548] Purpose:
Improvement.

Description:
Some compilers, e.g., Intel C v7.0, took a long time to compile
with optimization when a module routine contains many code lines.
Divide up all those types detections macros into subroutines, both
to avoid the compiler optimization error and cleaner codes.

Platforms tested:
h5committested.

Misc. update:
2004-05-20 13:24:43 -05:00
Quincey Koziol
910e19c646 [svn-r8544] Purpose:
Code optimization

Description:
    Expand the use of macros to inline trivial function pointer lookup and
calls to reduce the overall number of functions invoked during normal operation
of the library.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.9 (sleipnir) w/parallel
    Too minor to require h5committest
2004-05-20 10:32:09 -05:00
HDF Admin
229cc3b8c0 [svn-r8531] Snapshot version 1.7 release 26 2004-05-16 09:02:36 -05:00
Quincey Koziol
6a806870e9 [svn-r8520] Purpose:
Code optimization

Description:
    Don't make a separate allocation for the selection offset - incorporate
it into the selection structure as a fixed size array.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.9 (sleipnir) w/parallel
2004-05-13 18:26:10 -05:00
Quincey Koziol
a4c58cf641 [svn-r8515] Purpose:
Code optimization

Description:
    Eliminate some trivial functions with macros that perform the same
operation.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.9 (sleipnir) w/parallel
2004-05-13 16:02:37 -05:00
Quincey Koziol
a3fd0e95a7 [svn-r8513] Purpose:
Code optimization

Description:
    Defer creating the span trees for hyperslab selections until they are
actually needed (which may be never, in certain circumstances).

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.9 (sleipnir) w/parallel
2004-05-13 15:33:27 -05:00
Raymond Lu
831c8d9dfd [svn-r8508] Purpose: Bug fix
Description:  Somehow part of dtypes.c were wiped out by the change yesterday,
causing failure on verbena's PGI compiler.  Another issue is to run autoheader
to generate H5config.h.in.


Platforms tested:  verbena(changes only matter to it)
2004-05-12 16:43:12 -05:00
Quincey Koziol
13678f745b [svn-r8507] Purpose:
Code optimization

Description:
    Eliminate many redundant lookups to check for no-op type conversion by
remembering that a type conversion path is the no-op path.

    Also, don't allow non-no-op conversions which happen to be no-ops on a
particular machine (such as int<->long conversions on machines where int and
long are the same size and format, etc.) to replace the default no-op
conversion.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.9 (sleipnir) w/parallel
2004-05-12 13:44:26 -05:00
Raymond Lu
980683f1e1 [svn-r8505] *** empty log message *** 2004-05-11 15:26:35 -05:00