summaryrefslogtreecommitdiffstats
path: root/src/H5D.c
Commit message (Collapse)AuthorAgeFilesLines
* [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-1/+1
| | | | | | | | | | | | | | 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/+3
| | | | | | | | | | | | | | | | | | | | | 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-r11246] Purpose:Quincey Koziol2005-08-131-122/+122
| | | | | | | | | | | | | | | | | | | | 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-r11094] Purpose:Quincey Koziol2005-07-211-10/+7
| | | | | | | | | | | | 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-r11079] Purpose:Quincey Koziol2005-07-171-4/+12
| | | | | | | | | | | | | | | Bug fix Description: Correct memory leak when a dataset is attempted to be opened, but turns out to be a group or named datatype. Also, clean up code that was leading to the leak and zero out empty group entries to help prevent similar errors in the future. Platforms tested: FreebSD 4.11 (sleipnir) Too minor to require h5committest
* [svn-r11064] Purpose:Quincey Koziol2005-07-121-14/+11
| | | | | | | | | | | | Bug fix Description: Use dataset's actual datatype for filter "can apply" and "set local" calls, instead of datatype user passed in. Platforms tested: FreeBSD 4.11 (sleipnir) Too minor to require h5committest
* [svn-r11058] Purpose:Quincey Koziol2005-07-091-2/+19
| | | | | | | | | | | | | | | Bug fix Description: Correct error where the dataset sieve buffer was inadvertantly disabled, resulting in poor raw data I/O performance for certain I/O patterns. Solution: Hook dataset sieve buffer size setting back up. Platforms tested: FreeBSD 4.11 (sleipnir) Solaris 2.9 (shanti)
* [svn-r10621] Purpose:Quincey Koziol2005-04-161-3/+11
| | | | | | | | | | | | | | | | | Bug fix Description: Opening a dataset (or named datatype) with "." for the name and using a group ID for the location ID was not returning an error value. Solution: Check the type of the object before attempting to open it (internally, using a group ID and "." for the name maps to the group object). Platforms tested: FreeBSD 4.11 (sleipnir) Solaris 2.9 (shanti) Too minor to require h5committest
* [svn-r10239] Purpose:Quincey Koziol2005-03-201-1/+1
| | | | | | | | | | | | | | | | Optimization Description: Speed up I/O on enumerated datatypes (including those nested in compound datatypes, arrays, etc.) if the destination datatype is a proper superset of the source datatype. Solution: Detect the situation and treat as no-op datatype conversion. Platforms tested: FreeBSD 4.11 (sleipnir) Too minor to require h5committest
* [svn-r9859] Purpose:Quincey Koziol2005-01-221-3/+0
| | | | | | | | | | Code cleanup Description: Clean up a few rements from the Pablo removal Platforms tested: None, very minor
* [svn-r9852] Purpose: MaintenanceElena Pourmal2005-01-201-1/+0
| | | | | | | | | | Description: Removed PABLO instrumentation from HDF5 source Solution: Platforms tested: arabica, copper (parallel), mir Misc. update:
* [svn-r9729] Purpose:Quincey Koziol2004-12-291-33/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-r9564] Purpose:Quincey Koziol2004-11-231-23/+18
| | | | | | | | | | | | | Code optimization Description: Change how default allocation time is handled internally to the library, to avoid some performance issues with property lists. Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel Solaris 2.7 (arabica) Too minor to require h5committest
* [svn-r9557] Purpose:Quincey Koziol2004-11-221-2/+2
| | | | | | | | | | | | | | | | | | | | | 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-r9359] Purpose:Quincey Koziol2004-10-041-4/+0
| | | | | | | | | | | | | | | Bug fix Description: Relax restrictions on parallel I/O to allow compressed, chunked datasets to be read in parallel (collective access will be degraded to independent access, but will retrieve the information still). Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel Solaris 2.7 (arabica) IRIX64 6.5 (modi4) h5committest
* [svn-r9356] Purpose:Quincey Koziol2004-10-011-37/+36
| | | | | | | | | | | | | | | | Bug fix & code cleanup Description: More dataset cleanups to get to a point where we can fix the chunked I/O bug. Also fix a couple of errors in the recent file object resurrection changes which should hopefully address the recent daily test failres (H5T.c) Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel Solaris 2.7 (arabica) h5committest
* [svn-r9343] Purpose:Quincey Koziol2004-09-301-20/+58
| | | | | | | | | | | | | | | | Bug fix/code cleanup Description: Clean up raw data I/O code to bundle the I/O parameters (dataset, DXPL ID, etc) into a single struct to pass around through the dataset I/O routines, since they are always passed together, until very near the bottom of the I/O stack. Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel Solaris 2.7 (arabica) IRIX64 6.5 (modi4) h5committest
* [svn-r9334] James Laird2004-09-281-282/+321
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-r9102] Purpose:Quincey Koziol2004-08-171-15/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug fix Description: 1 - Dataset contiguous storage cache information had a bug where it was possible to try to access invalid cache information if the cache wasn't filled the first time it attempted to loop through the list of offset/length vectors. 2 - Additionally, the contiguous storage cache information was being used in certain circumstances from the chunked dataset I/O code path, which was generally fatal since the chunk storage and contiguous storage information were stored together in a union. Solution: 1 - Avoid special case of first trip through loop over offset/length I/O vectors and always check for the contiguous storage sieve buffer buffer being NULL. 2 - Change the union containing the chunk and contiguous storage cache information into a struct, allowing both to be used at the same time. Platforms tested: FreeBSD 4.10 (sleipnir) h5committested
* [svn-r8985] Purpose:Quincey Koziol2004-08-021-12/+6
| | | | | | | | | | | | | | | | | | | | | Bug fixes & code cleanups Description: Backport MPI-I/O changes from the development branch to the release branch in preparation for bringing Kent's collective chunk I/O changes back. Removed last vestiges of FPHDF5 from this branch, as it was never working here. Various code cleanups & syncrontizations to better align with development branch code and reduce diffs. Regenerate dependencies. Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel IRIX64 6.5 (modi4) h5committested
* [svn-r8954] James Laird2004-07-271-0/+6
| | | | | | | | | | | | | | | | Purpose: Bug fix Description: When a simple dataspace is created, its extent should be set before using it, or it will silently function as a NULL dataspace. Solution: Added checks on user-supplied dataspaces. Now dataspaces without extents set will throw errors; users must explicitly set a dataspace to be NULL. Platforms tested: sleipnir, windows
* [svn-r8802] Purpose:Quincey Koziol2004-07-031-36/+89
| | | | | | | | | | | | | | | Code optimization Description: Set up datatype ID for dataset's datatype on disk. This allows us to avoid repeatedly copying the datatype when an ID is needed. Also, clean up a few warnings in various other places. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.10 (sleipnir) w/parallel Too minor to require h5committest
* [svn-r8753] Nat Furrer2004-06-281-0/+53
| | | | | | | | | | | | | | | | | | | Purpose: Handled SZIP without the encoder present. Description: It is now an error for a user to try to create, extend, or write to a dataset without the encoder present in their SZIP library. Added H5Zget_filter_info to provide users with a way to query HDF5 about the presence (or lack thereof) of the SZIP encoder. Platforms tested: Windows Verbena Arabica Copper Misc. update:
* [svn-r8733] Purpose:Quincey Koziol2004-06-231-3/+3
| | | | | | | | | | | | Code cleanup Description: Reduce compiler warnings on SGI IRIX Platforms tested: FreeBSD 4.10 (sleipnir) SGI IRIX6 (Cheryl's machine) Too minor to require full h5committest
* [svn-r8693] Purpose:Quincey Koziol2004-06-151-4/+4
| | | | | | | | | | | | | Code optimization Description: Avoid making copy of default vlen allocation info when default DXPL is used. Just retarget pointer to point to default info directly. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.10 (sleipnir) w/parallel Too minor to require h5committest
* [svn-r8687] Purpose:Quincey Koziol2004-06-141-3/+4
| | | | | | | | | | | | | Code optimization Description: Eliminate memcpy() when using default DXPL by pointing at existing default object, instead of copying it. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.10 (sleipnir) w/parallel Too minor to require h5committest
* [svn-r8674] Purpose:Quincey Koziol2004-06-131-7/+7
| | | | | | | | | | | | | | | | | | Code optimization Description: Revised dataspace selections to use a more "object oriented" mechanism to set the function pointers for each selection and selection iterator. This reduces the amount and number of times that dataspace selection info has to be copied. Additionally, change hyperslab selection information to be dynamically allocated instead of an inline struct. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.10 (sleipnir) w/parallel Too minor to require h5committest
* [svn-r8667] Purpose:Quincey Koziol2004-06-131-1/+6
| | | | | | | | | | | | | | | | Code optimization Description: Restructure conversion loop of variable-length objects to avoid walking through memory backwards and allocating as many temporary buffers. (This uses the optimized method used in the atomic type conversions). Also bring back another optimization for variable-length datatypes that avoids querying the DXPL so many times. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.10 (sleipnir) w/parallel Too minor to require h5committest
* [svn-r8619] Purpose:Quincey Koziol2004-06-051-1/+1
| | | | Fix makefiles, dependencies & manifest after source file rename.
* [svn-r8614] Purpose:Quincey Koziol2004-06-051-84/+144
| | | | | | | | | | | | | | | Refactor code Description: Move chunk and contiguous cached raw data from file information to dataset information. This simplifies a number of internal interfaces, aligns the code with it's purpose better and should allow more optimizations to the chunked data I/O performance. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.10 (sleipnir) h5committest
* [svn-r8601] Purpose:Quincey Koziol2004-05-311-406/+456
| | | | | | | | | | | | | | | | Code optimization & cleanup Description: Don't recompute the internal index value for looking up the chunk in the hash table, just use the value already computed from iterating through the chunks. Also, back-port some of the various cleanups to the source code from the development branch, to make diffing the code easier. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.9 (sleipnir) w/parallel
* [svn-r8592] Purpose:Quincey Koziol2004-05-271-137/+165
| | | | | | | | | | | | | | | | | | | | | Code optimization & bug fix Description: When dimension information is being stored in the storage layout message on disk, it is stored as 32-bit quantities, possibly truncating the dimension information, if a dimension is greater than 32-bits in size. Solution: Fix the storage layout message problem by revising file format to not store dimension information, since it is already available in the dataspace. Also revise the storage layout data structures to be more compartmentalized for the information for contiguous, chunked and compact storage. Platforms tested: FreeBSD 4.9 (sleipnir) w/parallel Solaris 2.7 (arabica) h5committest
* [svn-r8543] Purpose:Quincey Koziol2004-05-201-2/+2
| | | | | | | | | | | | | | Code optimization Description: Expand the use of macros to inline trivial function pointer lookup and calls to reduce the overall number of functions invoked during normal operation of the library. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.9 (sleipnir) w/parallel Too minor to require h5committest
* [svn-r8497] Purpose:Quincey Koziol2004-05-081-2/+2
| | | | | | | | | | | | | Code optimization Description: Further reduce the number of copies we make of a hyperslab selection for chunked I/O, especially when we are only going to throw the old selection away for a new one. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.9 (sleipnir) w/parallel
* [svn-r8455] Purpose:Quincey Koziol2004-05-011-1/+5
| | | | | | | | | | | | | Code optimization Description: Eliminate more 64-bit multiplies by remebering the size of contiguous datasets as well as chunked datasets. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.9 (sleipnir) too minor to require h5committest
* [svn-r8384] Purpose:Quincey Koziol2004-04-181-21/+21
| | | | | | | | | | | | | 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-r8317] Purpose:Quincey Koziol2004-04-071-12/+93
| | | | | | | | | | | | Code optimization Description: Query the dataset creation and transfer properties less often. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.9 (sleipnir) w/parallel h5committested
* [svn-r8304] Purpose:Quincey Koziol2004-04-061-4/+6
| | | | | | | | | | | | Code optimization Description: Compute the size of a chunk once, when the layout information is set, instead of each time I/O is performed on the chunk. Platforms tested: h5committest Solaris 2.7 (arabica)
* [svn-r8083] Purpose:Quincey Koziol2004-01-191-2/+6
| | | | | | | | | | | | | Bug fix Description: Tweak address comparison of external file list's heap address a bit to pacify Windows. Platforms tested: FreeBSD 4.9 (sleipnir) Asking Pedro to test on Windows Too minor to require h5committest
* [svn-r8058] Purpose:Quincey Koziol2004-01-131-0/+4
| | | | | | | | | | | Bug fix Description: Plug another small memory leak for fill-values. Platforms tested: FreeBSD 4.9 (sleipnir) too minor to require h5committest
* [svn-r8039] Purpose:Quincey Koziol2004-01-081-25/+250
| | | | | | | | | | | | | | | | | | | | Bug fix Description: When two property lists are compared, the H5Pequal routine was just comparing the raw information for the property values. This causes problems when the raw information contains pointers to other information. Solution: Allow a 'compare' callback to be registered for properties, so that a user application get perform the comparison itself, allowing for "deep" compares of the property value. This was exported to the H5Pregister & H5Pinsert routines in the development branch, but not the release branch. Platforms tested: FreeBSD 4.9 (sleipnir) h5committest
* [svn-r8027] Purpose:Quincey Koziol2004-01-061-0/+4
| | | | | | | | | | | | | | | Bug fix Description: Fix small memory leak of fill-value information inside the library. Solution: "reset" the fill-value object header message, so that the internal buffer gets freed. Platforms tested: FreeBSD 4.9 (sleipnir) too minor to require h5committest
* [svn-r7918] Purpose:Quincey Koziol2003-12-061-18/+14
| | | | | | | | | | | | | | | | | | | 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-r7837] Purpose:Quincey Koziol2003-11-121-12/+15
| | | | | | | | | | | Bug fix. Description: Skip over situation where malloc(0) might occur. Platforms tested: IBM p690 (copper) too minor to require h5committest
* [svn-r7726] Purpose:Quincey Koziol2003-10-241-21/+29
| | | | | | | | | | | | Code cleanup Description: Refactored handlier of VFL drivers in file access and data transfer property lists in order to simplify and unify the code dealing with them. Platforms tested: FreeBSD 4.9 (sleipnir) too minor to require 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-r7242] Purpose:Quincey Koziol2003-07-211-6/+19
| | | | | | | | | | | | Bug fix Description: Fix bug with combination of fill-values, chunked datasets and variable-length strings. Platforms tested: FreeBSD 4.8 (sleipnir) h5committest
* [svn-r7116] Purpose:Quincey Koziol2003-06-271-3/+4
| | | | | | | | | | | | 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
* [svn-r7058] Purpose:Quincey Koziol2003-06-181-22/+25
| | | | | | | | | | | | | | Bug fix and refactored code Description: Return the file space we have allocated already when a dataset creation fails. Also track the change to the H5Fget_obj_<foo> APIs Platforms tested: FreeBSD 4.8 (sleipnir) h5committest