summaryrefslogtreecommitdiffstats
path: root/src/H5G.c
Commit message (Collapse)AuthorAgeFilesLines
* [svn-r13316] Updated Copyright notices.Albert Cheng2007-02-141-2/+3
| | | | Tested platform: Kagiso (serial, pp)
* [svn-r11902] Purpose:Quincey Koziol2006-01-281-2/+12
| | | | | | | | | | | | | | | | | | | | Bug fix/additional tests Description: H5Gopen() was incorrectly allowed to open objects of other types (datasets, etc). Add additional tests for holding open an object of a given type (dataset, group, etc) while incorrectly trying to open that object with a different type of API routine (i.e. using the group open call on a dataset, etc.) Solution: Check the type of the object attempting to be opened before completely opening the object. Platforms tested: FreeBSD 4.11 (sleipnir) Too minor to require h5committest
* [svn-r11840] Purpose:Quincey Koziol2005-12-261-1195/+123
| | | | | | | | | | | | | | | | Bug fix Description: Retrieving an object's name could fail (in various ways) under certain circumstances (mostly having to do with mounted files). Solution: Re-write & simplify "get object name" code to fix error in a better way than adding yet another hack to the previous pile of hacks... :-) Platforms tested: FreeBSD 4.11 (sleipnir) h5committest
* [svn-r11759] Purpose:Quincey Koziol2005-12-041-380/+282
| | | | | | | | | | | | | New feature Description: Add in a combination of Peter's & my code to support copying variable-length data from one file to another, although currently only supported with contiguous data storage. Platforms tested: FreeBSD 4.11 (sleipnir) h5committest
* [svn-r11729] Purpose:Quincey Koziol2005-11-161-1/+1
| | | | | | | | | | | Bug fix Description: Correct use of symbol table entry after copying it and resetting it. Platforms tested: Linux 2.4 w/enable-debug & disable-production Too minor to require h5committest
* [svn-r11714] Purpose:Quincey Koziol2005-11-151-29/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | New feature Description: Check in baseline for compact group revisions, which radically revises the source code for managing groups and object headers. WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! This initiates the "unstable" phase of the 1.7.x branch, leading up to the 1.8.0 release. Please test this code, but do _NOT_ keep files created with it - the format will change again before the release and you will not be able to read your old files!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! Solution: There's too many changes to really describe them all, but some of them include: - Stop abusing the H5G_entry_t structure and split it into two separate structures for non-symbol table node use within the library: H5O_loc_t for object locations in a file and H5G_name_t to store the path to an opened object. H5G_entry_t is now only used for storing symbol table entries on disk. - Retire H5G_namei() in favor of a more general mechanism for traversing group paths and issuing callbacks on objects located. This gets us out of the business of hacking H5G_namei() for new features, generally. - Revised H5O* routines to take a H5O_loc_t instead of H5G_entry_t - Lots more... Platforms tested: h5committested and maybe another dozen configurations.... :-)
* [svn-r11707] Purpose:Quincey Koziol2005-11-111-2/+5
| | | | | | | | | | | | Code maintenance Description: Check in outstanding changes from object copy to keep 1.6 branch as much in sync w/development branch as possible. Platforms tested: FreeBSD 4.11 (sleipnir) h5committest
* [svn-r11491] Purpose:Quincey Koziol2005-10-031-4/+32
| | | | | | | | | | | | | | | Bug fix Description: Fix "double root open" bug and apply same fix to datasets & named datatypes. Also fix bug in symbol table entry lookup code that would "transfer" an object from one file handle to another file handle when the two file handles were opened on the same actual file. Platforms tested: FreeBSD 4.11 (sleipnir) Too minor to require h5committest
* [svn-r11387] Purpose:Quincey Koziol2005-09-121-45/+43
| | | | | | | | | | | | | | Code cleanup/reorganization Description: Merge back some more changes extracted from the "compact group" set. This bunch cleans up and prepares the H5G_* routines for eventual import of new features. Platforms tested: FreeBSD 4.11 (sleipnir) Linux 2.4 Mac OS X.4
* [svn-r11385] Purpose:Quincey Koziol2005-09-121-4/+7
| | | | | | | | | | | | | | | | | | | | | Code cleanup Description: Merge back changes from "compact group" work that improve the infrastructure of the library and may impact others. In this round of merging, that includes: - Move datatype allocation into single internal routine, instead of duplicated code that was spread out in a dozen or so places. - Clean up guts of object header routines (H5O_*) to allow for some of the fancieroperations that need to be performed on groups, along with some general improvements. - Added a new error code - Some minor cleanups in other code.... Platforms tested: FreeBSD 4.11 (sleipnir) Linux 2.4 Mac OS X
* [svn-r11308] Purpose:Quincey Koziol2005-08-291-7/+4
| | | | | | | | | | | | Code cleanup Description: Clean up internals of group creation & iteration code. Platforms tested: FreeBSD 4.11 (sleipnir) Mac OS X (nile) Too minor to require h5committest
* [svn-r11301] Purpose:Quincey Koziol2005-08-251-2/+3
| | | | | | | | | | | | Code cleanup Description: Prevent memory leak when too many links are traversed. Also add test to traverse too many links. Platforms tested: FreeBSD 4.11 (sleipnir) Linux 2.4
* [svn-r11285] Purpose:Quincey Koziol2005-08-221-1/+1
| | | | | | | | | | | Bug fix Description: Correct typo in call to H5F_get_fileno(). Platforms tested: FreeBSD 4.11 (sleipnir) w/CC=g++ Configuration not tested w/h5commttest
* [svn-r11284] Purpose:Quincey Koziol2005-08-201-30/+29
| | | | | | | | | | | | | | | | Code cleanup Description: Clean up code somewhat: - Move from HDmemset() -> H5G_ent_reset() to clear out group entry info - Simplify H5G_unlink() call - Use portability macros instead of direct system calls in more places - Improve readbility by neatening whitespace, etc. - Move some macros into source code module instead of header files Platforms tested: FreeBSD 4.11 (sleipnir) Linux 2.4
* [svn-r11278] Purpose:Quincey Koziol2005-08-201-79/+79
| | | | | | | | | | | | | | | Bug fix Description: Fix core dump when checking whether to invalidate the name of an object when unlinking an object in a group opened through an object reference. Solution: Check if names of various objects are valid before comparing them, etc. Platforms tested: FreeBSD 4.11 (sleipnir) Too minor to require h5committest
* [svn-r11246] Purpose:Quincey Koziol2005-08-131-113/+113
| | | | | | | | | | | | | | | | | | | | Code cleanup Description: Trim trailing whitespace, which is making 'diff'ing the two branches difficult. Solution: Ran this script in each directory: foreach f (*.[ch] *.cpp) sed 's/[[:blank:]]*$//' $f > sed.out && mv sed.out $f end Platforms tested: FreeBSD 4.11 (sleipnir) Too minor to require h5committest
* [svn-r11230] Purpose:Quincey Koziol2005-08-101-2/+7
| | | | | | | | | | | | | | | | Big fix Description: A group opened by dereferencing a object reference would not work for H5Giterate(), due to the local heap & B-tree information not being cached. Solution: Get the local heap & B-tree info & point to that structure instead of the group entry for the group. Platforms tested: FreeBSD 4.11 (sleipnir) Too minor to require h5committest
* [svn-r11220] Purpose:Quincey Koziol2005-08-081-79/+46
| | | | | | | | | | | | Code cleanup Description: Bring some of the cleanups from the external link coding (which isn't checked in yet) back into CVS as an intermediate checkin. Platforms tested: FreeBSD 4.11 (sleipnir) Too minor to require h5committest
* [svn-r11177] Purpose:Quincey Koziol2005-07-301-61/+27
| | | | | | | | | | | | | | | Bug fix Description: Correct problems when querying information about a group that was opened by dereferencing an object reference. Solution: Read in symbol table information instead of rely on it being cached. Platforms tested: FreeBSD 4.11 (sleipnir) Too minor to require h5committest
* [svn-r11094] Purpose:Quincey Koziol2005-07-211-10/+80
| | | | | | | | | | | | Bug fix Description: Rewrite code for mounting files to clean up layers of kludges and implement a much cleaner and more maintainable design. Platforms tested: FreeBSD 4.11 (sleipnir) Linux 2.4
* [svn-r11074] Purpose:Quincey Koziol2005-07-151-1/+2
| | | | | | | | | | | | Bug fix Description: Further progress on fixing file mounting to work properly. Platforms tested: FreeBSD 4.11 (sleipnir) Linux 2.4 Too minor to require h5committest
* [svn-r11024] Purpose:Quincey Koziol2005-07-051-3/+34
| | | | | | | | | | | | | | | | | | | | Bug fix & code cleanup Description: Don't unmount child files from a parent file if the parent file is being held open by an object. Also, moved the mounting routines into their own source file and the superblock routines into their own file also. Solution: Moved the code for unmounting child files down in the H5F_close routine and also add checks to the file and group mounting code to unmount child files when the last object holding open a file closes. Platforms tested: FreeBSD 4.11 (sleipnir) h5committest
* [svn-r10950] Purpose:Quincey Koziol2005-06-181-1/+1
| | | | | | | | | | | | | | | Bug fix Description: George Lewandowski @ Boeing tracked down a memory leak and possible corruption in the code for opening a group. Solution: Change code to allocate correct structure. Platforms tested: FreeBSD 4.11 (sleipnir) Too minor to require h5committest
* [svn-r10876] Purpose:Quincey Koziol2005-06-081-267/+276
| | | | | | | | | | | | Bug fix Description: Fix several NULL pointer dereferences when tracking the name of open objects during some unusual sequences of mount & unmount operations. Platforms tested: FreeBSD 4.11 (sleipnir) Too minor to require h5committest
* [svn-r10838] Purpose:Quincey Koziol2005-06-011-0/+5
| | | | | | | | | | | | | | | | | | | | | Bug fix/new feature Description: Setting "SEMI" or "STRONG" file close degrees causes problems when multiple file IDs exist for the same file on disk. Solution: Make the "SEMI" and "STRONG" settings only apply to the file ID that is being closed. Also, add an "H5F_OBJ_LOCAL" flag for the H5Fget_obj_count() & H5Fget_obj_ids() calls, so that applications can query about objects opened with a particular file ID instead of all the objects opened in the file on disk. Platforms tested: FreeBSD 4.11 (sleipnir) h5committest
* [svn-r10737] Purpose:Quincey Koziol2005-05-071-1/+1
| | | | | | | | | | | Code cleanup Description: Clean up some compiler warnings Platforms tested: FreeBSD 4.11 (sleipnir) h5committest
* [svn-r10639] Purpose:Quincey Koziol2005-04-211-10/+1
| | | | | | | | | | | | Bug fix/code cleanup Description: Add tests to determine that very long (64K+) object names are working. Fixed a couple of bugs in h5dump where they weren't... Platforms tested: FreeBSD 4.11 (sleipnir) Solaris 2.9 (shanti)
* [svn-r9852] Purpose: MaintenanceElena Pourmal2005-01-201-3/+0
| | | | | | | | | | Description: Removed PABLO instrumentation from HDF5 source Solution: Platforms tested: arabica, copper (parallel), mir Misc. update:
* [svn-r9729] Purpose:Quincey Koziol2004-12-291-13/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug Fix/Code Cleanup/Doc Cleanup/Optimization/Branch Sync :-) Description: Generally speaking, this is the "signed->unsigned" change to selections. However, in the process of merging code back, things got stickier and stickier until I ended up doing a big "sync the two branches up" operation. So... I brought back all the "infrastructure" fixes from the development branch to the release branch (which I think were actually making some improvement in performance) as well as fixed several bugs which had been fixed in one branch, but not the other. I've also tagged the repository before making this checkin with the label "before_signed_unsigned_changes". Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel & fphdf5 FreeBSD 4.10 (sleipnir) w/threadsafe FreeBSD 4.10 (sleipnir) w/backward compatibility Solaris 2.7 (arabica) w/"purify options" Solaris 2.8 (sol) w/FORTRAN & C++ AIX 5.x (copper) w/parallel & FORTRAN IRIX64 6.5 (modi4) w/FORTRAN Linux 2.4 (heping) w/FORTRAN & C++ Misc. update:
* [svn-r9557] Purpose:Quincey Koziol2004-11-221-13/+14
| | | | | | | | | | | | | | | | | | | | | Code cleanup & optimization Description: Improve ADF/CGNS benchmark by reducing the number of internal attribute copies made during creations, opens and writes. Added new H5O_iterate() routine for iterating through messages of a certain type in the object header (attributes are the only message currently that can have multiple instances in the object header). Cross-pollinated various minor code cleanups to reduce diffs between branches. Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel Solaris 2.7 (arabica) Too minor to require h5committest
* [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.