summaryrefslogtreecommitdiffstats
path: root/src/H5T.c
Commit message (Collapse)AuthorAgeFilesLines
* [svn-r11424] Purpose:Quincey Koziol2005-09-171-9/+11
| | | | | | | | | | | | | | | | | | | | | Code cleanup/bug fix Description: Hoist function call out of inner loop of type conversion by retrieving source & destination precisions once, outside the loop. There's still some overhead because this information is stored in variables set at run-time, when it's really constant for the particular machine. Further work to set compiler macros would allow this code to be optimized better by the compiler with dead code removal. We'll continue to work on this area... Also, made new internal H5T_compiler_conv routine static instead of of private, until we need to reference it from another source code module. Platforms tested: h5committest FreeBSD 4.11 (sleipnir)
* [svn-r11415] Purpose: Internal design change.Raymond Lu2005-09-141-187/+198
| | | | | | | | | | | | | | | | | Description: H5T_register() replaces any existing data conversion path with a new path. Solution: Added a parameter to H5T_register() and H5T_path_find() to signal the library whether the new conversion path is from API function H5Tregister() or from private function like H5T_init_interface(). If it is from H5Tregister(), replace existing path. If it's from H5T_init_interface() and the library is trying to register default hard conversion functions, don't replace existing path because the path is registered by the library. For example, the library registered H5T_conv_int_float() and is trying to register H5T_conv_long_float(). The size of long is equal to int. There's no need to replace the path H5T_conv_int_float(). Platforms tested: h5committest and fuss.
* [svn-r11414] Purpose: Rename a API functionRaymond Lu2005-09-141-11/+11
| | | | | | | | | | | Description: The API function H5Tis_hard() which was recently checked in has been renamed to H5Tcompiler_conv() to be more descriptive. No other changes. Platforms tested: fuss - simple change. Misc. update: config/lt_vers.am to update libtool version.
* [svn-r11386] 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-r11384] Purpose:Quincey Koziol2005-09-121-15/+48
| | | | | | | | | | | | | | | | | | | | | 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-r11355] Purpose: A new API function and its test.Raymond Lu2005-09-061-0/+77
| | | | | | | | | Description: Put in a new API funciton, H5Tis_hard. It checks whether the conversion function from a native type to another native type is a compiler (hard) conversion. Also checked a test in test/dt_arith.c. Platforms tested: h5committest and fuss.
* [svn-r11332] Purpose: Minor Change to Macro NamesRaymond Lu2005-09-011-52/+52
| | | | | | | | | Description: Changed the names of macros defined in H5Tpkg.h from H5T_CONV_INTERIM_XXX_XXX to H5T_CONV_INTERNAL_XXX_XXX to be more descriptive. Platforms tested: fuss - simple change
* [svn-r11317] Purpose: Minor change to macro namesRaymond Lu2005-08-301-52/+52
| | | | | | | | | | | | Description: Changed the names of the interim macros for data conversion checked in yesterday from the SOURCE_DESTINATION style (like FP_FP or LDOUBLE_LLONG) to the H5T_CONV_INTERIM_SOURCE_DESTINATION style (like H5T_CONV_INTERIM_FP_FP OR H5T_CONV_INTERIM_LDOUBLE_LLONG), to be more descriptive. These macros are defined in H5Tpkg.h and used in H5Tconv.c and H5T.c for interim purpose. Platforms tested: fuss - simple change.
* [svn-r11311] Purpose: New features.Raymond Lu2005-08-291-52/+52
| | | | | | | | | | | | | | | | | | | | Description: Added 2 new configure options, --enable-exception and --enable-accuracy. --enable-exception lets the library check whether user's exception handling functions are present during compiler data conversions and use them if they are. When it's disabled, this step is skipped to improve conversion speed. This step isn't implemented yet for soft conversions because there would be little gain in speed. --enable-accuracy guarantees data accuracy during data conversions. It means the library will choose compiler conversions only if the accurate data is secured. Otherwise, the library will go for the library's own conversions. If this option is disabled, the library uses compiler conversions in favor of their speed as long as they work even if data can be incorrect. Platforms tested: h5committest and fuss. Some systems may fail after this checkin.
* [svn-r11245] Purpose:Quincey Koziol2005-08-131-123/+123
| | | | | | | | | | | | | | | | | | | | 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-r11145] Purpose:Quincey Koziol2005-07-231-16/+29
| | | | | | | | | | | | | | | | Bug fix Description: If a named datatype is copied and the copy is used to create a dataset, the dataset would inadvertantly refer to the original named datatype instead of a local (possibly modified) copy of the named datatype. Solution: Fixed datatype copying routine. Platforms tested: FreeBSD 4.11 (sleipnir) Too minor to require h5committest
* [svn-r11144] Purpose:Quincey Koziol2005-07-231-22/+36
| | | | | | | | | | | New port Description: Elena asked me to check in her NEC SX-6 work, so here it is! :-) Platforms tested: FreeBSD 4.11 (sleipnir) NEC SX-6 (by Elena)
* [svn-r11078] Purpose:Quincey Koziol2005-07-171-2/+9
| | | | | | | | | | | | | | | 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-r10958] Purpose:Quincey Koziol2005-06-201-0/+19
| | | | | | | | | | | | | New feature Description: Add group creation & access property lists, dataset access property lists and named datatype creation & access property lists. Currently have <foo>_extend() API names, which will need to be changed for the final release. Platforms tested: FreeBSD 4.11 (sleipnir) Linux 2.4 (heping)
* [svn-r10919] Purpose: Take Out An Unused FunctionRaymond Lu2005-06-141-4/+0
| | | | | | | | | | | Description: Data conversion function H5T_conv_i32le_f64le() was unused. Because we have new conversion functions for integers and floating numbers, this old function is taken out. Platforms tested: fuss - simple change. Misc. update:
* [svn-r10917] Purpose: Bug fixRaymond Lu2005-06-141-5/+3
| | | | | | | | Description: Fix the codes of last checkin(Bug #341). Some failures happened in daily test from last checkin. Try to fix them in this checkin. Platforms tested: modi4, mir, and tg-login2.
* [svn-r10916] Purpose: Bug fixRaymond Lu2005-06-131-2/+4
| | | | | | | | | Description: The hard conversion functions of "long double" and other floating point types were left out for registration somehow. Solution: Added them in. Platforms tested: h5committest and fuss.
* [svn-r10740] Purpose:Quincey Koziol2005-05-091-4/+4
| | | | | | | | | | | Bug fix Description: Add missing #ifdef's to recent code cleanup that fix daily test failures. Platforms tested: FreeBSD 4.11 (sleipnir) Too minor to require h5committest
* [svn-r10736] Purpose:Quincey Koziol2005-05-071-0/+4
| | | | | | | | | | | Code cleanup Description: Clean up some compiler warnings Platforms tested: FreeBSD 4.11 (sleipnir) h5committest
* [svn-r10620] Purpose:Quincey Koziol2005-04-161-0/+4
| | | | | | | | | | | | | | | | | 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-r10238] Purpose:Quincey Koziol2005-03-201-95/+145
| | | | | | | | | | | | | | | | 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-r10081] Purpose: Some Kind of VerificationRaymond Lu2005-02-241-3/+50
| | | | | | | | | | | | | | | | | | Description: The library didn't handle incorrect hardware conversion for datatype. It simply did convert to incorrect data if any hardware didn't handle correctly. Solution: During configuration, incorrect hardware conversion is detected and some macros are defined. Use these macros to decide whether to register hardware conversion in H5T.c. If no hardware conversion function is registered for certain pair of datatypes, software conversion function will be used as the conversion path. Although slower than hardware conversion, we're more confident software conversion is accurate. So in one sentence to describe library's behavior, if some hardware conversion doesn't work well, software conversion will be used instead. Platforms tested: h5committest and fuss. Misc. update: some changes to configure's comments.
* [svn-r9984] Purpose: New feature and testRaymond Lu2005-02-101-0/+23
| | | | | | | | | | Description: Added support of hardware conversion between "long double" and integers(mainly in H5Tconv.c) and some test cases(mainly in test/dtypes.c). Platforms tested: h5committest and fuss. Misc. update: RELEASE.txt
* [svn-r9966] Purpose: Bug fixRaymond Lu2005-02-091-1/+1
| | | | | | | | | | | | | Description: H5Tget_member_value didn't return correct value if called after H5Tenum_valueof. It's because there's a sorting on the members of enum type in H5Tenum_valueof which changed the order of members. Solution: Made a copy of original type and do sorting on it to protect the original order. Platforms tested: fuss; tested v1.6 with h5committest Misc. update: RELEASE.txt
* [svn-r9959] Purpose: Bug fixRaymond Lu2005-02-081-4/+18
| | | | | | | | | | | | Description: For variable-length string, H5Tget_class returned H5T_STRING as its class. But H5Tdetect_class and H5Tget_member_class considered it as H5T_VLEN. This is fixed to let all these 3 functions treat it as H5T_STRING. Some test cases have been added to dtypes.c Platforms tested: heping - already tested for v1.6 with h5committest Misc. update: RELEASE.txt
* [svn-r9857] Purpose: MaintenanceElena Pourmal2005-01-221-3/+0
| | | | | | | | | | | | | | Description: Removed PABLO from the source Solution: Platforms tested: arabica with 64-bit, copper with parallel, heping with GNU C and C++ and PGI fortran (but I disabled hl, there is some weird problem only on heping: F9XMODFLAG is not propagated to the Makefile files Misc. update:
* [svn-r9840] Purpose: Bug fix and new testRaymond Lu2005-01-201-3/+3
| | | | | | | | | | | | | Description: The functions for user-define floating-point type, like H5Tset_fields, H5Tset_offset, H5Tset_precision, H5Tset_size, have some minor bugs. For error checking, the library didn't include offset value somehow. Solution: Corrected those bugs. Platforms tested: h5committest and fuss Misc. update:
* [svn-r9727] Purpose:Quincey Koziol2004-12-291-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-r9584] Purpose:Quincey Koziol2004-11-271-3/+4
| | | | | | | | | | | | | | | Code optimization Description: Revise mechanism for calling H5open/H5check to better avoid calling them from internal libray code. Only copy a datatype's group entry information if it has some. Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel Solaris 2.7 (arabica) Too minor to require h5committest
* [svn-r9469] Purpose:Quincey Koziol2004-10-271-6/+2
| | | | | | | | | | | | | Code cleanup Description: Clear up some inconsistencies, inefficiencies and possible errors between the release and development branch. Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel Solaris 2.7 (arabica) Linux 2.4 (heping) w/C++ & FORTRAN
* [svn-r9445] Purpose: Bug fixRaymond Lu2004-10-211-4/+4
| | | | | | | | | | | Description: "char" was considered as always "signed char" in data type conversion. However, ISO C leaves the definition of "char" to individual implementation. i.e. for IBM AIX C compiler, it's treated as "unsigned char". Solution: Changed all "char" to "signed char". Don't even do "char" anymore because its definition is up to each vendor. Platforms tested: h5committest
* [svn-r9400] Purpose:Quincey Koziol2004-10-121-1/+0
| | | | | | | | | | | | | Code cleanup Description: Minor code cleanups and tweaks. Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel Solaris 2.7 (arabica) Linux 2.4 (verbena) w/fortran Otherwise, too minor to require full h5committest
* [svn-r9375] Purpose:Quincey Koziol2004-10-061-12/+3
| | | | | | | | | | | | | Bug fix Description: Close a couple of memory leaks Platforms tested: FreeBSD 4.10 (sleipnir) Solaris 2.7 (arabica) w/purify Linux 2.4 (verbena) too minor for h5committest
* [svn-r9366] Raymond Lu2004-10-051-2/+4
| | | | | | | | | Purpose: feature change Description: Prevent creating datatype of size 0. Platforms tested: fuss(simple change)
* [svn-r9354] Purpose:Quincey Koziol2004-10-011-26/+39
| | | | | | | | | | | | | | | | 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-r9350] *** empty log message ***Raymond Lu2004-10-011-7/+29
|
* [svn-r9342] Purpose:Quincey Koziol2004-09-301-2/+2
| | | | | | | | | | | | | | | | 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-r9329] James Laird2004-09-281-417/+508
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Purpose: Feature Description: Datatypes and groups now use H5FO "file object" code that was previously only used by datasets. These objects will hold a file open if the file is closed but they have not yet been closed. If these objects are unlinked then relinked, they will not be destroyed. If they are opened twice (even by two different names), both IDs will "see" changes made to the object using the other ID. When an object is opened using two different names (e.g., if a dataset was opened under one name, then mounted and opened under its new name), calling H5Iget_name() on a given hid_t will return the name used to open that hid_t, not the current name of the object (this is a feature, and a change from the previous behavior of datasets). Solution: Used H5FO code that was already in place for datasets. Broke H5D_t's, H5T_t's, and H5G_t's into a "shared" struct and a private struct. The shared structs (H5D_shared_t, etc.) hold the object's information and are used by all IDs that point to a given object in the file. The private structs are pointed to by the hid_t and contain the object's group entry information (including its name) and a pointer to the shared struct for that object. This changed the naming of structs throughout the library (e.g., datatype->size is now datatype->shared->size). I added an updated H5Tinit.c to windows.zip. Platforms tested: Visual Studio 7, sleipnir, arabica, verbena Misc. update:
* [svn-r9183] Purpose: New featureRaymond Lu2004-09-011-7/+7
| | | | | | | | | | | | Description: Restore 6 old error API functions back to the library to be backward compatible with v1.6. They are H5Epush, H5Eprint, H5Ewalk, H5Eclear, H5Eset_auto, H5Eget_auto. These functions do not have error stack as parameter. Solution: Internally, these functions use default error stack. Platforms tested: h5committest and fuss. Misc. update: RELEASE.txt
* [svn-r9053] Purpose:Quincey Koziol2004-08-081-28/+40
| | | | | | | | | | | | | | | | | | | Bug fix Description: Correct possible core dump when a datatype conversion function is registered with the library after a compound datatype has been converted (having it's type conversion information cached by the library). The compound datatype must have been created by inserting the fields in non-increasing offset order to see the bug. Solution: Re-sort the fields in the compound datatypes before recalculating the cached information when performing the conversion on them. Platforms tested: FreeBSD 4.10 (sleipnir) h5committested
* [svn-r8981] Purpose:Quincey Koziol2004-08-021-5/+8
| | | | | | | | | | | | | Code cleanup Description: Various minor tweaks to clean code up and bring it into closer syncronization with the release branch. Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel h5committested IRIX64 6.5 (modi4)
* [svn-r8964] Purpose:Quincey Koziol2004-07-281-2/+19
| | | | | | | | | | | | Revise new feature Description: Add buffer type and version # bytes to the encoded datatype and dataspace buffers (for H5Tencode & H5Sencode) Platforms tested: FreeBSD 4.10 (sleipnir) Too minor to require h5committest
* [svn-r8927] Purpose:Quincey Koziol2004-07-221-9/+4
| | | | | | | | | | | Code cleanup Description: Clean up various recent changes a little. Platforms tested: FreeBSD 4.10 (sleipnir) Too minor to require h5committest
* [svn-r8921] Purpose: new featureRaymond Lu2004-07-211-2/+17
| | | | | | | | | | | | | | Description: This is the second step of checkin for encoding and decoding objects. H5Tencode and H5Tdecode have been committed in the previous step. H5Sencode and H5Sdecode are checked in this time. Solution: Given object ID, these functions encode and decode object information into and from binary buffer and return new object ID. They take advantage of the existing codes of object header message and encode in the same format. Platforms tested: fuss and h5committest. Misc. update: RELEASE.txt
* [svn-r8892] Purpose:Quincey Koziol2004-07-161-3/+6
| | | | | | | | | | | | | | 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-r8879] Raymond Lu2004-07-141-0/+148
| | | | | | | | | | | | | | Purpose: New feature Description: New API H5Tencode and H5Tdecode. Given object ID, H5Tencode encodes object information into a binary form. H5Tdecode decode an object information in a binary form, reconstructs the object and return a new object ID. Solution: Use object header functions H5O_dtype_decode and H5O_dtype_encode to facilitate them. The encoded binary is exactly like object header information. This is the first step checkin. Will check in H5Sencode and H5Sdecode later. Platforms tested: h5committed and fuss. Misc. update: will update release.txt after 2nd step checkin.
* [svn-r8801] Purpose:Quincey Koziol2004-07-031-5/+48
| | | | | | | | | | | | | | | 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-r8760] Purpose:Quincey Koziol2004-06-291-3/+3
| | | | | | | | | | | | | Code cleanup & small bug fix Description: Regenerate dependency files Add htri_t as separate type from hbool_t for code tracing purposes. Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel too minor to require h5committest
* [svn-r8731] Purpose:Quincey Koziol2004-06-231-8/+7
| | | | | | | | | | | | | | | Code cleanup & minor optimization Description: Re-work the way interface initialization routines are specified in the library to avoid the overhead of checking for them in routines where there is no interface initialization routine. This cleans up warnings with gcc 3.4, reduces the library binary size a bit (about 2-3%) and should speedup the library's execution slightly. Platforms tested: FreeBSD 4.10 (sleipnir) w/gcc34 h5committest
* [svn-r8707] Changed the way HDF5 handles hid_t's and added API functions to ↵James Laird2004-06-181-2/+2
| | | | allow users to register IDs and ID types at runtime.