Commit Graph

177 Commits

Author SHA1 Message Date
Quincey Koziol
9e5dbf6906 Trim trailing whitespace 2020-04-20 18:12:00 -05:00
Neil Fortner
1dbec40d46 Implement H5VLget_file_type() to return a copy of a datatype with the
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.
2019-11-08 15:14:33 -06:00
Jerome Soumagne
ae490016b9 Add new H5R API that abstracts object, region and attribute reference types
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
2019-10-08 14:30:24 -05:00
Quincey Koziol
eaa65c862b Add 'blob' callbacks to VOL, along with a native implementation to store them
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.
2019-10-08 14:30:23 -05:00
Quincey Koziol
d5130bb573 Updated configure & CMake compiler flags for GCC 8.x, along with corresponding
changes to warnhist script (and some extra improvements for condensing C++
and Java warnings), and fixed a bunch of warnings.
2019-06-28 09:10:43 -05:00
Dana Robinson
a98747c0f9 Added an H5MM_memcpy call that checks for buffer overlap. 2019-03-16 08:06:52 -07:00
Dana Robinson
a56b4db4ae Remainder of vol_normalization changes (dataset, attribute, files, objects). 2018-09-24 12:23:41 -07:00
Dana Robinson
b48686febd Normalization with vol_integration (misc internal and datatype) 2018-09-20 13:38:40 -07:00
Quincey Koziol
f38864920d Merge branch 'develop' of https://bitbucket.hdfgroup.org/scm/hdffv/hdf5 into merge_func_enter_vol
Plus initial steps toward merging API context push into FUNC_ENTER_API* macros
2018-03-18 18:36:49 -05:00
Quincey Koziol
4a17aff408 Add API context interface and use it throughout the library. 2018-03-15 16:54:30 -05:00
Dana Robinson
302053f978 Fix for HDFFV-10355 (CVE-2017-17506). 2018-02-26 18:31:40 -08:00
Vailin Choi
37318f109a Changes made based on code reviews. 2018-01-12 14:36:03 -06:00
Vailin Choi
96784c9873 (1) Merge branch 'develop' into bugfix/version_bounds
(2) Add two new options to h5repack for low and high bounds as in H5Pset_libver_bounds.
(3) Modify message pre_copy callbacks so that H5Ocopy can handle version bounds check.
(4) Add version bounds check for cache image feature.
2017-11-25 02:22:24 -06:00
Larry Knox
89fbe00dec Merge pull request #426 in HDFFV/hdf5 from ~LRKNOX/hdf5_lrk:hdf5_1_10 to 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.
2017-04-25 16:05:36 -05:00
Dana Robinson
a25a08dff0 Cleaned up H5Odtype.c 2016-12-29 03:05:39 -05:00
Neil Fortner
a7fb4ede86 Merge pull request #42 in HDFFV/hdf5 from ~NFORTNE2/hdf5_nf:talos-0179 to develop
* commit '748d6f318c5ebe4fa7ee5d8e4ca2681d69792b70':
  Change check for number of dimensions for old-style arrays in datatype decoding routine from an assertion to an if/HGOTO_ERROR check, since it is inappropriate to assert the contents of a file will be what we expect.
2016-09-23 10:58:37 -05:00
Neil Fortner
bc10fd219e Change check for number of dimensions for old-style arrays in datatype decoding routine from an assertion to an if/HGOTO_ERROR check, since it is inappropriate to assert the contents of a file will be what we expect. 2016-09-08 13:47:22 -05:00
Neil Fortner
b1eb1b3ee8 Replace assertion in H5O_dtype_decode_helper for number of array dimensions with a check and error. The assertion was inappropriate because it is operating on data read from the file, which the library does not always have direct control of. 2016-09-01 17:24:24 -05:00
Jerome Soumagne
2094d86461 [svn-r28138] Add first support for _Bool and make hbool_t a "real" _Bool if available
Fix tests accordingly and fix misuse of hbool_t in various places

Fix initialization of H5Pgcpl/ocpl structs in property decoding routines

Tested on:
    Linux/32 (jam)
    Linux/64 (platypus)
    Linux/PPC64 (ostrich)
    MacOSX/64 10.11
2015-10-20 01:28:17 -05:00
Quincey Koziol
1023374492 [svn-r27768] Description:
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
2015-09-13 22:58:59 -05:00
Mohamad Chaarawi
fc45d5fcb0 [svn-r27133] - Add a new attribute function characterstic for format:
* 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.
2015-06-01 14:38:09 -05:00
Mohamad Chaarawi
863ff882b6 [svn-r24709] rename H5V to H5VM since H5V is needed in the fastforward project for
view objects.  The addition of view objects in the fastforward project
is expected to be brough into the trunk sometimes in the future, which
is why we need to make this change.

Tested Manually on Jam and Ostrich.
Tested with h5commitest - Koala with intel compilers failed, but nothing had to do with those changes.
error on Koala: error while loading shared libraries: libirng.so
2014-02-13 17:12:46 -05:00
Quincey Koziol
7143164de9 [svn-r22608] Description:
Switch propert list/class iteration from internal to external form of
iteration, cleaning up and simplifying the code a bit.

    Bring other general improvements from plist_encode_decode branch back to
trunk.

    Clean up many warnings.


Tested on:
    Mac OSX/64 10.7.4 (amazon) w/gcc 4.7, debug and C++ & FORTRAN
    (too minor to require h5committest)
2012-07-26 14:33:59 -05:00
Quincey Koziol
a07c8f9247 [svn-r22287] Description:
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
2012-04-16 16:20:26 -05:00
Quincey Koziol
35a0e27e88 [svn-r22171] Description:
Bring "merge committed datatypes during H5Ocopy" feature from branch to
trunk.  (Also has some minor bugfixes with it)

Tested on:
    Mac OSX/64 10.7.3 (amazon) w/debug
    (h5committest coming up)
2012-03-28 14:45:49 -05:00
Quincey Koziol
9c9ee2008c [svn-r21919] Description:
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
2012-02-08 22:13:27 -05:00
Neil Fortner
56960ac85c [svn-r21556] Purpose: Fix bug in H5Ocopy
Description:
H5Ocopy could get confused when copying a named datatype containing an
attribute which used that named datatype as its datatype.  This happened
because H5Ocopy would recurse into the attribute's datatype before the object
the attribute was in was fully copied (i.e. before the "post-copy" pass).
Modified H5Ocopy to avoid recursing before the post-copy step in this case.
Required many changes, including to how non-committed shared messages are
copied.

Tested: jam, koala, heiwa (h5committest); durandal
2011-10-13 18:10:50 -05:00
Quincey Koziol
427add7c92 [svn-r20513] Description:
Correct several problems with compound datatypes that don't have any
fields added:

- Change assertion to error report when a file is encountered which has this
	situation.

- Added check to attribute creation to avoid creating attributes with a
	datatype like this (datasets and named datatypes already have the check)

Tested on:
        FreeBSD/32 6.3 (duty) in debug mode
        FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
        Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
                w/C++ & FORTRAN, w/threadsafe, in debug mode
        Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
                w/C++ & FORTRAN, in production mode
        Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
                w/szip filter, w/threadsafe, in production mode
        Linux/PPC 2.6 (heiwa) w/C++ & FORTRAN, w/threadsafe, in debug mode
2011-04-15 14:06:38 -05:00
Quincey Koziol
47c3bc7540 [svn-r19272] Description:
Close out various resource leaks and usages of uninitialized memory that
were flagged by valgrind.  [There's still some more valgrind warnings, but
it's better now... :-/ ]

    Also clean up warnings and code formatting.

Tested on:
    Mac OS X/32 10.6.4 (amazon) w/debug & valgrind
    (h5committest forthcoming)
2010-08-20 16:37:12 -05:00
Quincey Koziol
92fd980ca9 [svn-r18595] Description:
Clean up compiler warnings

Tested on:
    Mac OS X/32 10.6.3 (amazon) w/debug
    (too minor to require h5committest)
2010-04-20 13:26:41 -05:00
Neil Fortner
376a788840 [svn-r17760] Purpose: Fix problem with H5TB API
Description:
The H5TB API makes some improper assumptions about the order of compound
datatype members.  Namely, it assumes that members remain in the order in which
they were inserted.  Unfortunately, this assumption is inherent in the design of
the interface.  The library has been patched so that this assumption holds in
situations relevant to H5TB.

Tested: jam, linew, amani (h5committest)
2009-10-27 17:23:49 -05:00
Quincey Koziol
9d27b9765a [svn-r17313] Description:
Bring back various minor code cleanups from the file free space branch

Tested on:
        FreeBSD/32 6.3 (duty) in debug mode
        FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
        Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
                                in debug mode
        Linux/64-amd64 2.6 (smirom) w/Intel compilers w/default API=1.6.x,
                                w/C++ & FORTRAN, in production mode
        Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
                                w/szip filter, in production mode
        Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
                                in production mode
        Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in production mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
        Mac OS X/32 10.5.8 (amazon) in debug mode
        Mac OS X/32 10.5.8 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
2009-08-10 12:08:27 -05:00
Quincey Koziol
0eb775f358 [svn-r17281] Description:
Further refactoring of the dataset layout information, to separate the
storage information from the layout info.

Tested on:
    FreeBSD/32 6.3 (duty) in debug mode
    FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
    Linux/32 2.6 (jam) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
        in debug mode
    Linux/64-amd64 2.6 (smirom) w/Intel compilers w/default API=1.6.x,
        w/C++ & FORTRAN, in production mode
    Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
        w/szip filter, in production mode
    Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
        in production mode
    Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in debug mode
    Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
    Mac OS X/32 10.5.7 (amazon) in debug mode
    Mac OS X/32 10.5.7 (amazon) w/C++ & FORTRAN, w/threadsafe,
        in production mode
2009-07-30 22:08:12 -05:00
Raymond Lu
a739b62ecc [svn-r17182] In my last round of checkin (r17177), I forgot to clean up some code. I'm checking in
the fix now.  Another minor fix - The way that H5Tset_size checks whether the datatype 
is a string wasn't correct.  I changed it to use the macro H5T_IS_STRING.

Tested on jam, smirom, and linew.
2009-07-14 12:04:04 -05:00
Raymond Lu
8a56b4d081 [svn-r17177] In H5Odtype.c, the decoding function used to mark the datatype as on disk (see bug
#1585).  I changed it to undefined and let the caller functions decide the location 
of the datatype.  For H5Tdecode, it should mark the datatype as in memory.  For other 
callers like H5Dopen or H5Aopen, they should makr it as on disk.

Tested it on jam, smirom, linew.
2009-07-13 11:26:24 -05:00
Neil Fortner
849d015bbd [svn-r16594] Purpose: fix bug 1189
Description:
Some files apparently exist in the wild which have corrupt symbol table messages
on the root group.  These files can be opened by 1.6 (which uses the cached
information in the superblock) but not by 1.8.  This patch fixes 1.8 and 1.9 so
they can now open these files, and will correct them if necessary.  Also fix
some potential (rare) problems with array datatype versions.

Tested: jam (parallel; h5committest not working on linew or smirom)
2009-03-23 13:51:29 -05:00
Quincey Koziol
b4ff3e6e79 [svn-r16560] Description:
Remove another call to H5E_clear_stack() from within the library.

    Clean up lots of compiler warnings.

Tested on:
    Mac OS X/32 10.5.6 (amazon)
    (followup on other platforms forthcoming)
2009-03-10 14:00:39 -05:00
Neil Fortner
fb81174e76 [svn-r16473] Purpose: fix problems related to 'self-referential' attributes
Description:
When an attribute was created with a datatype or dataspace that was shared in
the same object header that the attribute was in, the attribute could not be
deleted.  Changes made to ensure that the attribute can be deleted both when the
attribute is in the object header and when it is shared in the heap.  Object
header message decode routines now take an "open_oh" parameter to enable them to
avoid opening the same object header twice.

Tested: jam, smirom (h5committest)
2009-02-12 13:47:04 -05:00
Quincey Koziol
bdd7d59902 [svn-r15628] Description:
Remove trailing whitespace from C/C++ source files, with the following
script:

    foreach f (*.[ch] *.cpp)
        sed 's/[[:blank:]]*$//' $f > sed.out && mv sed.out $f
    end

Tested on:
    Mac OS X/32 10.5.5 (amazon)
    No need for h5committest, just whitespace changes...
2008-09-16 10:52:51 -05:00
Quincey Koziol
c465e18a68 [svn-r15609] Description:
Omnibus compiler warning cleanup & some reformatting also.

Tested on:
    Mac OS X/32 10.5.4 (amazon)
    Too minor to require h5committest
2008-09-10 14:10:41 -05:00
Neil Fortner
4f61812180 [svn-r15458] Purpose: Modify the library to take the proper action when files with incorrect
datatype versions are encountered.

Description: The library now recognizes some problems with datatype versions in
H5O_decode_helper(), and, if not performing strict format checks, automatically
corrects them.  Framework added for other message decode routines to
automatically correct file errors.  Datatype version information added to
h5debug.

Tested: kagiso, smirom, linew (h5committest)
2008-08-11 10:16:34 -05:00
Scot Breitenfeld
aec106e324 [svn-r14903] Undoing change committed in r14902. 2008-04-30 14:51:13 -05:00
Scot Breitenfeld
5773fd34bc [svn-r14902] Merged fortran_1_8 branch changes r14505:14901 into the trunk. New fortran wrappers added. 2008-04-30 14:23:26 -05:00
Quincey Koziol
afd5021ef9 [svn-r14738] Description:
Bring r14737 back from the 1.8 branch:    Fix bug which would
incorrectly encode the member offsets for compound datatypes whose size was
between 256 & 511 bytes, when the "use the latest format" feature was enabled.

Tested on:
   Mac OS X/32 10.5.2 (amazon) w/debug
   FreeBSD/32 6.2 (duty) w/production
2008-03-13 17:12:13 -05:00
Quincey Koziol
1ce44ed19c [svn-r14139] Description:
Minor edits to clean up code.

Tested on:
    FreeBSD/32 6.2 (duty)
2007-09-10 14:59:38 -05:00
Quincey Koziol
492e5ca2b4 [svn-r14004] Description:
Fix problem with datatype messages where the version of the format
for a datatype message could depend on the "use the latest format" flag from
the file after it was initially created.

Tested on:
	FreeBSD/32 6.2 (duty)
	FreeBSD/64 6.2 (liberty)
	Linux/32 2.6 (kagiso)
	Mac OS X/32 10.4.10 (amazon)
2007-07-24 14:10:00 -05:00
Peter Cao
461b896779 [svn-r13821]
Fixed a bug at copying shared reg_ref attribute. The ref values of an attribute
was not writen in file. The post_copy_file() at H5Oattr.c only updates the value
in memory. 

To fix the problem, we added H5O_shared_post_copy_file(), which delete the attribute
in file (with the incorrect value) and create an new attribute with the correct values.


I added the following functions:
H5Oshared.c:H5O_shared_post_copy_file(H5F_t *f, hid_t dxpl_id, H5O_t *oh, void *mesg); 
H5Oshared.h: H5O_SHARED_POST_COPY_FILE

and modified the following files to include shared_post_copy_file()
H5Oattr.c
H5Odtype.c
H5Ofill.c
H5Opline.c
H5Osdspace.c
2007-05-30 16:35:57 -05:00
Quincey Koziol
31ff357f31 [svn-r13753] Description:
Check in "unique, but sharable" optimization to ISOHM code, which
allows object header messages that are only used in one object to remain in
the sole user's header, but migrates messages that are used in more than one
header into the ISOHM heap.

Tested on:
	Mac OS X/32 10.4.9 (amazon)
	FreeBSD/32 6.2 (duty)
	Linux/32 2.6 (chicago)
	Linux/64 2.6 (chicago2)
2007-05-14 15:24:08 -05:00
Quincey Koziol
32898a5cd1 [svn-r13362] Description:
Eliminate unneeded new version in attribute encoding.

	Add character set & string padding to string datatype debugging output

	Add character set to attribute name debugging output

Tested on:
	Mac OS X/32 10.4.8 (duty)
2007-02-21 09:44:30 -05:00
Albert Cheng
ed7d456e51 [svn-r13253] Updated all C and C++ style source code files with the THG copyright notice.
Tested platform:
Kagiso only since it is only a comment block change.  If it works in one
machine, it should work in all, I hope.  Still need to check the parallel
build on copper.
2007-02-07 09:56:24 -05:00