- In the test for HDFFV-9758, a pragma pack(1) caused failure on Emu
because Sparc cannot access misaligned data. Changed it to pack() to
do the default alignment.
- Added DOXYGEN_SHOULD_SKIP_THIS blocks to private elements to prevent
warnings from doxygen.
Platforms tested:
SunOS 5.11 (emu)
Linux/32 2.6 (jam)
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
Fixed typo that caused daily test failed when --enable-deprecated-symbols
is used. Also, removed a commented-out function.
Platforms tested:
Linux/32 2.6 (jam)
Linux/64 (platypus) with --enable-deprecated-symbols
Description:
Revised class brief description and other comments for up-to-date info.
Platforms tested:
Linux/32 2.6 (jam)
Linux/64 (platypus)
Darwin (osx1010test)
Description:
Adding user's test revealed a flaw in the fix.
Moved CommonFG's functions in Group to H5Location, so that they
could be called by objects that can be used to specify a location
Also, rearranged many "#include" header files to resolve conflicts.
Platforms tested:
Linux/32 2.6 (jam)
Linux/64 (platypus)
Darwin (osx1010test)
Description:
- Used FP_EPSILON in comparing float values to verify read data
- Casted C macro to fix mismatched types in verify_val calls
Platforms tested:
Linux/32 2.6 (jam)
Linux/64 (platypus)
Darwin (osx1010test)
trunk:
Description:
Continued rearranging the classes to model the relationship of HDF5
objects more accurately. The changes included:
- in the baseclass list of Attribute, changed "public IdComponent" to
"public H5Location", because location sometime can be specified with
attribute
- moved H5A wrappers in H5Location to H5Object because H5A functions
can't be called on attribute id
- removed the stubs Attribute::iterateAttrs and Attribute::renameAttr
- removed Attribute::getFileName and Attribute::flush, because
H5Location has them
- result of the modified partial class diagram, regarding Attribute
IdComponent
|
H5Location AbstractDs
/ \ /
H5Object Attribute
Platforms tested:
Linux/32 2.6 (jam)
Linux/64 (platypus)
Darwin (osx1010test)
Description:
Rearranged the classes to model the relationship of HDF5 objects more
accurately. The changes included:
- moved CommonFG's methods to Group
- removed CommonFG from Group's base class list
- removed CommonFG from H5File's base class list and changed
"public H5Location" to "public Group" in the base class list
- CommonFG became unused
- result of the modified partial class diagram:
IdComponent
|
H5Location
/
H5Object
|
/ / \
DadaType Group DataSet
|
H5File
Platforms tested:
Linux/32 2.6 (jam)
Linux/64 (platypus)
Darwin (osx1010test)
Description:
Removed deprecated functions in previous releases due to missing const.
Platforms tested:
Linux/32 2.6 (jam)
Linux/64 (platypus)
Darwin (osx1010test)
Description:
- Added "const" to arguments that should be const
- Added "const" to const functions, i.e., function that don't change
the objects they operate on.
Platforms tested:
Linux/32 2.6 (jam)
Linux/64 (platypus)
Darwin (osx1010test)
Switch test framework to dynamically allocate the testing array, and
expand the length of the description field.
Tested on:
MacOSX/64 10.11.5 (amazon) w/serial & parallel
(h5committest forthcoming)
Description:
- Removed ArrayType::rank and ArrayType::dimensions and modified the methods
ArrayType::getArrayNDims and ArrayType::getArrayDims to always call the
C functions to get the rank and dimensions.
- Overloaded ArrayType::getArrayNDims and ArrayType::getArrayDims to provide
const version and marked the non-const version deprecated.
Platforms tested:
Linux/32 2.6 (jam)
Linux/64 (platypus)
Darwin (osx1010test)
Description:
Replaced static_cast with reinterpret_cast for "void *".
Removed some commented-out old code.
Platforms tested:
Linux/32 2.6 (jam)
Linux/64 (platypus)
Darwin (osx1010test)
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)
Description:
Removed obsolete functions from the documentation. They are still
in the code, however, until the next two releases, just in case.
Platforms tested:
Linux/32 2.6 (jam)
Linux/64 (platypus)
Darwin (osx1010test)
Description:
Added member function ArrayType::operator= because ArrayType has
pointer data members.
Platforms tested:
Linux/32 2.6 (jam)
Linux/64 (platypus)
Darwin (osx1010test)
Description:
User Adam Rosenberger reported a failure when using the member function
AbstractDs::getArrayType(). This problem was caused by missing
initialization of the ArrayType's members in some cases.
Solution:
- Added ArrayType::setArrayInfo() to retrieve rank and dimensions of
an array and store them in memory for easy access.
- Re-factored a few functions to use the new function.
- We'll give him 1.8.16 patch
Platforms tested:
Linux/32 2.6 (jam)
Linux/64 (platypus)
Darwin (osx1010test)
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
Description:
- Implemented the friend function
void f_PropList_setId(PropList* plist, hid_t new_id)
to work around the same problem described in trunk r26655, for the
API DataSet::getCreatePlist()
- Cleaned up some comments and obsolete functions
Platforms tested:
Linux/32 2.6 (jam)
Linux/64 (platypus)
Darwin (osx1010test)
Description:
- Removed H5Library::instance because it is unnecessary. All H5Library's
methods are static. This, in turn, removed the memory leaks by
H5Library::instance not being deleted.
- Added ObjCreatPropList::deleteConstants to atexist() list
- Cleaned up comments and format inconsistencies with 1.8
Platforms tested:
Linux/32 2.6 (jam)
Linux/64 (platypus)
Darwin (osx1010test)
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)
Description:
In the friend functions that setId, changed the direct assignment of
id to using p_setId() so that the previous id can be closed first to
avoid memory leaks.
This change was tested and confirmed by user Jorj on Forum when his
application stopped running out of memory. Currently, the C++ library
doesn't have a way to test this. A function such as H5Inmembers for
library ids would be helpful.
Platforms tested:
Linux/32 2.6 (jam)
SunOS 5.11 (emu)
Darwin (osx1010test)
NOTES:
- Developers will have to run autogen.sh before building with the autotools.
- autogen.sh takes the -p option to mimic the old bin/reconfigure behavior.
- The generated error, overflow and version headers have been left in place.
- The generated H5LT parser code has also been left in place.
- There are no changes for CMake users at this time.
Tested on: h5committest
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