Commit Graph

133 Commits

Author SHA1 Message Date
Quincey Koziol
d8c33ee5d4 [svn-r7672] Purpose:
Code cleanup/refactoring/potential bug fix

Description:
    Migrate "template macro" changes from development branch back into this
branch, since they give about a 20% speedup for integer & floating-point type
conversions.  The also avoid a potential alignment bug on the Crays...

Platforms tested:
    FreeBSD 4.9 (sleipnir)
    h5committest not necessary, since the changes are already verified in the
    development branch.
2003-10-20 12:18:53 -05:00
Quincey Koziol
421dfab94c [svn-r7592] Purpose:
Bug fix

Description:
    Correct the size of the buffer needed for the destination value to use
the actual destination type size.

Platforms tested:
    FreeBSD 4.9 (sleipnir)
    too minor to require h5committest
2003-10-10 09:56:03 -05:00
Quincey Koziol
49727974f3 [svn-r7579] Purpose:
Bug fix

Description:
    The VL type conversion routine attempt to align it's destination buffer to
an offer that will work for both hvl_t and char * types, but the algorithm used
fails to work correctly on Cray machines.

Solution:
    Give up on attempting to align the buffer when it's allocated on the stack.
Just dynamically allocate it instead.

Platforms tested:
    FreeBSD 4.9 (sleipnir)
    Cray SV1 (wind)
2003-10-09 11:51:52 -05:00
Quincey Koziol
20a85b0e23 [svn-r7218] Purpose:
Bug fix

Description:
    H5T_BKG_TEMP was accidentally removed from library code, but is used by
application's datatype conversion routines.

Solution:
    Revert removal of H5T_BKG_TEMP.

Platforms tested:
    h5committest
2003-07-14 11:53:51 -05:00
Quincey Koziol
7d4bb6efd2 [svn-r7174] Purpose:
Bug fix

Description:
    Fix "unaligned access" warning on IA64 (and alpha, probably) machines.

Solution:
    Make certain that temporary destination buffer is aligned on correct
    boundary for type conversion.

Platforms tested:
    IA64 Linux cluster (titan)
    too small for h5committest
2003-07-07 11:33:13 -05:00
Quincey Koziol
55869bd2ff [svn-r7116] Purpose:
Update code

Description:
    Move "PABLO_MASK" definition above header file inclusion to avoid problems
with inline functions in header files.

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    h5committest
2003-06-27 10:59:48 -05:00
Quincey Koziol
90f8e6c9f7 [svn-r7096] Purpose:
Bug fix

Description:
    Aligned data is not being detected by type conversion routines correctly
on some Crays, causing corrupted data during I/O.

Solution:
    Add extra checking for strange pointer behavior on Crays.

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    h5committest
    Cray SV1 (wind)
    Cray T3E (hubble)
    Cray T90 (gypsy)
2003-06-24 15:08:35 -05:00
Raymond Lu
67449f5c65 [svn-r7021] Purpose: bug fix
Description: H5Tget_native_type fails for multiple kinds of datatype on Cray; it fails
             fix-length string type, too.


Platforms tested: Cray, h5committest
2003-06-10 16:04:58 -05:00
Quincey Koziol
390f1d0284 [svn-r6837] Purpose:
Code cleanup.

Description:
    Move many package or internal function prototypes and macro definitions
into tighter scope according to their current use.
    Added more comments where appropriate.
    Eliminate ancient, unused functions.
    Added a couple "accessor" functions to get parts of data structures which
were moved out of scope.

Platforms tested:
    h5committested
2003-05-08 15:09:07 -05:00
Quincey Koziol
7d63d5e3ff [svn-r6395] Purpose:
Code cleanup.

Description:
    Break up the ~9350 line H5T.c module into smaller pieces, which contain
    code for a particular feature or support for a datatype class.

    This should make the "main" H5T code (still in H5T.c) easier to support,
    as well as removing some of the "minor" routines from the user applications
    which don't use them (my rough estimates show about 4% reduction (~30K on
    a FreeBSD machine) in optimized, staticly-linked binaries for very simple
    programs)

Platforms tested:
    Tested h5committest {arabica (fortran), eirene (fortran, C++)
	modi4 (parallel, fortran)}

    FreeBSD 4.7 (sleipnir)

Misc. update:
    Update MANIFEST
2003-02-12 08:44:31 -05:00
Quincey Koziol
24d8506dd5 [svn-r6387] Purpose:
Bug Fix

Description:
    Metadata cache in parallel I/O can cause hangs in applications which
    perform independent I/O on chunked datasets, because the metadata cache
    can attempt to flush out dirty metadata from only a single process, instead
    of collectively from all processes.

Solution:
    Pass a dataset transfer property list down from every API function which
    could possibly trigger metadata I/O.

    Then, split the metadata cache into two sets of entries to allow dirty
    metadata to be set aside when a hash table collision occurs during
    independent I/O.

Platforms tested:
    Tested h5committest {arabica (fortran), eirene (fortran, C++)
        modi4 (parallel, fortran)}

    FreeBSD 4.7 (sleipnir) serial & parallel

Misc. update:
    Updated release_docs/RELEASE
2003-02-10 12:26:09 -05:00
Raymond Lu
3879dcce1b [svn-r6375]
Purpose:
    New feature
Description:
    Added Adler32 checksum as a filter in pipeline
Platforms tested:
    arabica (fortran), eirene (, C++), modi4 (parallel, fortran)
Misc. update:
    Update release_docs/RELEASE.
2003-02-04 13:50:56 -05:00
Quincey Koziol
04f2fe8ff8 [svn-r6301] Purpose:
Code cleanup & bug fix

Description:
    Cleanup another set of warnings on Windows and also fix mis-placed assertion
    that caused the daily tests to fail.

Platforms tested:
    IRIX64 6.5 (modi4) w/-n32
2003-01-18 08:17:33 -05:00
Quincey Koziol
1208e94eff [svn-r6296] Purpose:
Code cleanup

Description:
    Reduce warnings on Windows

Platforms tested:
    FreeBSD 4.7 (sleipnir)
2003-01-17 15:34:14 -05:00
Quincey Koziol
f8da76cb9f [svn-r6266] Purpose:
Code cleanup/new feature.

Description:
    Split FUNC_LEAVE into API and non-API specific versions.  This allows a
    solution to compiling this branch with C++, as well as reducing the size
    of the binaries produced.

Platforms tested:
    FreeBSD 4.7 (sleipnir) w/serial, parallel (including MPE) & thread-safe
2003-01-10 15:26:02 -05:00
Quincey Koziol
9a433b99a5 [svn-r6252] Purpose:
Lots of performance improvements & a couple new internal API interfaces.

Description:
    Performance Improvements:
        - Cached file offset & length sizes in shared file struct, to avoid
            constantly looking them up in the FCPL.
        - Generic property improvements:
            - Added "revision" number to generic property classes to speed
                up comparisons.
            - Changed method of storing properties from using a hash-table
                to the TBBT routines in the library.
            - Share the propery names between classes and the lists derived
                from them.
            - Removed redundant 'def_value' buffer from each property.
            - Switching code to use a "copy on write" strategy for
                properties in each list, where the properties in each list
                are shared with the properties in the class, until a
                property's value is changed in a list.
        - Fixed error in layout code which was allocating too many buffers.
        - Redefined public macros of the form (H5open()/H5check, <variable>)
            internally to only be (<variable>), avoiding innumerable useless
            calls to H5open() and H5check_version().
        - Reuse already zeroed buffers in H5F_contig_fill instead of
            constantly re-zeroing them.
        - Don't write fill values if writing entire dataset.
        - Use gettimeofday() system call instead of time() system when
            checking the modification time of a dataset.
        - Added reference counted string API and use it for tracking the
            names of objects opening in a file (for the ID->name code).
        - Removed redundant H5P_get() calls in B-tree routines.
        - Redefine H5T datatype macros internally to the library, to avoid
            calling H5check redundantly.
        - Keep dataspace information for dataset locally instead of reading
            from disk each time.  Added new module to track open objects
            in a file, to allow this (which will be useful eventually for
            some FPH5 metadata caching issues).
        - Remove H5AC_find macro which was inlining metadata cache lookups,
            and call function instead.
        - Remove redundant memset() calls from H5G_namei() routine.
        - Remove redundant checking of object type when locating objects
            in metadata cache and rely on the address only.
        - Create default dataset object to use when default dataset creation
            property list is used to create datasets, bypassing querying
            for all the property list values.
        - Use default I/O vector size when performing raw data with the
            default dataset transfer property list, instead of querying for
            I/O vector size.
        - Remove H5P_DEFAULT internally to the library, replacing it with
            more specific default property list based on the type of
            property list needed.
        - Remove redundant memset() calls in object header message (H5O*)
            routines.
        - Remove redunant memset() calls in data I/O routines.
        - Split free-list allocation routines into malloc() and calloc()-
            like routines, instead of one combined routine.
        - Remove lots of indirection in H5O*() routines.
        - Simplify metadata cache entry comparison routine (used when
            flushing entire cache out).
        - Only enable metadata cache statistics when H5AC_DEBUG is turned
            on, instead of always tracking them.
        - Simplify address comparison macro (H5F_addr_eq).
        - Remove redundant metadata cache entry protections during dataset
            creation by protecting the object header once and making all
            the modifications necessary for the dataset creation before
            unprotecting it.
        - Reduce # of "number of element in extent" computations performed
            by computing and storing the value during dataspace creation.
        - Simplify checking for group location's file information, when file
            has not been involving in file-mounting operations.
        - Use binary encoding for modification time, instead of ASCII.
        - Hoist H5HL_peek calls (to get information in a local heap)
            out of loops in many group routine.
        - Use static variable for iterators of selections, instead of
            dynamically allocation them each time.
        - Lookup & insert new entries in one step, avoiding traversing
            group's B-tree twice.
        - Fixed memory leak in H5Gget_objname_idx() routine (tangential to
            performance improvements, but fixed along the way).
        - Use free-list for reference counted strings.
        - Don't bother copying object names into cached group entries,
            since they are re-created when an object is opened.

        The benchmark I used to measure these results created several thousand
        small (2K) datasets in a file and wrote out the data for them.  This is
        Elena's "regular.c" benchmark.

        These changes resulted in approximately ~4.3x speedup of the
        development branch when compared to the previous code in the
        development branch and ~1.4x speedup compared to the release
        branch.

        Additionally, these changes reduce the total memory used (code and
        data) by the development branch by ~800KB, bringing the development
        branch back into the same ballpark as the release branch.

        I'll send out a more detailed description of the benchmark results
        as a followup note.

    New internal API routines:
        Added "reference counted strings" API for tracking strings that get
            used by multiple owners without duplicating the strings.
        Added "ternary search tree" API for text->object mappings.

Platforms tested:
    Tested h5committest {arabica (fortran), eirene (fortran, C++)
	modi4 (parallel, fortran)}
    Other platforms/configurations tested?
        FreeBSD 4.7 (sleipnir) serial & parallel
        Solaris 2.6 (baldric) serial
2003-01-09 12:20:03 -05:00
Raymond Lu
69195e41a9 [svn-r6206]
Purpose:
    Improve error handling
Description:
    make error handling better for VL string null pointer.
Platform tested:
    arabica
2002-12-13 16:17:46 -05:00
Quincey Koziol
d8397a6f42 [svn-r5842] Purpose:
Code cleanup

Description:
    Change most (all?) HRETURN_ERROR macros to HGOTO_ERROR macros, along with
    HRETURN macros to HGOTO_DONE macros.  This unifies the error return path
    from functions and reduces the size of the library by up to 10% on some
    platforms.

    Additionally, I improved a lot of the error cleanup code in many routines.

Platforms tested:
    FreeBSD 4.6 (sleipnir) serial & parallel and IRIX64 6.5 (modi4) serial &
    parallel.
2002-08-08 11:52:55 -05:00
Quincey Koziol
5588db111c [svn-r5840] Purpose:
Code cleanup

Description:
    Created a new H5I function which combined the some of the functionality of
    H5I_get_type and H5I_object: H5I_object_verify.

    Using this new function in the library trims another ~200 lines of code off
    the library and makes the resulting binaries smaller and faster also.

Platforms tested:
    FreeBSD 4.6 (sleipnir)
2002-07-31 14:17:12 -05:00
Quincey Koziol
40df66ebd0 [svn-r5834] Purpose:
Large code cleanup/re-write

Description:
    This is phase 1 of the data I/O re-architecture, with the following changes:
        - Changed the selection drivers to not actually do any I/O, they
            only generate the sequences of offset/length pairs needed for
            the I/O (or memory access, in the case of iterating or filling
            a selection in a memory buffer)
        - Wrote more abstract I/O routines which get the sequence of offset/
            length pairs for each selection and access perform the I/O or
            memory access.

    Benefits of this change include:
        - Removed ~3400 lines of quite redundant code, with corresponding
            reduction in the size of library binary.
        - Any selection can now directly access memory when performing I/O,
            if no type conversions are required, instead of just "regular"
            hyperslab and 'all' selections, which speeds up I/O.
        - Sped up I/O for hyperslab selections which have contiguous lower
            dimensions by "flattening" them out into lesser dimensional objects
            for the I/O.

    No file format or API changes were necessary for this change.

    The next phase will be to create a "selection driver" for each type of
        selection, allowing each type of selection to directly call certain
        methods that only apply to that type of selection, instead of passing
        through dozens of functions which have switch statements to call the
        appropriate method for each selection type.  This will also reduce
        the amount of code in the library and speed things up a bit more.

    Phase 3 will involve generating an MPI datatype for all types of selections,
        instead of only "regular" hyperslab and 'all' selections.  This will
        allow collective parallel I/O for all I/O operations which don't
        require type conversions.  It will also open up the door for allowing
        collective I/O on datasets which require type conversion.

    Phase 4 will involve changing the access pattern to deal with chunked
        datasets in a more optimal way (in serial).

    Phase 5 will deal with accessing chunked datasets more optimally for
        collective parallel I/O operations.

Platforms tested:
    FreeBSD 4.6 (sleipnir) w/ parallel & C++ and IRIX64 6.5 (modi4) w/parallel
2002-07-24 13:56:48 -05:00
Raymond Lu
814ea8b962 [svn-r5812]
Purpose:
    Bug fix.
Description:
    This should fix the nested VL datatype bug.
Platforms tested:
    modi4, eirene, impact
2002-07-17 16:11:47 -05:00
Raymond Lu
5febc6bb69 [svn-r5779]
Purpose:
    Bug fix
Description:
    Nested VL datatype test fails on 64-bit machines
Solution:
    bug fixed.
Platforms tested:
    IRIX64 6.5(modi4) 64-bit
2002-07-11 16:43:52 -05:00
Raymond Lu
57c1e06103 [svn-r5776]
Purpose:
    Bug fix.
Description:
    For nested VL datatype, the heap object of VL elements lower than top level
    weren't freed.
Solution:
    Read in the content of heap object for VL elements and free them in
    function H5T_conv_vlen.
Platforms tested:
    eirene
2002-07-10 13:12:03 -05:00
Raymond Lu
d934f081d2 [svn-r5764]
Purpose:
    Bug Fix.
Description:
    VL type memory leak when data is overwritten.
Solution:
    Free heap objects holding old data.
Platforms tested:
    Linux 2.2(eirene), IRIX 6.5(paz).
2002-07-03 16:06:55 -05:00
Quincey Koziol
e69e970a1c [svn-r5471] Purpose:
Code cleanup

Description:
    Broke the FUNC_ENTER macro into several macros, with more specialized
    uses (which followup mail will describe).  This was designed to move
    most/all of the checks which could be done at compile time to that point,
    instead of needlessly performing them (over & over :-) at run-time.
    This reduces the library's size (and thus staticly linked binaries) and
    has a minor speedup effect also.

Platforms tested:
    IRIX64 6.5 (modi4) with parallel & FORTRAN enabled, and additional testing
    on FreeBSD and Solaris immediately after the checkin.
2002-05-29 10:07:55 -05:00
Quincey Koziol
ca912c389e [svn-r5467] Purpose:
Code cleanup.

Description:
    Took Robb's recent ideas for improving the FUNC_ENTER/FUNC_LEAVE macros
    equivalents in the SAF library and adapted them to our library.  I added
    an additional macro which is equivalent to FUNC_ENTER:
        FUNC_ENTER_NOINIT - Has the API tracing code, etc. from FUNC_ENTER but
            none of the library or interface initialization code.  This is to
            be used _only_ for static functions and those which explicitly
            cannot have the library or interface initialization code enabled
            (like the API termination routines, etc.).

    This allowed many more of the functions in the library [but not all yet :-(]
    to be wrapped with FUNC_ENTER[_NOINIT]/FUNC_LEAVE pairs.

    It also reduced the size of the library and executables (by cutting out a
    bunch of code which was never executed), I'll e-mail the exact results when
    I've finished editing it.

Platforms tested:
    IRIX64 6.5 (modi4)
2002-05-28 13:17:12 -05:00
Pedro Vicente Nunes
b4ad5aae56 [svn-r5452]
Purpose:
eliminating the compiler warnings in Windows


Solution:
I am eliminating the compiler warnings in Windows.
the last 2 were:

1)
if((oid_list = H5MM_malloc(oid_count*sizeof(hid_t)))==NULL)
HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL,
"memory allocation failed");

D:\disk_w\hdf5\src\H5F.c(2590) : warning C4047: '=' : 'int ' differs in levels
of indirection from 'void *'

on the HGOTO_ERROR call , I replaced the NULL with FAIL

2)
*((float*)d) = *((double*)s);
D:\disk_w\hdf5\src\H5Tconv.c(6426) : warning C4244: '=' : conversion from 'double ' to 'float ', possible loss of data

I added the type cast
*((float*)d) = (float) *((double*)s);

we have now 0 errors 0 warnings on Windows !








Platforms tested:
    w2000, linux
2002-05-22 15:01:29 -05:00
Quincey Koziol
ef9c40754b [svn-r5200] Purpose:
Code Cleanup

Description:
    Clean up compiler warnings from the last bunch of checkins

Platforms tested:
    FreeBSD 4.5 (sleipnir)
2002-04-18 09:05:38 -05:00
Quincey Koziol
4433c85766 [svn-r5195] Purpose:
Code cleanup

Description:
    Got rid of the "H5T_BKG_TEMP" setting that was used internally to the
    library, since temporary background buffers are now handled by the
    individual conversion routines instead of in a global background buffer.

    No APIs were changed or affected by this.

Platforms tested:
    FreeBSD 4.5 (sleipnir)
2002-04-17 13:49:49 -05:00
Quincey Koziol
fa314a767e [svn-r5191] Purpose:
Bug fix

Description:
    When several level deep nested compound & VL datatypes are used, the data
    in the nested compound datatypes is incorrectly sharing the same "background
    buffer", causing data corruption when the data is written to the file.

Solution:
    Allocate a separate background buffer for each level of the nested types
    to convert.  (Also allocate temporary background buffers for array
    datatypes, where this sort of problem could occur also)

    Added more regression tests to check for these errors.

Platforms tested:
    FreeBSD 4.5 (sleipnir) & Solaris 2.6 (baldric)
2002-04-17 11:47:47 -05:00
Robb Matzke
209a8c3a8a [svn-r4862] ./hdf5-devel/src/H5Tconv.c
More optimizing for byte order conversion. Mostly just making code
easier to follow by simplifying Duff's device coding of the loops.

I also split the conversion function into two functions with different
names so output from H5T debugging indicates whether the optimized or
unoptimized case was invoked.

2002-01-25 10:48:54 Robb Matzke  <matzke@arborea.spizella.com>
	* H5T_conv_order: Removed Duff's device consisting of >500 lines of code. Unrolled
	   two loops by hand resulting in <300 lines of code
	   which is a few percent faster and far easier to read.
2002-01-25 11:21:33 -05:00
Quincey Koziol
14a242987f [svn-r4768] Purpose:
Bug Fix/Code Cleanup
Description:
    Duplicated call to H5T_path_find was being made.
Solution:
    Removed one... :-)
Platforms tested:
    FreeBSD 4.5 (sleipnir)
2002-01-03 13:03:38 -05:00
Quincey Koziol
233ef182ac [svn-r4645] Purpose:
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)
2001-11-27 13:02:00 -05:00
Quincey Koziol
d456c2bb82 [svn-r4643] Purpose:
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)
2001-11-27 11:29:13 -05:00
Quincey Koziol
c1131a02e5 [svn-r4393] Purpose:
Bug Fix
Description:
    Byte swapping routine was core dumping when attempting to convert 0
    elements.
Solution:
    Don't try to byte swap when there is nothing to do... :-)

    Apologies to Kent for my comments on Friday about testing his checkins,
    especially when it was I who needed to do moer testing. :-/

Platforms tested:
    Solaris 2.7 (arabica)
2001-08-20 12:19:30 -05:00
Quincey Koziol
94ce84440f [svn-r4390] Purpose:
Bug fix.
Description:
    Byte swapping algorithm wasn't converting the last 8 elements correctly.
Solution:
    Used correct variable... :-)
Platforms tested:
    FreeBSD 4.4 (hawkwind)
2001-08-18 20:00:22 -05:00
Quincey Koziol
5b83004cfb [svn-r4377] Purpose:
Code improvement
Description:
    The byte swapping routine for data conversion was inefficient.
Solution:
    Applied a number of optimizations which should yield around a 2-3 times
    faster algorithm.
Platforms tested:
    Solaris 2.6 (baldric)
2001-08-17 17:16:11 -05:00
Quincey Koziol
e87fc517b8 [svn-r4355] Purpose:
Code cleanup (sorta)

Description:
    When the first versions of the HDF5 library were designed, I remembered
    vividly the difficulties of porting code from a 32-bit platform to a 16-bit
    platform and asked that people use intn & uintn instead of int & unsigned
    int, respectively.  However, in hindsight, this was overkill and
    unnecessary since we weren't going to be porting the HDF5 library to
    16-bit architectures.

    Currently, the extra uintn & intn typedefs are causing problems for users
    who'd like to include both the HDF5 and HDF4 header files in one source
    module (like Kent's h4toh5 library).

Solution:
    Changed the uintn & intn's to unsigned and int's respectively.

Platforms tested:
    FreeBSD 4.4 (hawkwind)
2001-08-14 17:09:56 -05:00
Quincey Koziol
95862451f7 [svn-r4324] Purpose:
New Features!
Description:
    Start migrating the internal use of property lists in the library from the
    older implementation to the new generic property lists.

    Currently, only the dataset transfer property lists are migrated to the
    new architecture, all the rest of the property list types are still using
    the older architecture.

    Also, the backward compatibility features are not implemented yet, so
    applications which use dataset transfer properties may need to make the
    following changes:
        H5Pcreate(H5P_DATASET_XFER) -> H5Pcreate_list(H5P_DATASET_XFER_NEW)
            and
        H5Pclose(<a dataset transfer property list>) -> H5Pclose_list(id)

    This still may have some bugs in it, especially with Fortran, but I should
    be wrapping up those later today.

Platforms tested:
    FreeBSD 4.4 (hawkwind)
2001-08-10 15:47:05 -05:00
Quincey Koziol
990fadfbe5 [svn-r4181] Purpose:
Bug Fix, Code Cleanup, Code Optimization, etc.
Description:
    Fold in the hyperslab speedups, clean up compile warnings and change a
    few things from using 'unsigned' or 'hsize_t' to use 'size_t' instead.
Platforms tested:
    FreeBSD 4.3 (hawkwind), Solaris 2.7 (arabica), Irix64 6.5 (modi4)
2001-07-10 16:19:18 -05:00
Bill Wendling
5e483d0184 [svn-r3781] Purpose:
Update
Description:
    Changed

        #include <hdf_file.h>

    construct to

        #include "hdf_file.h"

    so that the GNU compiler can more easily pick up the dependencies
    which it places in the .depend and Dependencies files. Also
    regenerated the Dependencies to go along with this.
Platforms tested:
    Linux
2001-04-05 12:29:14 -05:00
Quincey Koziol
9461e68750 [svn-r3384] Purpose:
Bug Fix
Description:
    The 'carry' variable in the general floating point-to-floating point
    conversion routine wasn't getting initialized correctly and was causing
    problems while converting certain sequences of floating point numbers
    on the Cray SV1.
Solution:
    Added 'else carry=0;' line to always reset the carry variable to a known
    value.
Platforms tested:
    Cray SV1 (killeen)
2001-02-09 11:00:45 -05:00
Robb Matzke
5fa7f93263 [svn-r3346] ./hdf5-1.4/src/H5Tconv.c
2001-02-03 00:19:25 Robb Matzke  <matzke@llnl.gov>
	* H5T_conv_f_f: Fixed a bug where I had forgotten to increment the floating-point
	   exponent if rounding the significand resulted in a
	   carry. Thanks to Guillaume Colin de Verdiere for
	   finding this one!
2001-02-02 23:38:09 -05:00
Quincey Koziol
35bc545296 [svn-r3252] Purpose:
Code cleanup.
Description:
    Fixed _lots_ (I mean _tons_) of warnings spit out by the gcc with the
    extra warnings.  Including a few show-stoppers for compression on IRIX
    machines.
Solution:
    Changed lots of variables' types to more sensible and consistent types,
    more range-checking, more variable typecasts, etc.
Platforms tested:
    FreeBSD 4.2 (hawkwind), IRIX64-64 (modi4)
2001-01-09 16:22:30 -05:00
Quincey Koziol
10c6d6d500 [svn-r3138] Purpose:
Bug Fix
Description:
    More descrimination is necessary for the type of background buffer needed.
    Compound types need H5T_BKG_TEMP and vlen & array types need H5T_BKG_YES.
Solution:
    Make the internal routine be more specific about the background type set.
Platforms tested:
    FreeBSD 4.2 (hawkwind)
2000-12-14 11:10:32 -05:00
Quincey Koziol
8653f01910 [svn-r3133] Purpose:
Bug fix
Description:
    Set the background buffer type to different values for compound vs. vlen
    & array datatypes.
Platforms tested:
    Cray J90 (killeen)
2000-12-13 19:35:07 -05:00
Quincey Koziol
1f4c821432 [svn-r3131] Purpose:
Bug fix
Description:
    Non-optimized conversions have a memory overwrite bug when the destination
    size of a compound datatype is greater than the source size.
Solution:
    Corrected direction of walking through the destination array for final
    copying.
Platforms tested:
    FreeBSD 4.2 (hawkwind) & Cray J90 (killeen)
2000-12-13 18:33:05 -05:00
Quincey Koziol
be2d93daff [svn-r3110] Purpose:
Bug Fix
Description:
    Compound datatypes weren't reading background data properly when used
    with array or vlen fields.
Solution:
    Changed to always read background information from file in those situations.
Platforms tested:
    FreeBSD 4.2 (hawkwind)
2000-12-11 15:06:02 -05:00
Quincey Koziol
19d811532a [svn-r3020] Purpose:
Code addition
Description:
    The dumper needs to know when a datatype needs to be reclaimed, so I
    added a small helper function to detect if a particular datatype is or
    contains a particular class of datatypes.
Platforms tested:
    Linux 2.2.16-3smp (eirene)
2000-11-29 12:38:19 -05:00
Quincey Koziol
ad731c2c1b [svn-r3019] Purpose:
Patch on the patch of my code cleanup... :-)
Description:
    Fix compiler problems with previous code patching...
Platforms tested:
    Linux 2.2.16-3smp (eirene)
2000-11-29 11:52:42 -05:00