Commit Graph

262 Commits

Author SHA1 Message Date
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
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
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
James Laird
24d36e1613 [svn-r8897]
Purpose:
Bug Fix

Description:
Trying to create the root group or the working group ("/" or ".") fakes out
HDF5 so that it neither creates a group nor returns an error.

Solution:
H5G_namei now throws an error if it was supposed to insert but didn't.

Platforms tested:
sleipnir, Visual Studio 7 (very minor change)

Misc. update:
2004-07-19 19:47:37 -05:00
Quincey Koziol
fe76fb1b58 [svn-r8844] Purpose:
Bug fix

Description:
    The "shared" raw B-tree node can get freed before all the B-tree nodes
had been flushed out to disk and released by the cache.

Solution:
    Implement a simple reference counting wrapper for objects in the library
and use it to hold the shared raw B-tree nodes so they aren't freed before all
references to them in memory are released.

Platforms tested:
    Solaris 2.7 (arabica)
    FreeBSD 4.10 (sleipnir)
    IRIX64 6.5 (modei4)
2004-07-08 21:06:29 -05:00
Quincey Koziol
7c3df64cc4 [svn-r8731] Purpose:
Code cleanup & minor optimization

Description:
    Re-work the way interface initialization routines are specified in the
library to avoid the overhead of checking for them in routines where there is
no interface initialization routine.  This cleans up warnings with gcc 3.4,
reduces the library binary size a bit (about 2-3%) and should speedup the
library's execution slightly.

Platforms tested:
    FreeBSD 4.10 (sleipnir) w/gcc34
    h5committest
2004-06-23 10:36:35 -05:00
Quincey Koziol
1009b131f6 [svn-r8725] Purpose:
Refactor bug fix

Description:
    Make bug fix for detecting the type of a soft link more general by
registering an "isa" function for soft links.

Platforms tested:
    FreeBSD 4.10 (sleipnir)
    Too minor to require h5committest
2004-06-23 09:03:22 -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
Quincey Koziol
31431be374 [svn-r7917] Purpose:
Code cleanup

Description:
    Clean up compiler warnings, especially the 'FUNC' variable not used which
comes out in production mode.

Solution:
    Had to add a new FUNC_ENTER_NOAPI_NOINIT_NOFUNC macro for those non-API
functions which don't need the 'FUNC' variable defined.  (This will be _so_
much easier when C99 is standard on all our supposed platforms, since it has a
__FUNC__ macro... )

Platforms tested:
    FreeBSD 4.9 (sleipnir)
    too minor for h5committest (although there were lots of files changed, the
        change was minor in each one)
2003-12-06 15:38:31 -05:00
Quincey Koziol
1b1e1ebbbd [svn-r7915] Purpose:
Bug fix

Description:
    Make a copy of the index value for H5Giterate and use that instead of
dereferencing the index pointer.

Platforms tested:
    FreeBSD 4.9 (sleipnir)
    too minor to need h5committest
2003-12-06 09:57:06 -05:00
Quincey Koziol
eb878857a7 [svn-r7638] Purpose:
Code cleanup

Description:
    Clean up compiler warnings

Platforms tested:
    h5committest
2003-10-15 15:02:51 -05:00
Quincey Koziol
e2518919c9 [svn-r7626] Purpose:
Update dependencies and tracing information

Platforms tested:
    Linux 2.4 (verbena) w/FORTRAN
    too minor for h5committest
2003-10-14 10:46:38 -05:00
Quincey Koziol
58c03f79fd [svn-r7561] Purpose:
Feature add

Description:
    Add a few new fields to the H5G_stat_t structure, to allow more information
about the object header to be retrieved.

Platforms tested:
    FreeBSD 4.9 (sleipnir)
    h5committest
2003-10-07 10:27:19 -05:00
Quincey Koziol
3752177106 [svn-r7498] Purpose:
Code cleanup

Description:
    Clean up various warnings and parameter mis-matches, etc.

Platforms tested:
    FreeBSD 4.9 (sleipnir)
    too minor to need h5committest
2003-09-19 15:13:47 -05:00
Bill Wendling
fec0297f86 [svn-r7489] Purpose:
Update

Description:
    A lot of modifications for the FPHDF5 stuff:

        H5AC.c
        H5ACprivate.h - Removed AC_find (it's replaced with AC_protect
        and AC_unprotect). Added flushing if it's an FPHDF5 driver and
        we're doing an AC_set or AC_unprotect with the dirty flag set.

        H5B.c - Split up the B_flush function into different functions
        since the one function was doing serialization which is better
        left as a separate entity.

        H5D.c - Removed some FPHDF5 code that was incorrect

        H5F.c - Split up the F_flush function so that it no longer
        allocates file space. Created new functions (F_init_superblock,
        F_read_superblock, and F_write_superblock) for greater modularity
        and so that the FPHDF5 non-captain processes can read the
        superblock after the captain process writes it.

        H5FD.c - Error message correction.

        H5FDfphdf5.c - Removed MPI barrier call that wasn't needed.

        H5FPclient.c
     	H5FPserver.c - Modified so that if a process requests data that
        isn't exactly aligned, we can return it if we have the block that
        contains the requested address.

        H5G.c
        H5Gent.c
        H5Gnode.c
        H5HL.c
     	H5HLpkg.h
        H5HLprivate.h
        H5Oefl.c - Removed the H5HL_peek function since it was doing a
        (now unsafe) holding of the information in the cache. Replaced
        with protect and unprotect calls.

        H5TB.c - Error fix. The TB_dless function wasn't working
        properly.

        H5Gstab.c - Format change.

        H5err.txt
        H5Edefin.h
        H5Einit.h
     	H5Epubgen.h
        H5Eterm.h - Added new error code.


Platforms tested:
    Modi4 (paralle, Fortran)
    Sol (Fortran)
    Linux (C++, Fortran)
    Copper (Parallel, Fortran)

Misc. update:
2003-09-18 14:27:27 -05:00
Quincey Koziol
438248d01d [svn-r7412] Purpose:
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
2003-08-26 13:35:37 -05:00
Quincey Koziol
2eee483e9b [svn-r7393] Purpose:
Code cleanup

Description:
    De-linted more code

Platforms tested:
    FreeBSD 4.8 (sleipnir) w/parallel
    too minor to require h5committest
2003-08-23 10:55:06 -05:00
Quincey Koziol
57993b61d3 [svn-r7391] Purpose:
Bug fix

Description:
    H5Gget_num_objs, H5Gget_objname_by_idx and H5Gget_objtype_by_idx were
only accepting a group ID, instead of a location ID, as our documentation for
them stated.

Solution:
    Allow them to accept a location ID.

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    h5committest
2003-08-22 08:50:01 -05:00
Quincey Koziol
d99164a9ed [svn-r7377] Purpose:
Bug fix

Description:
    Linking and unlinking objects with multiple internal and/or trailing '/'s
was not handled well in the library.

Solution:
    "Normalize" strings by removing trailing '/'s and collapsing multiple
internal '/'s down into just one '/' before operating on the name.

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    h5committested
2003-08-16 13:54:40 -05:00
Quincey Koziol
5ce68b5506 [svn-r7313] Purpose:
Code cleanup & feature change

Description:
    Chase error API changes

    Also, switch from using 'unsigned long[2]' for the objno in the H5G_stat_t
struct to just using 'haddr_t', since 'haddr_t' is already part of the public
information for the library and the 'unsigned long[2]' form was just confusing
and obscured the issue.

Platforms tested:
    h5committested
2003-08-08 14:12:58 -05:00
Raymond Lu
0d22a663df [svn-r7265] *** empty log message *** 2003-07-25 21:55:47 -05:00
Quincey Koziol
06f27f99b0 [svn-r7192] Purpose:
Code cleanup

Description:
    Clean up various minor warnings in the library.

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    too small to need h5committest
2003-07-09 14:16:17 -05:00
Quincey Koziol
4e23c80758 [svn-r7181] Purpose:
Version update

Description:
    Removed 1.4 compatibility code in the library.

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    h5committest
2003-07-07 14:02:46 -05:00
Quincey Koziol
88598fbeaa [svn-r7082] Purpose:
Bug fix (backward compatibility)

Description:
    Track changes to allow H5Giterate to pass along iterator callback's return
    value

    Also, improve range checking on "index" parameter to disallow invalid
    starting indices (<0 or > the number of objects in a group).

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    h5committest
2003-06-23 08:27:02 -05:00
Quincey Koziol
970416829f [svn-r7071] Purpose:
Code cleanup

Description:
    Tweak internal iterator over IDs to not require constant "operator" data.

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    h5committest
2003-06-20 10:19:18 -05:00
Quincey Koziol
4e3716dd66 [svn-r7053] Purpose:
Bug fix.

Description:
    When a duplicate object was attempted to be created, the library would
leak file memory and object references in the file, potentially causing an
infinite loop when shutting the library down.

Solution:
    Clean up after ourselves... :-)

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    h5committest
2003-06-18 15:41:28 -05:00
Quincey Koziol
b496ac1482 [svn-r6878] Purpose:
Code cleanup

Description:
    Limit the scope on more function prototypes/macros/typedefs.

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    h5committest not necessary.
2003-05-15 14:22:33 -05:00
Quincey Koziol
7d9c86097a [svn-r6843] Purpose:
Code cleanup

Description:
    Clean up warnings exposed by compiling on O2K.  Also, revert some of Bill
and my changes to the H5S_mpi_opt_types_g, etc. and settle them back into their
original location.

Platforms tested:
    h5committested.
2003-05-09 13:18:21 -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
43e3b45021 [svn-r6825] Purpose:
New feature/enhancement

Description:
    Chunked datasets are handled poorly in several circumstances involving
certain selections and chunks that are too large for the chunk cache and/or
chunks with filters, causing the chunk to be read from disk multiple times.

Solution:
    Rearrange raw data I/O infrastructure to handle chunked datasets in a much
more friendly way by creating a selection in memory and on disk for each chunk
in a chunked dataset and performing all of the I/O on that chunk at one time.

    There are still some scalability (the current code attempts to
create a selection for all the chunks in the dataset, instead of just the
chunks that are accessed, requiring portions of the istore.c and fillval.c
tests to be commented out) and performance issues, but checking this in will
allow the changes to be tested by a much wider audience while I address the
remaining issues.


Platforms tested:
    h5committested, FreeBSD 4.8 (sleipnir) serial & parallel, Linux 2.4 (eirene)
2003-05-07 16:52:24 -05:00
Raymond Lu
b58192dfe7 [svn-r6779] Purpose: Backward compatibility change
Description: 1.4 compatibility for H5G_obj_t type and H5Zregister test.

Solution: use macro H5_WANT_H5_V1_4_COMPAT

Platforms tested: h5committest
2003-04-29 14:49:48 -05:00
Quincey Koziol
0462c0bc2c [svn-r6752] Purpose:
Code cleanup

Description:
    Remove some cruft left over from the switch from int->H5G_obj_t

Platforms tested:
    FreeBSD 4.8 (sleipnir), triple check not necessary.
2003-04-25 07:10:44 -05:00
Raymond Lu
6818f6e981 [svn-r6744]
Purpose: A little code rewriting

Description: object types were defined as macros in H5Gpublic.h

Solution: changed them to enumerate type

Platforms tested: h5committtest
2003-04-24 15:15:42 -05:00
Quincey Koziol
32aed76605 [svn-r6654] Purpose:
Code cleanup

Description:
    Stop using hard-coded constant for the initial size of the root group's
symbol table local heap and use macro.

    Also, changed existing (unused) macro for the initial heap size to be the
same as the hard-coded constant.


Platforms tested:
    FreeBSD 4.8 (sleipnir) w/C++
    Linux 2.4 (burrwhite) w/FORTRAN
    Solaris 2.7 (arabica) w/FORTRAN
    IRIX64 6.5 (modi4) w/parallel & FORTRAN

    (h5committest not run due to my ongoing difficulties with C++ on burrwhite).
2003-04-13 23:49:26 -05:00
Quincey Koziol
eaa30bb648 [svn-r6433] Purpose:
Code/comment cleanup

Description:
    Made more information about reference-counted strings private to the
    H5RS package by trimming the typedef used in H5RSprivate.h and switching
    from using macros for a couple of operations to using functions.

    Updated copyright information for a few of these files.

Platforms tested:
    Tested h5committest {arabica (fortran), eirene (fortran, C++)
	modi4 (parallel, fortran)}
2003-02-24 15:19:01 -05:00
Quincey Koziol
946c606452 [svn-r6411] Purpose:
Code cleanup

Description:
    Clean up miscellaneous warnings which have crept into the code.

    Fix "_POSIX_C_SOURCE not defined" warning on FreeBSD.

    Adjust gcc compiler flags to be more concise for production mode.

    Refactor the H5O code so that there is a stronger boundary between code
    in the H5O package and code in the library which just calls H5O routines.

Platforms tested:
    Tested h5committest {arabica (fortran), eirene (fortran, C++)
	modi4 (parallel, fortran)}
    FreeBSD 4.7 (sleipnir) serial & parallel and gcc 2.95.4 & gcc 3.2.2

Misc. update:
    Update MANIFEST if you add or remove any file.
2003-02-17 10:54:15 -05:00
Quincey Koziol
b55e5cb944 [svn-r6388] Purpose:
Update feature

Description:
    Relax collective constraint for API functions which only read metadata
    from a file.

Platforms tested:
    Tested h5committest {arabica (fortran), eirene (fortran, C++)
	modi4 (parallel, fortran)}
    FreeBSD 4.7 w/parallel
2003-02-10 13:44:22 -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
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
98f01e2df2 [svn-r6255] Purpose:
Code cleanup

Description:
    Clean up a few more warnings and update dependencies.

Platforms tested:
    Linux 2.2.18smp (eirene) serial & parallel
2003-01-09 13:40:19 -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
Quincey Koziol
a59ed2ca4c [svn-r6142] Purpose:
Code cleanup

Description:
    Clean up warnings with gcc 3.2.1

Platforms tested:
    FreeBSD 4.7 (sleipnir) w/C++, changes too small for triple check
2002-12-02 08:12:17 -05:00
Raymond Lu
8333adf8ff [svn-r6136]
Purpose:
    new functions
Description:
    H5Gget_num_objs, H5Gget_objname_by_idx and H5Gget_objtype_by_idx.
Platforms tested:
    modi4, arabica, eirene
Misc. update:
    RELEASE.txt updated.
2002-11-25 12:59:14 -05:00
Raymond Lu
67a679af07 [svn-r6041]
Purpose:
    Bug fix
Description:
    #340 - get comment length for H5G;
    #435 - H5Aget_storage_size;
    #644 - H5Arename
Platforms tested:
    eirene, arabica
2002-10-29 11:37:49 -05:00
Quincey Koziol
1e231d3283 [svn-r5995] Purpose:
Code cleanup/Bug Fix

Description:
    Re-do the ID->name code again, taking into account many more weird and
    wonderful special cases stumbled across during the last set of test
    writing.

Platforms tested:
    FreeBSD 4.6 (sleipnir) w and w/o parallel
    Linux 2.2.x (eirene) w/FORTRAN & C++
    Solaris 2.7 (arabica) w/FORTRAN
    IRIX64 6.5 (modi4) w/FORTRAN & parallel
2002-10-14 15:08:23 -05:00
Quincey Koziol
12e30dc9b2 [svn-r5947] Purpose:
Code cleanup

Description:
    Clean up ID->name code:
        - Reformat to better match library coding standard
        - Changed several algorithms to be more efficient
        - Integrated into library more smoothly

Platforms tested:
    eirene w/FORTRAN & C++
    arabica w/FORTRAN
    modi4 w/FORTRAN & parallel
    sleipnir
2002-09-25 09:50:49 -05:00
Pedro Vicente Nunes
47fc490832 [svn-r5936]
Purpose:
      bug fix


       [       i  s      this a bug fix? feature? ...]
Description:


  the copy of a symbol table entry was done with a  shallow copy, in H5T_copy
 this was causing an exception on the free call of the ID to name buffer


                                                            replaced a shallow copy of a symbo  l a          edescribe the bug, or describe the new feature, etc]

Solution:
    [details about the changes, algorithm, etc...]

    [Please as detail as you can since your own explanation is
    better than others guessing    it from the code.]
Platforms tested:
windows 2000
solaris with cpp, fortran
irix64, with fortran, parallel              i r



[machines you have tested the changed version.  This is absolute
    important.  Test it out on at least two or three different platforms
    such as Big-endian-32bit (SUN/IRIX), little-endian-32(LINUX) and
    64-bit (IRIX64/UNICOS/DEC-ALPHA) would be good.]
2002-09-21 18:20:00 -05:00
Pedro Vicente Nunes
2aca3b77d6 [svn-r5929]
Purpose:
    bug fix
Description:
    memory leak regarding the ID to name buffer
Solution:
    added a new function H5G_free_ent_name that is called on several places of the library
Platforms tested:
 windows 2000
 linux, with cpp
 solaris, with fortran, cpp
 irix64, with parallel, fortran
2002-09-18 10:51:29 -05:00
Pedro Vicente Nunes
d3f2e1bdff [svn-r5911]
Purpose:
    bug fix in 'ID to name' function
Description:
    the function replace_name was only checking for immutable datatypes
Solution:
added a new function H5T_is_named, that checks for named datatypes


Platforms tested:
windows 2000, linux, solaris with Fortran
2002-09-04 10:50:12 -05:00
Pedro Vicente Nunes
dd44d88893 [svn-r5907]
Purpose:
    bug turnaround in test_hdf5_fortran on a h5fmount_c call
Description:
    the H5I_nmembers(H5I_GROUP) call that is made inside
   h5fmount_c  -> H5G_replace_name -> H5I_nmembers(H5I_GROUP)

is not detecteting correctly that the entry belongs to the group list
therefore a call is made to H5I_search(H5I_DATATYPE) (there are always non-named datatypes)
and H5G_replace_ent is called with a search for the datatype group
ent = H5T_entof((H5T_t*)obj_ptr);

which returns a NULL ent

a tweak for this is to add
if( !ent) goto done;



Platforms tested:

windows 2000, Linux, Solaris with fortran
2002-08-30 16:59:22 -05:00