Commit Graph

84 Commits

Author SHA1 Message Date
Dana Robinson
b9dbabc152 VFD SWMR: Sync with develop (#811)
* Normalization with develop

* Removes checks and work-arounds for strtoll and strtoull (#769)

* Removes checks for (v)snprintf, which are C99 (#772)

* Update missing release note info. (#776)

* Replaces the H5_OVERRIDE macro with override (#773)

The macro is no longer necessary now that we require C++11.

* Cleans up some POSIX header bits in H5private.h (#783)

* Removes outdated checks for ways inline might be defined (#781)

These are obsolete now that we require C99.

* Removes checks for system(), which is C89/90 (#782)

* Removes C++ dependency on H5private.h (#774)

* Removes C++ dependency on H5private.h

Most C API calls have been removed, aside from a few uses of free,
where we just dropped the 'HD'. A couple of H5_ATTR_UNUSED macros
were also replaced with (void) statements.

* Committing clang-format changes

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

* Further simplifies Autotools type size checks (#789)

Also fixes an issue where clock_gettime and difftime are not detected
due to earlier simplifications of this code.

* Release Note (#784)

* Normalization of CMake H5pubconf.h with Autotools (#791)

Mostly just moving things around and changing the comments to keep the
delta small. The only symbol change is that for curl/curl.h which I
changed to H5_HAVE_CURL_CURL_H to match the Autotools. This symbol
is not used in the library and is just an artifact of the checks.

* Fix tools test (#794)

* Removes ancient Autotools cruft (#790)

* Reorganization of C and POSIX headers in H5public.h & H5private.h (#793)

* Reorganization of C and POSIX headers in H5public.h & H5private.h

Consolidated and removed duplicates

* It turns out Windows has sys/types.h

Co-authored-by: Larry Knox <lrknox@hdfgroup.org>

* Removes checks for signal and set/longjmp, which are C89 (#798)

Also removes checks for setjmp.h and stddef.h

* Assume frexpl/f and fabsl/f, which are C99 (#799)

* Assume the library has C99 types in C++ type code (#806)

* Assume the library has C99 types in C++ type code

* Committing clang-format changes

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

* Removes obsolete equivalents of C99's __func__ (#800)

* Cleans up POSIX/C bits in H5private.h (#804)

* Cleans up POSIX/C bits in H5private.h

* Assume difftime exists (C89)
* Reorg AC_CHECK_HEADERS so headers are in alphabetical order
* Split off networking-related AC_CHECK_HEADERS
* Remove unused UNAME_CYGWIN from configure.ac
* Remove checks for unused sys/timeb.h
* Tidying pass over H5private.h HD prefix macros
* Tidy H5win32defs.h
* Add HD prefix to various scanf calls

* Committing clang-format changes

* Fixes to the alarm(2) code used in the tests to make Windows happy

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

* Brings the tools getopt(3) replacement into the main library (#803)

* Moves get_option from the tools library to the C library

* Adds H5 prefix to get_option call and variables

* Renames the H5_get_option long options struct and enum

* Removes type guesses when C99 types are missing (#807)

* Assume C99 types exist in H5detect.c (#808)

* Fixes parallel issues from recent C99 changes

* Adds MPE FUNC --> __func__ changes missed in earlier PRs

* Fix typo

* Fixes parallel issues from recent C99 changes (#809)

* Fixes parallel issues from recent C99 changes

* Adds MPE FUNC --> __func__ changes missed in earlier PRs

* Even more missed FUNC --> __func__ macros

* Removes remaining H5_TIME_WITH_SYS_TIME cruft (#810)

Mostly from CMake

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Larry Knox <lrknox@hdfgroup.org>
2021-06-30 11:02:42 -07:00
Dana Robinson
9a4b225cb0 VFD SWMR: sync with develop (#725)
* Brings CMake updates from develop

* Brings reduction in pedantic casts from develop

* Purges UFAIL from the library (#637)

* Committing clang-format changes

* Purges UFAIL from the library

* H5HL_insert change requested in PR

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

* Removes gratuitous (double)x.yF casts (#632)

* Committing clang-format changes

* Removes gratuitous (double)x.yF casts

* Committing clang-format changes

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

* Committing clang-format changes

* Cleans up a const warning left over from previous constification (#633)

* Committing clang-format changes

* Adds consts to a few global variables

* Cleans up a const warning left over from previous constification

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

* Formatted source

* Bring over some VOL registration changes

* VOL cleanup

* H5VL_request_status_t substitutions

* H5F.c cleanup

* Minor API tweaks from develop

* Moves H5G package init/teardown to H5Gint.c

* H5G cleanup

* H5M cleanup

* H5SM cleanup

* H5T cleanup

* H5R cleanup

* H5Lpublic.h cleanup

* H5L cleanup

* H5O cleanup

* H5A, H5CS, and H5AC cleanup

* Moved H5A init/teardown code to H5Aint.c

* Moves H5D I/O functions to H5D.c

* H5D cleanup

* Misc minor cleanup

* H5P close cleanup

* H5Tpublic.h cleanup

* Fixes err_compat test

* H5PLpublic.h cleanup

* Updates H5Ppublic.h

* H5Fpublic.h updates

* H5A.c cleanup

* Brings over H5Aexists and related changes

* Brings CMake shell testing changes from develop

* Close callback changes

* H5R and H5Tcommit normalization

* err_compat test works now

* H5O tweaks

* Updates VOL registration code

* Brings over H5VL_create_object

* H5Tconv.c reformatting

* H5T.c tweaks

* Brings datatype and reference updates from develop

* Brings VOL plugin loading changes from develop

* Brings event sets from develop

* Brings async functions over

* Tools changes

* Brings over many tools changes from develop

* Brings VOL flags from develop

* Fixes h5dump double/float tests

* Updates h5repack tests

* Brings h5diff test changes from develop

* Last h5dump changes

* Brings test changes from develop

* Committing clang-format changes

* Tidied h5_testing()

* Brings chunk iteration code + misc from develop

* Updates vds test

* Enables external link parallel test

* Brings updated property lists from develop

* H5G changes from develop

* H5MF cleanup

* Brings vfd_swmr test back into CMake

* Updates threadsafe test

* Updates plist test

* Brings recent changes from develop

* Require a C++11 compiler to build the C++ wrappers (#693)

* Committing clang-format changes

* Requires a C++11 compiler to build the C++ wrappers

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

* Fix H5FD_mpio_Debug="rw" can report MPI_count instead of bytes (#699)

* Removes pre-C99 build and header cruft (#700)

* Assumes ANSI C headers exist
* Assumes stdbool.h, stdint.h, and inttypes.h are present
* Assumes the C++ compiler can handle stdint.h
* Removes all work-arounds for missing functionality, especially stdbool.h

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

* Updates release documents

* Brings parallel changes from develop

* Adds a VFD/parallel check program for the VFD SWMR shell test

* Updates MANIFEST

* Disable building VFD SWMR acceptance tests on CMake

* Removes err.h from genall5.c

* Partial cleanup of H5Cpkg.h

* Fixes printf specifiers in H5Cdbg.c

* Java and fortran cmake changes (#694)

* OESS-98 convert plugin option to FetchContent, add tests

* Fixes for pkcfg files because of plugin option

* OESS-98 fix tools test for plugins

* Keep doxygen comments under 100 chars long - format hint

* Whitespace

* HDFFV-11144 - Reclassify CMake messages

* HDFFV-11099/11100 added help text

* Reworked switch statement to compare string instead

* Fix typo

* Update CDash mode

* Correct name of threadsafe

* Correct option name

* Undo accidental commit

* Note LLVM 10 to 11 format default changes

* Update format plugin

* Undo clang-format version 11 changes

* One more correction

* Update supported platforms

* Revert whitespace changes

* Correct whitespace

* Changes from PR#3

* HDFFV-11213 added option to control gcc10 warnings diagnostics

* HDFFV-11212 Use the new references correctly in JNI utility and tests

* format source

* Fix typo

* Add new test file

* HDFFV-11212 - update test and remove unused arg

* Minor non-space formatting changes

* Use H5I_INVALID_ID instead of "-1"

* source formatting

* add missing testfile, update jni function

* Undo commit of debug code

* remove mislocated file

* Fix h5repack test for handling of fapls and id close

* Update h5diff test files usage text

* HDFFV-11212 add new ref tests for JNI export dataset

* src format update

* Remove blank line typo

* src format typo

* long double requires %Lg

* Another long double foramt specifer S.B. %Lg

* issue with t128bit test

* Windows issue with h5dump and type.

* Fix review issues

* refactor function nesting and fix error checks

* format fixes

* Remove untested functions and javadoc quiet comments

* Restore TRY block.

* Change string append errors to memory exception

* revert to H5_JNI_FATAL_ERROR - support functions need work

* Add assertion error for h5util functions

* remove duplicate function

* format fix

* Revert HD function error handling

* Update copyright comments

* GH #386 java folder copyright corrections

* Whitespace

* GH #359 implement and fix tools 1.6 API usage

* remove excessive comments

* Flip inits to correct ifdef section

* rework ifdef to be simpler

* format issue

* Reformat ifdef inits

* remove static attribute

* format compliance

* Update names

* Revert because logic relies on float not being int

* Changes noticed from creating merge of #412

* Double underscore change

* Correct compiler version variable used

* Remove header guard underscores

* Whitespace cleanup

* Split format source and commit changes on repo push

* remove pre-split setting

* Change windows TS to use older VS.

* correct window os name

* HDFFV-11212 JNI export util and Javadoc

* Suggested review changes

* Another change found

* Committing clang-format changes

* HDFFV-11113 long double in tools

* HDFFV-11113 add note

* Disable long double tests for now

* HDFFV-11228 remove arbitrary CMake warning groups.

* Make each flag a string

* Some Javadoc warning fixes

* Updated javadoc fixes

* # WARNING: head commit changed in the meantime

HDFFV-11229 Fix long double usage in tools and java

Changed h5dump and h5ls to just print 128-bit for long double type.
Added test and file for dataset and attributes with all three float
types.

* Committing clang-format changes

* HDFFV-11229 Add release note

* HDFFV-11229 windows testfile needed

* fix typo

* Remove non supported message text

* HDFFV-11229 - change ldouble test to check both native and general

* HDFFV-11229 add second file compare

* HDFFV-11229 fix reference file

* HDFFV-11229 autotools check two refs

* HDFFV-11229 revert back to removal of NATIVE_LDOUBLE in tools output

* Committing clang-format changes

* Update release note

* Update attribute type of ref file

* Change source of ninja for macs

* try port instead of brew

* Recommended is to use brew.

* Undo non long double changes

* remove unneeded file

* Fix perl and doxygen CMake code

* Add "option" command for clang options

* Rework CMake add_custom to use the BYPRODUCTS argument

* Add stamp files to BYPRODUCTS

* Only one copy of file exists

* Fix custom cmmand depends targets

* Fix fortran custom command DEPENDS

* Add LD_LIBRARY_PATH to tests

* Add custom target for DEPENDS

* Add h5detect conditionaly to generated target DEPENDS

* Correct DEPENDS targets

* Parallel builds need the mpi compiler for pkgconfig scripts.

* install only if MPI build

* Fortran target depends

* Remove incorrect source attribute

* doxygen adjustments

* doxygen build updates

* Correct version

* Correct function version - function has been merged to 1.12

* Correct version string for map functions

* Cleanup warnings for tools debug builds

* TRILAB-227 - fix indexing for h5diff selections

* Correct location of pos to index function call

* TRILAB-227 Enable test

* Quote subset args

* Use MATCHES because of AppleClang

* if blocks needed for build modes

* Update list of DT platforms

* VS2019 correctly displays float values

* revert VS2019 change

* Issue #669 remove version from pkgcfg filename

* remove version from h5cc script

* Java reference functions updated

enabled fortran in cmake gcc action yaml file
java reference test changed to correctly test refs
jni reference functions that create ids changed to use jni id logging

* Correct BYPRODUCTS argument

* Correct more genereated files BYPRODUCTS

* BYPRODUCTS must have unique locations

* Fix typo

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

* Removes alternative function enter/leave macro scheme (#678)

* Committing clang-format changes

* Converted BEGIN_FUNC, etc. macros to FUNC_ENTER

* Rips out the BEGIN_FUNC, etc. macros

* Removes 'end if', etc. comments from H5HL package

* Committing clang-format changes

* Fixes an H5EA iterate issue

* Fixes an issue in the H5FA iterator code

* Further cleanup in bin/trace after macro removal

* Iterator changes in H5EA and H5FA

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

* Split H5L.c internal code to H5Lint.c (#691)

* Committing clang-format changes

* Splits internal parts of H5L.c to H5Lint.c

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

* Clean up type size checks in configure.ac (#702)

* Committing clang-format changes

* C++ warning and build fixes (#707)

* Committing clang-format changes

* C++ build and warning updates

* Fixes all warnings on C++ (with gcc 9.3)
* Updates CMake and Autotools C++ builds

* Undo warning clobber

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

* Removes some DEC Alpha cruft from H5detect and H5private.h (#708)

* Cleans up hsize_t and haddr_t size guessing (#709)

* Cleans up definitions of haddr_t and hsize_t + cruft removal

* Formatted source

* Updates PGI C/C++ configurations (#715)

* Updates PGI C/C++ configurations

Tweaks some settings and configures pgc++ to use C++11

* Updated copyright information

* Adds an Intel C++ configuration file (#716)

* Adds an Intel C++ configuration file

* Committing clang-format changes

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

* Updates bin/trace script to correctly wrap H5TRACE macros near clang-format column limit (#719)

* Removes clang-format comments from H5O.c call

* Fixes bin/trace to correctly wrap lines near the clang-format limit

* Removed unused variable from bin/trace

* Fixes issue with ccmake that prevents building Fortran (#723)

ccmake runs iteratively, and the check_fortran_source_runs
macros were clobbering a single output file that did not
get updated on further configure iterations

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-06-04 07:29:02 -07:00
Dana Robinson
8e27e73575 Brings atom-->ID and other ID-related changes from develop 2021-05-04 19:01:23 -07:00
Dana Robinson
ed31eeacfa Many small changes from develop. Should allows running VFD SWMR
tests from CMake.
2021-05-03 12:54:30 -07:00
Dana Robinson
0c6ff43fbc Normalizes C++ with develop 2021-04-05 15:59:36 -07:00
Dana Robinson
67cfa2396c Updates license url and history docs 2021-03-24 18:29:11 -07:00
Dana Robinson
feb20aac30 Formats the source and updates the gcc warning pragmas 2021-03-24 17:39:37 -07:00
David Young
c8f533cfc3 Merge all of my changes from merge-back-to-feature-vfd_swmr-attempt-1,
including the merge of `hdffv/hdf5/develop`, back to the branch that Vailin and
I share.

Now I need to put this branch on a fork with a less confusing name than
vchoi_fork!
2019-12-09 10:30:58 -06:00
Binh-Minh Ribler
ec31438afd Fixed HDFFV-10404
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
2018-07-13 13:40:22 -05:00
Binh-Minh Ribler
2d4d39d157 Fixed documentation
Description:
    - Updated the description of copy constructor for clarification.
    - Removed unnecessary comments.
Platforms tested:
    Linux/64 (jelly)
2018-03-12 19:39:20 -05:00
Dana Robinson
76b9a0e7ef * Reverted removal of H5I_REFERENCE to avoid breaking binary
compatibility.
* Added a quick H5I_REFERENCE smoke check to test_misc19()
  in tmisc.c.
2017-07-03 12:54:14 -07: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
Binh-Minh Ribler
5acc8b9e16 Description:
Fixed typos.
Platforms tested:
    Linux/64 (jelly)
2017-03-17 16:51:52 -05:00
Binh-Minh Ribler
c2f3ce287f Description:
Deprecating versions of PropList::setProperty that have arguments that
    miss "const"
Platforms tested:
    Linux/64 (jelly)
    Linux/64 (platypus)
    Darwin (osx1010test)
2017-03-17 16:20:24 -05:00
Binh-Minh Ribler
861a849530 Description:
Only format changes: mostly tabs vs. spaces
Platforms tested:
    Linux/64 (jelly) - very minor
2017-03-03 08:45:57 -06:00
Binh-Minh Ribler
d7c6fa00da Purpose: Add new C++ wrappers
Description:
    Added wrappers for H5Fget_info2, H5Inmembers, and H5Itype_exists

        // Gets general information about this file.
        void getFileInfo(H5F_info2_t& file_info) const;

        // Returns the number of members in a type.
        static hsize_t getNumMembers(H5I_type_t type);

        // Determines if an element type exists.
        static bool typeExists(H5I_type_t type);

Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 (jelly)
    Darwin (osx1010test)
2017-02-23 16:53:16 -06:00
Binh-Minh Ribler
e05da1b533 Description:
Removed commented out code and fixed miscellaneous typos.
Platforms tested:
    Linux/32 2.6 (jam) (very minor)
2016-12-23 13:24:45 -06:00
Binh-Minh Ribler
798cdad29a Purpose: Improvement for HDFFV-10004
Description:
    When adding wrappers for H5Lexists, a new class, LinkAccPropList, was
    added to the C++ API, triggered complicated circular dependencies.  Thus,
    some improvement was made to resolve the problems.
    - Replaced existing functions openXxxType with individual type constructors
      + Added individual XxxType constructors to replace the existing functions
        openXxxType because it's rather awkward to use these functions.
      + Moved openXxxType from H5Location back to CommonFG
      + Put back CommonFG as a baseclass of Group for openXxxType functions.
      + This replacement should improve usability and prevent the problem of
        circular dependencies.
    - Removed overloaded constructor that takes an Attribute when there is
        already one that takes H5Location because Attribute inherits from
        H5Location now.
Platforms tested:
    Linux/32 2.6 (jam)
    Darwin (osx1010test)
    Linux/64 (platypus)
2016-12-19 00:34:18 -06:00
Binh-Minh Ribler
a903cbafa8 Description:
Removed obsolet macros from C++ API:
	H5_NO_NAMESPACE, H5_NO_STD, __cplusplus
    Leave OLD_HEADER_FILENAME because iostream.h might still be in use,
    until further checking is done.
Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 (platypus)
    Darwin (osx1010test)
    Jelly
2016-10-19 15:50:17 -05:00
Binh-Minh Ribler
c37607eb58 [svn-r29759] Purpose: Code improvements
Description:
    - Changed object in catch statements to reference
    - Replaced old-style casts or reinterpret_cast with static_cast
    - Removed unused name H5Library::need_cleanup
    - Removed Exception::printError from documentation
Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 (platypus)
    Darwin (osx1010test)
2016-04-22 06:22:34 -05:00
Binh-Minh Ribler
116eed3ebd [svn-r29340] Purpose: Code cleanup
Description:
    - Removed many warnings:
        warning: use of old-style cast
        warning: enumeration value ‘H5D_VIRTUAL’ not handled in switch
        warning: comparison between signed and unsigned
      There are others of the same warnings and they will be taken care of
      in the next release.
    - Made some code reuse between overloads
Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 (platypus)
    Darwin (osx1010test)
2016-03-08 07:23:54 -05:00
Binh-Minh Ribler
b346cb0599 [svn-r29306] Purpose: Add function
Description:
    Added member function ArrayType::operator= because ArrayType has
    pointer data members.
Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 (platypus)
    Darwin (osx1010test)
2016-03-07 10:42:30 -05:00
Binh-Minh Ribler
888a002cdd [svn-r27945] Purpose: Fix HDFFV-9529
Description:
    Merged from hdf5_CppAPI_Constants

    r27942:
    ------
    Description:
    - Added H5dont_atexit() to getPredType and all the getConstant's to prevent
    the C library from terminating before the C++ library cleanup.
    - More cleanup and added more comments

    r27923:
    ------
    - Updated more comments and moved some things around for consistency
    - Removed check for "new" failure, exceptions would be thrown

    r27922:
    ------
    Description:
        Added function headers and more comments for clarity.

    r27917:
    ------
    Description:
        The C++ library has several types of global constants from different
        classes, such as PropList, PredType, DataSpace, etc...  Previously,
        these global constants were declared statically and the C++ library used
        a constant, called PredType::AtExit, to detect when all the global
        contants are destroyed then close the C library (H5close).  This method
        relied on the order of the constants being created and destroyed and
        that PredType constants be the last to be destroyed.  In September 2015,
        it was recognized that the order in which the global constants were
        created and destroyed was actually undefined, thus can be different
        between different compilers.  This resulted in failure when compilers
        destroy PredType constants before others because when PredType::AtExit
        was destroyed, the C library was closed, so when the constants of other
        classes such as PropList or DataSpace were being deleted, the C library
        would not be available.

    Solution:
        The static approach is changed to dynamic.  In order to avoid an impact
        on existing applications, the static global constants are changed to
        constant references to the dynamically allocated objects.
        A detailed explanation of the new method and a description of the
        changes are in a Design Notes at the end of the file H5PredType.cpp.

        New functions added to support the new methods are listed below.

        class H5Library:
                // Returns a singleton H5Library to initialize the global
                // constants, invoked in IdComponent default constructor
                static H5Library* getInstance(); // public

                // Registers cleanup and terminating functions with atexit(),
                // called in IdComponent default constructor
                static void initH5cpp(void); // public

                // Calls H5close to terminate the library, registered with
                // atexit(), as the last thing to be done.
                static void termH5cpp(void); // public

        class PredType:
                // Creates the constants
                static void makePredTypes(); // private

                // Calls makePredTypes to create the constants and returns
                // the dummy constant PREDTYPE_CONST;
                static PredType* getPredTypes(); // private

        class DataSpace:
                // Creates the constant
                static DataSpace* getConstant(); // private

        class PropList:
                // Creates the constant
                static PropList* getConstant(); // private

        class DSetCreatPropList:
                // Creates the constant
                static DSetCreatPropList* getConstant(); // private

        class DSetMemXferPropList:
                // Creates the constant
                static DSetMemXferPropList* getConstant(); // private

        class FileCreatPropList:
                // Creates the constant
                static FileCreatPropList* getConstant(); // private

        class FileAccPropList:
                // Creates the constant
                static FileAccPropList* getConstant(); // private

        This function is added to PredType, DataSpace, PropList, and the four
        subclasses of PropList:
                // Deletes the constant
                static void deleteConstants(); // public

Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 (platypus)
    Darwin (osx1010test)
2015-10-04 00:05:51 -05:00
Binh-Minh Ribler
98d1c2d9a9 [svn-r26655] Purpose: Fixed HDFFV-7947
Description:
    When copy constructor or constructor that takes an existing id is invoked,
    the C ref counter stays the same but there is an extra C++ object which
    later is destroyed and may cause the HDF5 id to be closed prematurely. The
    C++ library needs to increment the ref counter in these situations, so that
    the C library will not close the id when it is still being referenced.

    However, the incrementing of ref count left some objects opened at the end
    of the program, perhaps, due to compiler's optimization on cons/destructors.    The constructor, that takes an existing id, needs to increment the counter
    but it seems that the matching destructor wasn't invoked.  The workaround
    is to have a function for each class that has "id" that only sets the id
    and not increment the ref count for the library to use in these situations.
    These functions are "friend" and not public.

    The friend functions are:
        void f_Attribute_setId(Attribute *, hid_t)
        void f_DataSet_setId(DataSet *, hid_t)
        void f_DataSpace_setId(DataSpace *, hid_t)
        void f_DataType_setId(DataType *, hid_t)
Platforms tested:
    Linux/64 (platypus)
    Linux/32 2.6 (jam gnu and Intel 15.0)
    SunOS 5.11 (emu)
2015-03-30 12:58:44 -05:00
Binh-Minh Ribler
a382658282 [svn-r26457] Purpose: Fix warnings HDFFV-8658
Description:
    The following two constructors of classes: AbstractDs, IdComponent,
    H5Location, and H5Object are no longer appropriate after the data member
    "id" had been moved from IdComponent to the sub-classes.

    The copy constructors are noop and will be generated by the compilers if
    needed so they can be removed in 1.8.15 without effecting applications. The
    other constructors will be removed from 1.10 release, and then from 1.8 if
    their removal does not raise any problems in at least two 1.10 releases.

    <Classname>(const hid_t h5_id);
    <Classname>(const <Classname>& original);

    Deprecation warnings are added to each of these classes.

    The other classes are changed to call the default constructor instead of
    one of the constructors above.
Platforms tested:
    Linux/64 (platypus)
    Linux/32 2.6 (jam)
    SunOS 5.11 (emu)
2015-03-15 01:47:56 -05:00
Binh-Minh Ribler
22d0d32716 [svn-r25644] Purpose: Fixed HDFFV-8928
Description:
    Followed hints on the JIRA issue to remove several potential memory
    leaks.
Platforms tested:
    Linux/ppc64 (ostrich)
    Linux/32 2.6 (jam)
    SunOS 5.11 (emu)
2014-09-30 23:05:57 -05:00
Binh-Minh Ribler
10f1e6acf8 [svn-r25640] Purpose: Fixed HDFFV-4259
Description:
    - Used H5I_INVALID_HID instead of 0 to initialized member "id" in classes
      that represent HDF5 objects.  For PropList, H5P_DEFAULT has to be used
      instead of H5I_INVALID_HID.
    - Added try/catch block to some dynamically allocating memory code and
      re-throw the bad_alloc exception with a message informing the location of
      the failure.
Platforms tested:
    Linux/ppc64 (ostrich)
    Linux/32 2.6 (jam)
    SunOS 5.11 (emu)
2014-09-30 13:20:36 -05:00
Dana Robinson
d01ee66666 [svn-r24937] Adds an H5free_memory() function to the library for use with
functions that return library-allocated memory. The test and tool
code were modified to use this new function where it's appropriate.

Fixes HDFFV-7710, HDFFV-8519, and HDFFV-8551

Tested on:
    64-bit Windows 7 w/ VS2012
    32-bit LE linux w/ parallel and fortran (jam)
    32-bit LE linux w/ fortran and C++ (jam)
2014-03-31 18:35:09 -05:00
Binh-Minh Ribler
60df159d33 [svn-r24865] Description:
- Added another overload for char* argument:
        ssize_t getComment(const char* name, const size_t buf_size, char* comment)
    - Changed default value to 0 for the other two getComment methods
    - Added HDmemset to after every char string allocation to clear the buffer
Platforms tested:
    Linux/ppc64 (ostrich)
    Linux/32 2.6 (jam)
    Linux/64 2.6 (platypus)/PGI compilers
2014-03-21 18:23:05 -05:00
Binh-Minh Ribler
f8fb310610 [svn-r24188] Purpose: Fixed bug introduced in r24163
Description:
    - The failure in daily test was caused by missing initialization of member
    "id" in a few constructors.  This is now fixed.
    - Added two overloaded H5Location::setComment
    - Improved some error reporting in H5Location
    - Improved error reporting in tests
Platforms tested:
    Linux/32 2.6 (jam)
    SunOS 5.11 (emu)
    Linux/64 2.6 (koala)/PGI compilers
2013-09-22 19:39:44 -05:00
Binh-Minh Ribler
1b22cc435e [svn-r24178] Back out the changes that cause daily test to fail r24163 2013-09-20 13:53:21 -05:00
Binh-Minh Ribler
4182c81add [svn-r24163] Purpose: More on HDFFV-7520 and HDFFV-533
Description:
    - Improved the changes in revisions r22836 and r23438, mainly on the
      wrappers of reference, dereference, get region, and set/getcomment.
    - Added more tests.

Platforms tested:
    Linux/32 2.6 (jam)
    SunOS 5.11 (emu)
    Linux/ppc64 (ostrich)
2013-09-18 22:08:28 -05:00
Binh-Minh Ribler
d95f5e293a [svn-r24162] backing out a commit that includes wrong files 2013-09-18 21:41:00 -05:00
Binh-Minh Ribler
18b896112c [svn-r24161] Purpose: More on HDFFV-7520 and HDFFV-533
Description:
    - Completed the changes in revisions r22836 and r23438 with improvement
    on wrappers such as reference, dereference, get region, and set/getcomment.
    - Added more tests.
Platforms tested:
    Linux/32 2.6 (jam)
    SunOS 5.11 (emu)
    Linux/ppc64 (ostrich)
2013-09-18 20:54:54 -05:00
Binh-Minh Ribler
afb5fc5c35 [svn-r24143] Description:
Fixed comments, documentation, and mis-matched DOXYGEN_SHOULD_SKIP_THIS pairs.
Platforms tested:
    Linux/32 2.6 (jam)
    Regenerated and verified generated documentation.
2013-09-16 09:39:52 -05:00
Binh-Minh Ribler
88ce565d7d [svn-r22235] Purpose: Fixed bugs HDFFV-2761 & HDFFV-7852
Description:
    - Replaced PredType::NotAtexit() with PredType::AtExit(H5CPP_EXITED);
      and used PredType::AtExit as a flag to detect when all predefined
      types have been destroyed.  Then, H5close will be called to terminate
      the library after its being re-initiated when the PredType destructors
      were activated.  This change removed the memory leaks shown by the
      user's sample program.
    - Added H5CPP_EXITED for PredType::AtExit to use as a flag
    - Updated some inaccurate comments
    - Removed stream functions from FileAccPropList
    - Replaced H5_VMS with appropriate macro in H5IdComponent.cpp
    - Corrected many URLs (hdfgroup vs. ncsa) in comments
    - Replaced std::string with H5std_string in comments
Platforms tested:
    Linux/32 2.6 (jam)
    Linux/64 2.6 (amani)
    SunOS 5.10 (linew)
2012-04-01 22:14:19 -05:00
Binh-Minh Ribler
aa0772d9b2 [svn-r19395] Purpose: Fixed bug 1903
Description:
    After a C++ API object is closed, its id should be reset regardless
    of the reference count of the underlying HDF5 object.  User reported
    the bug for Group, but it's applicable to all other objects.  Fixed.
Platforms tested:
    Linux/32 2.6 (jam)
    FreeBSD/64 6.3 (liberty)
    SunOS 5.10 (linew)
2010-09-16 00:59:39 -05:00
Binh-Minh Ribler
1c9e998d0d [svn-r18745] Purpose: Fixed bug 1852
Description:
    When a property class id is given to PropList(id), create new prop list,
    but when a property list id is given, make a copy of it.
Platforms tested:
    Linux/32 2.6 (jam)
    FreeBSD/64 6.3 (liberty)
    SunOS 5.10 (linew)
2010-05-08 23:14:57 -05:00
Quincey Koziol
77038a8175 [svn-r18030] Description:
Bring "brush clearing" changes (whitespace & style issues, mostly) from
metadata_journaling branch to the "merging" branch, to converge the trunk and
the metadata_journaling 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 (jam) w/PGI compilers, w/default API=1.8.x,
                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.6.2 (amazon) in debug mode
        Mac OS X/32 10.6.2 (amazon) w/C++ & FORTRAN, w/threadsafe,
                in production mode
2009-12-17 10:07:35 -05:00
Binh-Minh Ribler
18fb7d1a78 [svn-r15407] Purpose: Fix bug
Description:
    Changed all subclasses' setId to protected p_setId and put back setId
    in IdComponent.  p_setId is used in the library where the id provided
    by a C API passed on to user's application in the form of a C++ API
    object, which will be destroyed properly, and so p_setId does not
    call incRefCount.  On the other hand, the public version setId is
    used by other applications, in which the id passed to setId needs
    to be closed properly by the application, so setId must call incRefCount
    for the new object to prevent prematurely closing of the id.

Platforms tested:
    Linux 2.6 (kagiso)
    SunOS 5.10 (linew)
    FreeBSD (duty)
2008-07-25 16:51:01 -05:00
Raymond Lu
8704820d1c [svn-r15395] When an attribute was opened twice and data was written with one of the handles,
the file didn't have the data.  It happened because each handle had its own
object structure, and the empty one overwrote the data with fill value.  This is
fixed by making some attribute information like the data be shared in the
attribute structure.

Tested on smirom, kagiso, and linew.
2008-07-22 15:36:31 -05:00
Binh-Minh Ribler
e5df9bb33a [svn-r15309] Purpose: Fixed bugs
Description:
    The class hierarchy was revised to address the problem reported in
    bugzilla #1068.  Classes AbstractDS and Attribute are moved out of
    H5Object.  Class Attribute now multiply inherits from IdComponent and
    AbstractDs and class DataSet from H5Object and AbstractDs.

    In addition, data member IdComponent::id was moved into subclasses:
    Attribute, DataSet, DataSpace, DataType, H5File, Group, and PropList.

Platforms tested:
    SunOS 5.10 (linew)
    Linux 2.6 (kagiso)
    FreeBSD (duty)
2008-07-02 09:56:42 -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
Binh-Minh Ribler
115689570f [svn-r14850] Purpose: Fixed bugs
Description:
    - Revised Attribute::write and Attribute::read wrappers to handle
    memory allocation/deallocation properly. (bugzilla 1045)
    - Changed free() to H5Dfree(), also needed H5private.h
    - Corrected quite a few typos in documenting!

Platforms tested:
    SunOS 5.10 (linew)
    Linux 2.6 (kagiso)
    FreeBSD (duty) - there was something wrong in the C tests for makecheck
        hung quite a long time; I went ahead with makecheck just in c++ dir,
        since the changes didn't effect the C tests.  I'll keep an eye on
        the tests tonight...
2008-04-20 17:06:37 -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
Quincey Koziol
19c9657f7c [svn-r12842] Description:
Refactor generic property list initialization code to put property list
specific routines in property list modules, instead of scattered to the four
winds.  Also, introduce property list class initialization objects, to make
adding new property list classes in the library easier.

    Fix daily test failure by using H5Pget_elink_prefix() API routine instead
of looking at the "raw" generic property list information.

Tested on:
    Mac OS X/32 10.4.8 (amazon)
    FreeBSD/32 4.11 (sleipnir) w/threadsafe
    Linux/32 2.4 (heping) w/C++ & FORTRAN
    Linux/64 2.4 (mir) w/build-all & 1.6 compat
2006-11-01 23:54:19 -05:00
Binh-Minh Ribler
daa61b5986 [svn-r12795] Purpose: Fixing bug
Description:
    Wrappers of H5Rcreate had incorrect prototypes.

Solution:
    Added these overloaded functions for H5Rcreate wrapper to IdComponent:
        void reference(void* ref, const char* name, DataSpace& dataspace,
                        H5R_type_t ref_type = H5R_DATASET_REGION) const;
        void reference(void* ref, const char* name) const;
        void reference(void* ref, const H5std_string& name) const;

    Added these overloaded functions for H5Rdereference:
        void dereference(IdComponent& obj, void* ref);
        DataSet(IdComponent& obj, void* ref);
        Group(IdComponent& obj, void* ref);
        DataType(IdComponent& obj, void* ref);

    The incorrect wrappers will be removed after announcing.

Platform tested:
    Linux 2.4 (heping)
    AIX 5.1 (copper)
    SunOS 5.8 64-bit (sol)
2006-10-22 03:22:30 -05:00
Binh-Minh Ribler
32d3e6f04f [svn-r12404] Purpose: Fix typos/formats
Description:
    Fixed typos and re-arranged some functions to be in sync with 1.6.

Platforms tested:
    Linux 2.4 (heping)
    SunOS 5.9 (shanti)
    AIX 5.1 (copper)
2006-06-05 11:17:36 -05:00
Binh-Minh Ribler
deec486732 [svn-r12368] Purpose: Fixed bug
Description:
    Shanti compiler destroy unnamed objects later than others, which caused
    some reference counting test fail.  Revised the test so that destructors
    are called at the same time, regardless the differences of compiler
    implementation.

    Revised some constructors, close, operator=, and destructors to make
    sure that all the object ids are handled properly.

Platforms tested:
    Linux 2.4 (heping)
    SunOS 5.9 (shanti)
    HPUX 11.00 (kelgia)
    AIX 5.1 (copper)
2006-05-23 12:59:40 -05:00