summaryrefslogtreecommitdiffstats
path: root/src/H5D.c
Commit message (Collapse)AuthorAgeFilesLines
* [svn-r5586] Purpose:Quincey Koziol2002-06-111-7/+12
| | | | | | | | | | | | | | | | Bug Fix Description: H5Dcreate and H5Tcommit allow "empty" compound and enumerated types (i.e. ones with no members) to be stored in the file, but this causes an assertion failure and is somewhat vapid. Solution: Check the datatype "makes sense" before using it for H5Dcreate and H5Tcommit. Platforms tested: FreeBSD 4.5 (sleipnir)
* [svn-r5545] Purpose:Quincey Koziol2002-06-061-4/+0
| | | | | | | | | | Code cleanup Description: Back out [apparently] unnecessary include of H5F package include files. Platforms tested: FreeBSD 4.5 (sleipnir)
* [svn-r5530] Purpose:Bill Wendling2002-06-041-6/+12
| | | | | | | | | | | | | | | Code Cleanup Description: Removed some compiler warnings. Solution: In a few cases, NULL was being returned when a FAIL was supposed to be returned instead. There were some header files which needed to be included in a few of the sources. A couple of if-then statements had assignments in the conditional part. The compiler warned that they should have extra "()"s around them. Made the code check the values instead. Platforms tested: Linux (parallel) Modi4 (parallel)
* [svn-r5471] Purpose:Quincey Koziol2002-05-291-45/+48
| | | | | | | | | | | | | | | | 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-10/+11
| | | | | | | | | | | | | | | | | | | | | | | | 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-r5272] Purpose:Quincey Koziol2002-04-261-10/+10
| | | | | | | | | | | Bug fix Description: Move iterator initialization in H5D_read & H5D_write before any errors can occur. Platforms tested: FreeBSD 4.5 (sleipnir)
* [svn-r5259] Purpose:Quincey Koziol2002-04-251-93/+38
| | | | | | | | | | | | | | | | Code cleanup Description: Previously, the I/O pipeline (pline), external file list (efl) and fill- value (fill) structs were passed down the raw data function call chain, even into and/or through functions which didn't use them. Since all three of these pieces of information are available from the dataset creation property list, just pass the dataset creation property list down the function call chain and query for the information needed in a particular function. Platforms tested: FreeBSD 4.5 (sleipnir)
* [svn-r5255] Purpose:Quincey Koziol2002-04-251-180/+41
| | | | | | | | | | | Code cleanup Description: Reduce gratuitous differences between H5D_write and H5D_read and also remove distracting debugging printf's that were ifdef'd out. Platforms tested: FreeBSD 4.5 (sleipnir)
* [svn-r5219] Purpose:Quincey Koziol2002-04-221-1/+2
| | | | | | | | | | Code cleanup Description: Clean up warnings from gcc 3.1 Platforms tested: FreeBSD 4.5 (sleipnir)
* [svn-r5205] Purpose:Albert Cheng2002-04-191-0/+1
| | | | | | | | | | | | | | Code cleanup Description: Platform dependent code related to the struct stat and fstat calls polluted source codes. Hard to maintain. Solution: Platform dependent code are moved to H5private.h and then internal code can #include H5private.h. Repeat those macro definition for the stdio and multi drivers since they area examples for writing a virtual file driver. They must not use any internal code. Platforms tested: eirene (parallel), modi4 (serial including gass driver.)
* [svn-r5203] Purpose:Quincey Koziol2002-04-181-171/+171
| | | | | | | | | | Code cleanup Description: Re-indented new code to match coding style of rest of library. Platforms tested: FreeBSD 4.5 (sleipnir)
* [svn-r5200] Purpose:Quincey Koziol2002-04-181-1/+1
| | | | | | | | | | Code Cleanup Description: Clean up compiler warnings from the last bunch of checkins Platforms tested: FreeBSD 4.5 (sleipnir)
* [svn-r5198] Purpose:Quincey Koziol2002-04-181-23/+18
| | | | | | | | | | | Code Cleanup Description: Remove "knowledge" about external file storage from H5D_init_storage and call H5F_seq_write instead, which handles things correctly. Platforms tested: FreeBSD 4.5 (sleipnir)
* [svn-r5195] Purpose:Quincey Koziol2002-04-171-12/+3
| | | | | | | | | | | | | | Code cleanup Description: Got rid of the "H5T_BKG_TEMP" setting that was used internally to the library, since temporary background buffers are now handled by the individual conversion routines instead of in a global background buffer. No APIs were changed or affected by this. Platforms tested: FreeBSD 4.5 (sleipnir)
* [svn-r5191] Purpose:Quincey Koziol2002-04-171-0/+1
| | | | | | | | | | | | | | | | | | | Bug fix Description: When several level deep nested compound & VL datatypes are used, the data in the nested compound datatypes is incorrectly sharing the same "background buffer", causing data corruption when the data is written to the file. Solution: Allocate a separate background buffer for each level of the nested types to convert. (Also allocate temporary background buffers for array datatypes, where this sort of problem could occur also) Added more regression tests to check for these errors. Platforms tested: FreeBSD 4.5 (sleipnir) & Solaris 2.6 (baldric)
* [svn-r5170] Raymond Lu2002-04-111-231/+553
| | | | | | | | | | | Purpose: New feature Description: Fill-value's behaviors for contiguous dataset have been redefined. Basicly, dataset won't allocate space until it's necessary. Full details are available at http://hdf.ncsa.uiuc.edu/RFC/Fill_Value, at this moment. Platforms tested: Linux 2.2.
* [svn-r5168] Pedro Vicente Nunes2002-04-111-134/+154
| | | | | | | | | | | | | | | | | | | | | | Purpose: H5Dset_extent API function Description: 1 new public function: H5Dset_extent, that allows shrinking a dataset several private functions that free the previously allocated chunks H5F_istore_prune_by_extent, H5B_prune_by_extent : removes the chunks H5F_istore_initialize_by_extent : initializes them with the fill value H5S_select_fill is used to fill the selection in the memory buffer Platforms tested: Windows 2000 SUN( arabica) LINUX (eirene) IRIX64 (modi4)
* [svn-r5153] Pedro Vicente Nunes2002-04-091-0/+1
| | | | | | Purpose: Modified all.zip file to include a windows project for set_extend
* [svn-r5152] Purpose:Quincey Koziol2002-04-091-0/+84
| | | | | | | | | | | | | | | New Feature Description: Added new H5Dfill() routine to fill the elements in a selection for a memory buffer with a fill value. This is a user API wrapper around some internal routines which were needed for the fill-value modifications from Raymond as well as Pedro's code for reducing the size of a chunked dataset. Platforms tested: FreeBSD 4.5 (sleipnir) [and IRIX64 6.5 (modi4) in parallel, in a few minutes]
* [svn-r5138] Purpose:Quincey Koziol2002-04-031-13/+48
| | | | | | | | | | | | | | | | | | | | | | Bug Fix & Code Cleanup Description: The MPI-IO optimized transfer routines (H5S_mpio_spaces_read/H5S_mpio_space_write) are not being invoked in all the cases where they could be used. Additionally, the code for determining if an optimized transfer is wrapped into the actual I/O transfer routine in a very confusing way. Solution: Re-enabled MPI-IO optimized transfer routines in all the cases where they should work. Extracted all the pre-conditions for optimized transfers into separate routines from the transfer routines. Platforms tested: FreeBSD 4.5 (sleipnir) & IRIX64 6.5 (modi4)
* [svn-r5131] Purpose:Quincey Koziol2002-04-021-44/+27
| | | | | | | | | | | | | | Code cleanup Description: The function pointer for doing parallel I/O was being set in the H5D_read and H5D_write routines instead of in H5S_conv, where it belongs. Solution: Added an extra 'flags' parameter to H5S_find to allow the function to determine when to set the MPIO functions instead of the regular optimized I/O routines and get rid of code messing with the function pointer in the H5D routines. Platforms tested: IRIX64 6.5 (modi4)
* [svn-r5064] Pedro Vicente Nunes2002-03-141-18/+7
| | | | | | | | | Purpose: updated the H5D_update_chunk function Description: removed some debugging code headers Platforms tested: w2000, linux
* [svn-r5063] Pedro Vicente Nunes2002-03-131-6/+53
| | | | | | | | | Purpose: added a new function H5D_update_chunck that will update the chunk information; for the moment this function just has debugging of the b-tree Platforms tested: w2000 , eirene
* [svn-r5062] Pedro Vicente Nunes2002-03-131-128/+151
| | | | | | | | | | Purpose: code clean up Description: just some clean up of the functions H5D_set_extend and H5S_set_extend before the big change (changing chunk info in the b-tree struct of the dataset) Platforms tested: w2000, eirene
* [svn-r4965] Purpose:Quincey Koziol2002-02-141-4/+9
| | | | | | | | | | | | | Bug Fix Description: If a non-zero fill-value is used for a chunked dataset, any non-existent chunked read with an "all" selection (or a contiguous hyperslab selection) will return zero for those instead of the user's fill-value. Solution: Fixed I/O code to pass down fill-value to "optimized" I/O routines, so it will be available to fill the user's buffer with. Platforms tested: FreeBSD 4.5 (sleipnir)
* [svn-r4921] Pedro Vicente Nunes2002-02-071-0/+137
| | | | | | | | | | | | | Description: modified the below files to inlude a new public function H5Dset_extend, similar to H5Dextend, but it can lower the dimension this function requires 2 more new private functions: H5D_set_extend H5S_set_extend Platforms tested:
* [svn-r4903] Purpose:Quincey Koziol2002-02-061-166/+120
| | | | | | | | Code cleanup Description: Clean up H5D_read and H5D_write routines, adding comments, etc. Platforms tested: FreeBSD 4.5 (sleipnir)
* [svn-r4706] Purpose:Quincey Koziol2001-12-121-14/+10
| | | | | | | | | | | | Code cleanup Description: Tweaked internal error handling macros to reduce the size of the library's object code by about 10-20%. Also cleaned up some compiler warnings... Platforms tested: FreeBSD 4.4 (sleipnir)
* [svn-r4696] Raymond Lu2001-12-111-1/+0
| | | | | | | | | | | | | | | | | Purpose: Modify H5Fclose behavior Description: The HDF5 actual file close behaves in several ways in terms of if there are still objects(dataset, group, datatype) opened in file. Solution: Added a new file access property, file close degree. It has four values, H5F_CLOSE_DEFAULT H5F_CLOSE_WEAK H5F_CLOSE_SEMI H5F_CLOSE_STRONG The way a file is closed is decided by these values. Platforms tested: IRIX64 6.5, SunOS 5.6, FreeBSD 4.4
* [svn-r4680] Purpose:Quincey Koziol2001-12-061-0/+4
| | | | | | | | | | | | | Code cleanup Description: Property that H5P(g|s)et_hyper_cache uses is no longer in use inside the library. Solution: Removed H5P(g|s)et_hyper_cache API functions, except when backward compatibility is turned on. When backward compatibility is turned on, the property is defined by the library, but unused internally. Platforms tested: FreeBSD 4.4 (sleipnir)
* [svn-r4643] Purpose:Quincey Koziol2001-11-271-10/+13
| | | | | | | | | | | | | | | | | | | | | | Code cleanup Description: Windows is generating hundreds of warnings from some of the practices in the library. Mostly, they are because size_t is 32-bit and hsize_t is 64-bit on Windows and we were carelessly casting the larger values down to the smaller ones without checking for overflow. Also, some other small code cleanups,etc. Solution: Re-worked some algorithms to eliminate the casts and also added more overflow checking for assignments and function parameters which needed casts. Kent did most of the work, I just went over his changes and fit them into the the library code a bit better. Platforms tested: FreeBSD 4.4 (hawkwind)
* [svn-r4622] Purpose:Quincey Koziol2001-11-201-538/+447
| | | | | | | | | | | Code cleanup Description: Be more careful when starting up and shutting down APIs, only initialize variables which are actually shut down already. Get rid of IDs from internal function calls Platforms tested: FreeBSD 4.4 (hawkwind)
* [svn-r4586] Purpose:Quincey Koziol2001-11-021-28/+35
| | | | | | | | | | | | | | Code speedups, etc. Description: Bring in new algorithms and data structures for dealing with hyperslabs. This speeds up the hyperslab I/O for non-regular hyperslabs by a huge amount. Currently, the new API functions are ifdef'ed out, pending discussion and consensus approval. Platforms tested: FreeBSD 4.4 (hawkwind)
* [svn-r4584] Raymond Lu2001-11-021-7/+7
| | | | | | | | | Purpose: Switch from old property list to new generic property list. Description: Mainly changed H5Pcreat, H5Pclose, H5Pcopy. Platforms tested: IRIX64 6.5, FreeBSD, SunOS 5.7.
* [svn-r4543] Raymond Lu2001-10-151-9/+9
| | | | | | | Purpose: Changed the file creation property list to the new generic property list. Platform tested: IRIX64, SunOS5.7, FreeBSD
* [svn-r4520] Purpose:Quincey Koziol2001-10-041-1/+1
| | | | | | | | | Bug fix Description: Remove 'const' modifier in prototype for H5D_new, the dcpl_id parameter needs to be non-const. Platforms tested: Eyeballed (reported on gondolin)
* [svn-r4518] Purpose:Quincey Koziol2001-10-031-11/+21
| | | | | | | | Code cleanup Description: Clean up some small compiler warnings. Platforms tested: FreeBSD 4.4 (hawkwind)
* [svn-r4517] Raymond Lu2001-10-031-241/+571
| | | | | | | | Purpose: Changed to the new generic property list for dataset creation property list. Platforms tested: Arabica, modi4 and Hawkwind
* [svn-r4508] Purpose:Quincey Koziol2001-10-021-4/+19
| | | | | | | | | | | | | Document bug fix. Description: When reading or writing to chunked datasets and the data needed datatype conversion, and the amount of data was more than one conversion buffer, data in the conversion buffer was getting corrupted. Solution: Corrected error in advancing buffer pointer where it was being advanced by the number of elements instead of the number of bytes. Platforms tested: FreeBSD 4.4 (hawkwind)
* [svn-r4482] Purpose:Quincey Koziol2001-09-261-6/+6
| | | | | | | | | | | | | | | | | | | | | | Kludge Description: Since we're only about halfway through converting the internal use of property lists from the "old way" to the generic property lists, we turned off snapshots to avoid exposing lots of API changes to users, until the APIs settled down. Getting the snapshots rolling again seems to have become a priority, so some changes are going to have to be made now that were going to be postponed until we were completely finished with the conversion. This requires that the old API functions be able to deal with both the old and new property lists smoothly. Solution: Kludge together the property list code so that they can transparently handle dealing with both the old and new property lists Platforms tested: FreeBSD 4.4 (hawkwind)
* [svn-r4355] Purpose:Quincey Koziol2001-08-141-11/+11
| | | | | | | | | | | | | | | | | | | | | | Code cleanup (sorta) Description: When the first versions of the HDF5 library were designed, I remembered vividly the difficulties of porting code from a 32-bit platform to a 16-bit platform and asked that people use intn & uintn instead of int & unsigned int, respectively. However, in hindsight, this was overkill and unnecessary since we weren't going to be porting the HDF5 library to 16-bit architectures. Currently, the extra uintn & intn typedefs are causing problems for users who'd like to include both the HDF5 and HDF4 header files in one source module (like Kent's h4toh5 library). Solution: Changed the uintn & intn's to unsigned and int's respectively. Platforms tested: FreeBSD 4.4 (hawkwind)
* [svn-r4329] Purpose:Quincey Koziol2001-08-121-3/+3
| | | | | | | | | | | | | | Bug Fix Description: The datatype conversion buffer size was only halfway converted from hsize_t to size_t and was causing problems. Also, the H5P_peek_<foo> routines have a bunch of identical code. Solution: Finished converting the datatype conversion buffer size to size_t and cleaned up the implementation of the H5P_peek_<foo> routines to call a common routine instead of reimplementing a bunch of code. Platforms tested: Solaris 2.7 (arabica)
* [svn-r4324] Purpose:Quincey Koziol2001-08-101-119/+286
| | | | | | | | | | | | | | | | | | | | | | | | New Features! Description: Start migrating the internal use of property lists in the library from the older implementation to the new generic property lists. Currently, only the dataset transfer property lists are migrated to the new architecture, all the rest of the property list types are still using the older architecture. Also, the backward compatibility features are not implemented yet, so applications which use dataset transfer properties may need to make the following changes: H5Pcreate(H5P_DATASET_XFER) -> H5Pcreate_list(H5P_DATASET_XFER_NEW) and H5Pclose(<a dataset transfer property list>) -> H5Pclose_list(id) This still may have some bugs in it, especially with Fortran, but I should be wrapping up those later today. Platforms tested: FreeBSD 4.4 (hawkwind)
* [svn-r4181] Purpose:Quincey Koziol2001-07-101-12/+16
| | | | | | | | | Bug Fix, Code Cleanup, Code Optimization, etc. Description: Fold in the hyperslab speedups, clean up compile warnings and change a few things from using 'unsigned' or 'hsize_t' to use 'size_t' instead. Platforms tested: FreeBSD 4.3 (hawkwind), Solaris 2.7 (arabica), Irix64 6.5 (modi4)
* [svn-r4038] Purpose:Quincey Koziol2001-06-211-4/+4
| | | | | | | | | | | | | Code clean/bug fix Description: H5FL (free-list manager) code currently is taking an hsize_t as the size of a memory block to allocate. On many machines, the size of an hsize_t is greater than the size of a size_t, potentially leading to incorrect memory allocations in rare circumstances. Solution: Changed hsize_t parameters and variables to size_t. Platforms tested: FreeBSD 4.3 (hawkwind)
* [svn-r4002] Purpose:Quincey Koziol2001-06-141-18/+18
| | | | | | | | | | | | | Bug fix/code improvement. Description: 'all' selections were (ab)using the array reading code and required that the internal data transfer buffer size be big enough to hold the an entire slab of the data, which was confusing and limiting for users. Solution: Changed 'all' selections to use sequence reading code instead of array reading code. Platforms tested: FreeBSD 4.3 (hawkwind)
* [svn-r3781] Purpose:Bill Wendling2001-04-051-15/+15
| | | | | | | | | | | | | | | | | | Update Description: Changed #include <hdf_file.h> construct to #include "hdf_file.h" so that the GNU compiler can more easily pick up the dependencies which it places in the .depend and Dependencies files. Also regenerated the Dependencies to go along with this. Platforms tested: Linux
* [svn-r3677] Purpose:Albert Cheng2001-03-201-4/+0
| | | | | | | | | | | | | Bug fix (sort of) Description: The RCSID string in H5public.h was causing the C++ code problem as it was included multiple times and C++ did not like multiple definitions of the same static variable. Solution: Since we don't really make use of the RCSID strings as we have not installed it in all source files, we decided to remove it. Platforms tested: eirene (linux), modi4 (IRIX64-64) both serial and parallel modes.
* [svn-r3302] Purpose:Quincey Koziol2001-01-181-1/+9
| | | | | | | | | | | | | Bug fix Description: Certain combinations of hyperslabs, especially those that have to be strip-mined during I/O were causing data to be incorrectly transferred. Solution: Changed the code in H5S_get_hyper_regions to be more careful about the regions of the current dimension that are valid. Sometimes, regions which had already been iterated through were being re-processed. Platforms tested: FreeBSD 4.2 (hawkwind)
* [svn-r3280] Purpose:Quincey Koziol2001-01-121-0/+17
| | | | | | | | | | | | Bug fix Description: Datasets were allowed to be created with chunks larger than the maximum dimension for each dimension. Solution: Compare chunk sizes against maximum dimensions and reject dataset creations which have chunks too large for the dimensions in the dataspace. Platforms tested: FreeBSD 4.2 (hawkwind)