summaryrefslogtreecommitdiffstats
path: root/src/H5Tconv.c
Commit message (Collapse)AuthorAgeFilesLines
* Refactor all the 'H5VL_*_optional' callbacks to move the type of operation outQuincey Koziol2020-01-041-17/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | of the va_list, so it's at least possible for another connector to know what the operation is and decide whether to implement it or not. Added a new VOL sub-class called "introspect" where callbacks that report information about the connector or container can be placed. Added an 'opt_query' callback to this sub-class, for a connector to report back to the library whether a particular optional callback operation is supported. Also added a 'get_conn_cls' introspection callback, to retrieve the H5VL_class_t of a connector (either the "current" connector, H5VL_GET_CONN_LVL_CURR, or the terminal connector, H5VL_GET_CONN_LVL_TERM). Moved the "post open" operation from a file 'specific' operation to a file 'optional' operation, now that it's possible to detect (with the 'opt_query' introspection callback) whether a VOL connector implements an optional operation, without just returning an error. Added new internal VOL helper routines: H5VL_object_is_native, to determine if an object is in (or is a) native file, and H5VL_file_is_same, to determine if two objects are in (or are) the same terminal VOL connector's container. (And moved the special handling for FILE_IS_EQUAL operation out of internal VOL callback routine into H5VL_file_is_same) Made new dataset 'get' operation for H5Dvlen_get_buf_size, aligning it better with other 'get' operations in API. Fixed several issues with pass-through connectors, which are now passing the 'make check-passthrough-vol' tests again. A bunch of warning and style cleanups as well.
* H5R: fix H5Tconv to check for null referencesJerome Soumagne2019-12-091-29/+42
| | | | | | Valid for both deprecated and non-deprecated references Update test
* Implement H5VLget_file_type() to return a copy of a datatype with theNeil Fortner2019-12-061-15/+15
| | | | | | | | | | | location set to be in a file. Only meant to be used by VOL connectors. Implement H5VLpeek_connector_id() to support connectors querying their own IDs. Fix app_ref with connector IDs in a couple places (external VOLs registered as default through ENV should be visible to the application). Modify vlen and reference interfaces to work with arbitrary VOL connectors. Implement file "post open" specific callback, to enable connectors to update their file structs after a wrap context has been set.
* Add new H5R API that abstracts object, region and attribute reference typesJerome Soumagne2019-10-081-0/+273
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also support references to external files Add new H5T_REF type and type conversion routines Support conversion from H5T_REF_OBJ/DSET_REG to H5T_REF Add H5Treclaim() API to reclaim memory of vlen/reference types Deprecate H5Dvlen_reclaim() Fix H5T_vlen_reclaim() and H5T_reclaim() to use private callback Add H5T_ref_reclaim() Move previous H5R APIs to H5Rdeprec.c Clean up H5Ocopy Separate H5O_copy_expand_ref() to H5Ocopy_ref() Add support for copying new reference types Clean up deprecated routines to go through VOL and same code path Fix return codes in existing trefer.c test Rename trefer.c to trefer_deprec.c trefer.c is for new references Add performance test for trefer Add additional obj_copy_ref test Make use of tokens and blobs to store references Skip blob encoding for object references Start adding new reference examples
* Add 'blob' callbacks to VOL, along with a native implementation to store themQuincey Koziol2019-10-081-36/+38
| | | | | | | in the global heap, and changed the VL datatype conversion code to use blobs. Move encode/decode of sequence lengths into VL datatype callbacks, from native VOL blob routines.
* Updated configure & CMake compiler flags for GCC 8.x, along with correspondingQuincey Koziol2019-06-281-21/+21
| | | | | changes to warnhist script (and some extra improvements for condensing C++ and Java warnings), and fixed a bunch of warnings.
* Added an H5MM_memcpy call that checks for buffer overlap.Dana Robinson2019-03-161-11/+11
|
* C and POSIX call cleanupDana Robinson2019-01-111-1/+1
|
* VOL FEATUREDana Robinson2018-10-101-3/+3
|
* Normalization with vol_integration (misc internal and datatype)Dana Robinson2018-09-201-39/+28
|
* Fixed HDFFV-10404Binh-Minh Ribler2018-07-131-5/+5
| | | | | | | | | Description: Applied the typo fixes from user's report. The previous pull request couldn't be merged because it was too old, and it was too complicated for me to resolve conflicts. Platform tested: Linux/64 (jelly) - very minor
* Add API context interface and use it throughout the library.Quincey Koziol2018-03-151-998/+383
|
* Normalization with VOL integration branch.Dana Robinson2017-12-011-31/+59
|
* Merge pull request #426 in HDFFV/hdf5 from ~LRKNOX/hdf5_lrk:hdf5_1_10 to ↵Larry Knox2017-04-251-6/+4
| | | | | | | | | | hdf5_1_10 * commit '54957d37f5aa73912763dbb6e308555e863c43f4': Commit copyright header change for src/H5PLpkg.c which was added after running script to make changes. Add new files in release_docs to MANIFEST. Cimmit changes to Makefile.in(s) and H5PL.c that resulted from running autogen.sh. Merge pull request #407 in HDFFV/hdf5 from ~LRKNOX/hdf5_lrk:hdf5_1_10_1 to hdf5_1_10_1 Change copyright headers to replace url referring to file to be removed and replace it with new url for COPYING file.
* [svn-r30017] Description:Quincey Koziol2016-06-061-4/+4
| | | | | | | | | Bring warning cleanusp in r29990, 29993, 29997, 29999, 30004 from revise_chunks branch to trunk. Tested on: MacOSX/64 10.11.5 (amazon) w/serial, parallel & production. (h5committest forthcoming)
* [svn-r27768] Description:Quincey Koziol2015-09-141-3/+4
| | | | | | | | | | | | | | | | | | | | | | Complete revamp of package initialization/shutdown mechanism in the library. Each package now has a single init/term routine. This new way should avoid packages being re-initialized during library shutdown and is also be _much_ more proactive about giving feedback for resource leaks internal to the library. Introduces a new "module" header file for packages in the library (e.g src/H5Fmodule.h) which sets up some necessary package configuration macros for the FUNC_ENTER/LEAVE macros. (The VFL drivers have their own slightly modified version of this header, src/H5FDdrvr_module.h) Also cleaned up a bunch of resources leaks all across the library and tests, along with addressing many warnings, as I encountered them. Tested on: MacOSX/64 10.10.5 (amazon) w/serial & parallel Linux/64 3.10.x (kituo) w/serial & parallel Linux/64 2.6.x (ostrich) w/serial
* [svn-r27572] Removed VMS-specific code from the library.Dana Robinson2015-08-241-2/+5
| | | | | | | | | The only remaining code consists of a few floating-point tests that rely on pre-generated and checked-in VMS files. These have been left alone, even though they will not be possible to recreate, since testing VMS float behavior is still important. Tested on: h5committest
* [svn-r27428] Bug fix: DAILYTEST-170Albert Cheng2015-07-241-0/+8
| | | | | | | | | | | | | | | | | | | Description: XL compilers in ostrich (PowerPC64 linux) fail in test/dt_arith because of the removal of the LLONG_TO_LDOUBLE_CORRECT (removed in r26625) and LDOUBLE_TO_LLONG_ACCURATE (removed in r26623). Solution: Reverse revisions r26623: bring back LDOUBLE_TO_LLONG_ACCURATE configure macro r26625: bring back LLONG_TO_LDOUBLE_CORRECT configure macro r26627: bring back WANT_DATA_ACCURACY configure macro which is used together with the above two macros. This also brings back the enable-dconv-accuracy configure option. Tested: h5committested. Also tested in ostrich using the XL compilers.
* [svn-r27133] - Add a new attribute function characterstic for format:Mohamad Chaarawi2015-06-011-331/+331
| | | | | | | | * H5_ATTR_FORMAT(X,Y,Z) __attribute__((format(X, Y, Z))) - Rename UNUSED attribute characterstic to H5_ATTR_UNUSED. - Rename NORETURN attribute characterstic to H5_ATTR_NORETURN tested with h5committest.
* [svn-r27130] Fix warnings in H5TconvJerome Soumagne2015-06-011-91/+132
| | | | | | Remove H5T_INIT_INTERFACE from H5Tconv Add macro in H5Tconv to check overflow when using H5T_CONV_uS
* [svn-r27045] Renamed H5_ASSIGN_OVERFLOW() to H5_CHECKED_ASSIGN() and re-orderedDana Robinson2015-05-101-9/+9
| | | | | | the arguments to be in a more logical order. Tested on: h5committest
* [svn-r26625] Description:Quincey Koziol2015-03-271-4/+0
| | | | | | | | | | | Bring r26543 from autotools_rework branch to trunk: Remove the LLONG_TO_LDOUBLE_CORRECT macro/define, it's working around bugs in very old SGI/FreeBSD/Windows compilers. Tested on: Linux/32 2.6.18 (jam) w/serial & parallel (Daily tested on branch for 2+ days)
* [svn-r26623] Description:Quincey Koziol2015-03-271-4/+0
| | | | | | | | | | | Bring r26513 from autotools_rework branch to trunk: Remove the LDOUBLE_TO_LLONG_ACCURATE macro/define, it's working around bugs in older SGI, HP/UX, MacOSX and Windows .NET 2003 compilers. Tested on: Linux/32 2.6.18 (jam) w/serial & parallel (Daily tested on branch for 2+ days)
* [svn-r26606] Description:Quincey Koziol2015-03-261-4/+0
| | | | | | | | | | | Bring r26508 from autotools_rework branch to trunk: Remove HW_FP_TO_LLONG_NOT_WORKS macro/define, it was only addressing Windows .NET 2003 compiler issues. Tested on: Linux/32 2.6.18 (jam) w/serial & parallel (Daily tested on branch for 2+ days)
* [svn-r26605] Description:Quincey Koziol2015-03-261-12/+8
| | | | | | | | | | | | | | Bring r26503 & r26528 from autotools_rework branch back to the trunk: Remove old platform configure files: craynv, dec-flags, hpux11.23, ia64-linux-gnu, nec-superux14.1, sv1-cray, x86_64-redstorm-linux-gnu Also remove CONVERT_DENORMAL_FLOAT, since this was only set in the configure files being removed. Tested on: Linux/32 2.6.18 (jam) w/serial & parallel (Daily tested on branch for 2+ days)
* [svn-r26596] Description:Quincey Koziol2015-03-261-4/+0
| | | | | | | | | | | Bring r26499 from autotools_rework branch to trunk: Remove ULLONG_TO_FP_CAST_WORKS macro/define, as it only applies to older platforms we aren't supporting any longer. Tested on: Linux/32 2.6.18 (jam) w/serial & parallel (Daily tested on branch for 2+ days)
* [svn-r26595] Description:Quincey Koziol2015-03-251-2/+0
| | | | | | | | | | | Bring r26494 from autotools_rework branch back to trunk: Remove the LDOUBLE_TO_UINT_ACCURATE macro/define, it was addressing problems with older Intel compilers on Linux that are no longer supported. Tested on: Linux/32 2.6.18 (jam) w/serial & parallel (Daily tested on branch for several days)
* [svn-r26591] Description:Quincey Koziol2015-03-251-4/+0
| | | | | | | | | | | | Bring r26492 from autotools_rework branch back to trunk: Remove the FP_TO_ULLONG_ACCURATE and FP_TO_ULLONG_RIGHT_MAXIMUM macros/defines, which were added to address problems with older PGI compilers and HP-UX systems and are no longer supported. Tested on: Linux/32 2.6.18 (jam) w/serial & parallel (daily tested on branch for >1 week)
* [svn-r26587] Description:Quincey Koziol2015-03-251-6/+0
| | | | | | | | | | | Bring r26489 from autotools_rework branch to trunk: Remove the ULONG_TO_FP_BOTTOM_BIT_ACCURATE macro/define, as it was added for SGI systems and old Solaris systems, which are no longer supported. Tested on: Linux/32 2.6.18 (jam) w/serial & parallel (Daily tested for >1 week)
* [svn-r26560] Description:Quincey Koziol2015-03-241-14/+0
| | | | | | | | | | | Bring r26483 from autotools_rework branch back to trunk: Remove INTEGER_TO_LDOUBLE_ACCURATE macro/define - we no longer support SGI systems. Tested on: Linux/32 2.6.18 (jam) w/serial & parallel (daily tested on branch for >1 week)
* [svn-r26495] Description:Quincey Koziol2015-03-191-14/+0
| | | | | | | | | | Bring r26258 from the autotools_rework branch to the trunk - remove the LDOUBLE_TO_INTEGER_WORKS macro/define, which was addressing issues with SGI systems that are no longer supported. Tested on: Linux 2.6.x (jam) w/serial & parallel Daily tested on branch for >2 weeks
* [svn-r26206] Reverting change r26204Scot Breitenfeld2015-02-181-4/+0
|
* [svn-r26205] Fix for HDFFV-8908:Scot Breitenfeld2015-02-181-0/+4
| | | | | h5tenum_insert_f does not work with default 8 byte integers (xlf compiler)
* [svn-r24803] Description:Quincey Koziol2014-03-161-54/+54
| | | | | | | | | | | | Rename GCC_DIAG_OFF/ON macros to H5_GCC_DIAG_OFF/ON and move from src/H5private.h to src/H5public.h. Wrap typedef of hsize_t and hssize_t in DIAG_OFF(long-long) macros. Clean up a bunch of "macro '-' is unused" warnings. Tested on: Mac OSX/64 10.9.2 (amazon) w/gcc 4.8.2, C++, FORTRAN, parallel (too minor to require h5committest)
* [svn-r24101] Description:Quincey Koziol2013-09-051-1/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Clean up warnings, enable new compiler warning flag(s) and bring back changes from Coverity branch: r20813: Remove the dead code as listed for coverity bug #1722. h5committested. r20814: Issue 69: Check return value and throw error if negative return. Also free datatype id on error r20815: Use HDstrncpy. --gh r20816: Replaced one last HDstrcat call with HDstrncat to resolve coverity issue 832. r20817: Use HDstrncpy and HDstrncat. --gh r20818: Purpose: Fix valgrind issues with h5jam Description: Modified h5jam to free strings strdup'd in parse_command_line before exit. Note that they may still not be freed in case of error, due to the widespread use of exit(). r20819: Issue 80: change loop to use int as loop index. r20820: Maintenance: Fixed the bug found by coverity CID 788 There were two problems with this function: 1) it tried to unnecessary free NULL pointer 2) it tried to allocate c_name buffer that is done by H5Pget_class_name Tested on: Mac OSX 10.8.4 (amazon) w/gcc 4.8.1, C++ & FORTRAN (too minor to require h5committest)
* [svn-r23713] Description:Quincey Koziol2013-05-211-275/+352
| | | | | | | | | | Clean up warnings, switch library code to use Standard C/POSIX wrapper macros, remove internal calls to API routines, update checkapi and checkposix scripts. Tested on: Mac OSX/64 10.8.3 (amazon) w/C++ & FORTRAN Big-Endian Linux/64 (ostrich)
* [svn-r23698] Description:inactive/trunk_merge_coverityQuincey Koziol2013-05-131-330/+254
| | | | | | | | Revert r23695, which breaks big-endian tests on ostrich, etc. Will investigate and submit correction later. Tested on: BE & LE Linux systems (ostrich, koala, jam, emu)
* [svn-r23695] Description:Quincey Koziol2013-05-111-254/+330
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Clean up warnings in H5Tconv.c (down to _only_ 9000 lines of output now!) Merge changes from Coverity branch back to trunk: r20684: Fix for coverity bug #1721 which was due to the fix for coverity bug #943. r20685: Use HDstrncpy. --gh r20761: Purpose: Fix valgrind issues Description: Free image_data and data as appropriate in test_image. r20762: Purpose: Fix coverity issue 600 Description: Add check for return value of H5O_close in H5Ocopy. Also cleaned up various warnings. r20763: Purpose: Fix valgrind issues with h5stat Description: Modified h5stat to free "iter" before exit, and free "hand" before exit if parse_command_line exits directly. r20764: fixed coverity issues: 69, 327, 614, 684, 685, 696, 697, 1681, 967, 826, 660, 80 r20765: Fixed coverity bug 668 Pulled x * y * z multiply out of malloc operand into a separate n_elements variable to quiet integer overflow warning. No actual integer overflow tests are performed since it's just a test program but I did add a check that n_elements is >= 1. I also changed an error condition from doing its own close and returning -1 to "goto out;" like the rest of the program. r20766: Fixed coverity bug 667 Pulled x * y * z multiply out of malloc operand into a separate n_elements variable to quiet integer overflow warning. No actual integer overflow tests are performed since it's just a test program. Tested on: Mac OSX/64 10.8.3 (amazon) w/C++ & FORTRAN (h5committest upcoming)
* [svn-r23417] Fixes an issue (HDFFV-8159) where uninitialized memory was ↵Dana Robinson2013-03-211-8/+11
| | | | | | | | | | | | | being read during variable-length type conversion. All variable-length type conversion buffers are now initialized to contain 0s on allocation. Tested on: jam(w/ fortran, C++, parallel, parallel fortran) ostrich This is a very small change (basially changing malloc to calloc) and is unlikely to cause issues on other platforms.
* [svn-r22935] Description:Quincey Koziol2012-10-211-14/+11
| | | | | | | | | Clean up a few warnings and minor code issues during review of enum -> int/float conversion changes. Tested on: Mac OSX/64 10.8.2 (amazon) w/debug (too minor to require h5committest)
* [svn-r22914] I checked in the conversion function H5T__conv_enum_numeric ↵Raymond Lu2012-10-171-0/+83
| | | | | | (numeric type means integer or floating number) and the C test for it. This is the work for Chicago. Tested on jam, koala, and ostrich.
* [svn-r22749] Description:Dana Robinson2012-09-101-30/+28
| | | | | | | Undo of accidental check-in of H5T code in last check-in. Tested on: jam w/ parallel enabled (revert to pre-existing code)
* [svn-r22748] Description:Dana Robinson2012-09-101-28/+30
| | | | | | | H5FD_FLMAP_SINGLE changed to H5FD_FLMAP_DICHOTOMY in the MPI-POSIX VFD. Tested on: jam w/ parallel and fortran enabled (minor change)
* [svn-r22287] Description:Quincey Koziol2012-04-161-526/+526
| | | | | | | | Clean up more FUNC_ENTER/FUNC_LEAVE macros and move H5D & H5T code toward the final design (as exemplified by the H5EA & H5FA code). Tested on: Mac OSX/64 10.7.3 (amazon) w/debug & parallel
* [svn-r21921] Description:Quincey Koziol2012-02-091-1/+3
| | | | | | | Add more braces to master conversion macro that was changed in r21919 Tested on: Mac OSX/64 10.7.3 (amazon) w/debug, production & parallel
* [svn-r21919] Description:Quincey Koziol2012-02-091-1115/+30
| | | | | | | | Refactor function name macros and simplify the FUNC_ENTER macros, to clear away the cruft and prepare for further cleanups. Tested on: Mac OSX/64 10.7.3 (amazon) w/debug, production & parallel
* [svn-r21734] Issue 7582 - The library allowed the conversion of strings ↵Raymond Lu2011-11-081-0/+15
| | | | | | between ASCII and UTF8. I corrected it by adding a condition check in H5T_conv_s_s and H5T_conv_vlen to report an error under this situation. Tested on jam, koala, linew.
* [svn-r21508] Revoked svn check-ins 20913 and 20921 (fix for HDFFV-7579) ↵Dana Robinson2011-10-101-90/+2
| | | | pending a careful evaluation of enum conversion behavior.
* [svn-r20921] Issue 7579 - The overflowing ENUM values are inconsistent. I ↵Raymond Lu2011-05-271-5/+6
| | | | | | took out the error report for 2 H5Tclose calls in H5T_conv_enum because they would clear the error stack. Tested on jam - simple change.
* [svn-r20913] Issue 7579 - The overflowing ENUM values are inconsistent. ↵Raymond Lu2011-05-271-2/+84
| | | | | | | | | | When no conversion is involved in reading or writing the data, overflowing values are retained. When conversion happens, the values become -1. The conversion function puts -1 when overflow happens. I added two new dataset transfer property to control whether to fill 0xff in the destination data or convert to the destination data when overflow happens. The two new functions are H5Pset(get)_enum_conv_overflow. I also added test cases in enum.c and dtypes.c. Tested on jam, koala, and heiwa.