summaryrefslogtreecommitdiffstats
path: root/src/H5G.c
Commit message (Collapse)AuthorAgeFilesLines
* [svn-r9335] James Laird2004-09-291-1/+1
| | | | | | | | | | | | Purpose: Bug fix Description: Fix bugs found by daily tests. Platforms tested: copper
* [svn-r9334] James Laird2004-09-281-54/+142
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Purpose: Feature Description: (Same change to release branch) 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:
* [svn-r9311] Purpose:Quincey Koziol2004-09-221-0/+36
| | | | | | | | | | | | | | 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
* [svn-r8898] James Laird2004-07-201-0/+7
| | | | | | | | | | | | | | | 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)
* [svn-r8893] Purpose:Quincey Koziol2004-07-161-20/+39
| | | | | | | | | | | | | | Code cleanup Description: Clean up a bunch of warnings and bring new code better inline with current library coding practice. Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel Too minor to require h5committest Misc. update:
* [svn-r8846] Purpose:Quincey Koziol2004-07-091-10/+14
| | | | | | | | | | | | | | | | | | 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)
* [svn-r8726] Purpose:Quincey Koziol2004-06-231-0/+38
| | | | | | | | | | | | 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
* [svn-r8388] Purpose:Quincey Koziol2004-04-191-1/+5
| | | | | | | | | | Bug fix Description: Fix small problem with 1.4 backward compatibility Platforms tested: FreeBSD 4.9 (sleipnir) w/1.4 backward compatibility
* [svn-r8384] Purpose:Quincey Koziol2004-04-181-4/+4
| | | | | | | | | | | | | Code cleanup Description: Clean up lots of warnings based on those reported from the SGI compilers as well as gcc. Platforms tested: SGI O3900, IRIX64 6.5 (Cheryl's SGI machine) FreeBSD 4.9 (sleipnir) w/ & w/o parallel h5committest
* [svn-r7918] Purpose:Quincey Koziol2003-12-061-13/+13
| | | | | | | | | | | | | | | | | | | 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)
* [svn-r7916] Purpose:Quincey Koziol2003-12-061-9/+10
| | | | | | | | | | | | 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
* [svn-r7562] Purpose:Quincey Koziol2003-10-071-1/+4
| | | | | | | | | | | | 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
* [svn-r7543] Purpose:Quincey Koziol2003-10-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug fixes and code cleanup Description: Lots of changes here: - Fixed bug #691 - when shared datatypes are used in attributes they are incorrectly copied into the attribute instead of referring the the named datatype in the file. This required bumping the version of the attribute message. The new version of the attribute message is only written out when a shared datatype is used in the attribute. [Also, this format change made the size of the attribute smaller.] - Added information to attribute debugging routine so that shared datatypes are displayed correctly with the h5debug tool. - Refactored the H5O* routines to extract code that was common to several routines into subroutines to call. - Added 'link' method for H5O message sub-classes, which increments the link count on shared objects when a message is created which shares them. - Corrected [unreported] bug where the link count was not being decremented on the shared object when a object header message with a reference to that object was deleted from the file. - Reduced size of shared message from 49 bytes (which was incorrect anyway and should have been 48 bytes) to 10 bytes, which required bumping the version of "shared" messages. - Refactored some of the shared datatype routines to allow for easier queries of "committedness" internally to the library and also added routine to easily increment/decrement the reference count of a shared datatype. Platforms tested: FreeBSD 4.9 (sleipnir) h5committest
* [svn-r7413] Purpose:Quincey Koziol2003-08-261-5/+6
| | | | | | | | | | | | | | | | | | | 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
* [svn-r7392] Purpose:Quincey Koziol2003-08-221-51/+78
| | | | | | | | | | | | | | | | 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
* [svn-r7378] Purpose:Quincey Koziol2003-08-161-12/+104
| | | | | | | | | | | | | | | | 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
* [svn-r7082] Purpose:Quincey Koziol2003-06-231-5/+12
| | | | | | | | | | | | | | | 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
* [svn-r7071] Purpose:Quincey Koziol2003-06-201-3/+3
| | | | | | | | | | | Code cleanup Description: Tweak internal iterator over IDs to not require constant "operator" data. Platforms tested: FreeBSD 4.8 (sleipnir) h5committest
* [svn-r7053] Purpose:Quincey Koziol2003-06-181-3/+12
| | | | | | | | | | | | | | | | 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
* [svn-r6878] Purpose:Quincey Koziol2003-05-151-12/+40
| | | | | | | | | | | Code cleanup Description: Limit the scope on more function prototypes/macros/typedefs. Platforms tested: FreeBSD 4.8 (sleipnir) h5committest not necessary.
* [svn-r6843] Purpose:Quincey Koziol2003-05-091-6/+6
| | | | | | | | | | | | 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.
* [svn-r6837] Purpose:Quincey Koziol2003-05-081-12/+13
| | | | | | | | | | | | | | | 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
* [svn-r6825] Purpose:Quincey Koziol2003-05-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | 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)
* [svn-r6779] Purpose: Backward compatibility changeRaymond Lu2003-04-291-7/+37
| | | | | | | | Description: 1.4 compatibility for H5G_obj_t type and H5Zregister test. Solution: use macro H5_WANT_H5_V1_4_COMPAT Platforms tested: h5committest
* [svn-r6752] Purpose:Quincey Koziol2003-04-251-3/+2
| | | | | | | | | | 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.
* [svn-r6744] Raymond Lu2003-04-241-9/+10
| | | | | | | | | | Purpose: A little code rewriting Description: object types were defined as macros in H5Gpublic.h Solution: changed them to enumerate type Platforms tested: h5committtest
* [svn-r6654] Purpose:Quincey Koziol2003-04-141-3/+3
| | | | | | | | | | | | | | | | | | | | 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).
* [svn-r6433] Purpose:Quincey Koziol2003-02-241-13/+13
| | | | | | | | | | | | | | | 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)}
* [svn-r6411] Purpose:Quincey Koziol2003-02-171-20/+30
| | | | | | | | | | | | | | | | | | | | | | 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.
* [svn-r6388] Purpose:Quincey Koziol2003-02-101-8/+8
| | | | | | | | | | | | | 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
* [svn-r6387] Purpose:Quincey Koziol2003-02-101-106/+129
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* [svn-r6266] Purpose:Quincey Koziol2003-01-101-51/+51
| | | | | | | | | | | | 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
* [svn-r6255] Purpose:Quincey Koziol2003-01-091-1/+2
| | | | | | | | | | Code cleanup Description: Clean up a few more warnings and update dependencies. Platforms tested: Linux 2.2.18smp (eirene) serial & parallel
* [svn-r6252] Purpose:Quincey Koziol2003-01-091-225/+296
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* [svn-r6142] Purpose:Quincey Koziol2002-12-021-2/+5
| | | | | | | | | | 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
* [svn-r6136] Raymond Lu2002-11-251-0/+261
| | | | | | | | | | | 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.
* [svn-r6041] Raymond Lu2002-10-291-1/+2
| | | | | | | | | | | Purpose: Bug fix Description: #340 - get comment length for H5G; #435 - H5Aget_storage_size; #644 - H5Arename Platforms tested: eirene, arabica
* [svn-r5995] Purpose:Quincey Koziol2002-10-141-254/+306
| | | | | | | | | | | | | | | 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
* [svn-r5947] Purpose:Quincey Koziol2002-09-251-704/+573
| | | | | | | | | | | | | | | | 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
* [svn-r5936] Pedro Vicente Nunes2002-09-211-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.]
* [svn-r5929] Pedro Vicente Nunes2002-09-181-58/+241
| | | | | | | | | | | | | | 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
* [svn-r5911] Pedro Vicente Nunes2002-09-041-6/+7
| | | | | | | | | | | | | 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
* [svn-r5907] Pedro Vicente Nunes2002-08-301-5/+34
| | | | | | | | | | | | | | | | | | | | | | | | 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
* [svn-r5904] Pedro Vicente Nunes2002-08-281-6/+658
| | | | | | | | | | | | | | | | | | | Purpose: Added 'ID to name' support Description: There is a new API function H5Iget_name Most of the changes are on H5G.c , regarding the symbol table entry struct H5G_entry_t which has 2 new fields 'name' and 'old_name' A new private function was introduced H5G_ent_copy, that does a deep copy between 2 symbol table entries The test file is getname.c Platforms tested: windows 2000, Linux, Solaris
* [svn-r5867] Purpose:Quincey Koziol2002-08-091-3/+16
| | | | | | | | | | | | | Code cleanup Description: Changed the last HRETURN* statements in the FUNC_ENTER macros into HGOTO* macros, which reduces the size of the library binary in certain configurations by another 10% Platforms tested: FreeBSD 4.6 (sleipnir) serial & parallel, IRIX64 6.5 (modi4) serial & parallel
* [svn-r5842] Purpose:Quincey Koziol2002-08-081-566/+473
| | | | | | | | | | | | | | | | 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.
* [svn-r5471] Purpose:Quincey Koziol2002-05-291-33/+35
| | | | | | | | | | | | | | | | 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.
* [svn-r5467] Purpose:Quincey Koziol2002-05-281-8/+21
| | | | | | | | | | | | | | | | | | | | | | | | 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)
* [svn-r5278] Purpose:Albert Cheng2002-04-281-2/+2
| | | | | | | | | | | | | | | | | | | | | Migrate from configure macros of XYZ_ABC to H5_XYZ_ABC Description: configure generates many macros definitions on the fly and were stored in src/H5config.h which is included by H5public.h. But other software that uses hdf5 may also run their own configure. There can be a clash in macro name space. We decided awhile ago to prepend all generated macros with "H5_" to avoid conflicts. The process has started and this commit completes it (at least attempt to). Solution: Many macros symbols (e.g. SIZEOF_xxx and HAVE_xxx were changed to H5_SIZEOF_xxx and H5_HAVE_xxx). Then H5private.h no longer includes H5config.h. This cuts H5config.h away from HDF5 source code. Pending issues: The module of fortran and pablo are to be resolved in a different commit. Platforms tested: eirene (parallel), arabica (solaris 7 --enable-fortran, --enable-cxx)
* [svn-r5273] Raymond Lu2002-04-261-36/+88
| | | | | | | | | | | | Purpose: New feature Description: Allow H5Glink and H5Gmove to handle links across different locations. Solution: Added H5Glink2 and H5Gmove2 functions with new parameter of destination location. Platforms tested: Linux 2.2(eirene)