summaryrefslogtreecommitdiffstats
path: root/c++/src/H5PredType.cpp
diff options
context:
space:
mode:
authorBinh-Minh Ribler <bmribler@hdfgroup.org>2012-03-30 19:34:20 (GMT)
committerBinh-Minh Ribler <bmribler@hdfgroup.org>2012-03-30 19:34:20 (GMT)
commit56d950d3264aae3d935854470a9178a333614bff (patch)
treee74485f6148c1c598b9961556820f7ddec7444f3 /c++/src/H5PredType.cpp
parent7f7b8bd9725854fc8b546bcde3252f2c8d5c5d32 (diff)
downloadhdf5-56d950d3264aae3d935854470a9178a333614bff.zip
hdf5-56d950d3264aae3d935854470a9178a333614bff.tar.gz
hdf5-56d950d3264aae3d935854470a9178a333614bff.tar.bz2
[svn-r22209] 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 in HDFFV-2761. - Added H5CPP_EXITED for PredType::AtExit to use as a flag - Rearranged constructors in CompType to fix bug HDFFV-7852 - Updated some inaccurate comments - Removed stream functions from FileAccPropList - Replaced H5_VMS with appropriate macro in H5IdComponent.cpp Platforms tested: Linux/32 2.6 (jam) Linux/64 2.6 (amani) SunOS 5.10 (linew)
Diffstat (limited to 'c++/src/H5PredType.cpp')
-rw-r--r--c++/src/H5PredType.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/c++/src/H5PredType.cpp b/c++/src/H5PredType.cpp
index 347f02f..9dfc760 100644
--- a/c++/src/H5PredType.cpp
+++ b/c++/src/H5PredType.cpp
@@ -44,7 +44,10 @@ namespace H5 {
//--------------------------------------------------------------------------
PredType::PredType( const hid_t predtype_id ) : AtomType( predtype_id )
{
- id = H5Tcopy(predtype_id);
+ if (predtype_id == H5CPP_EXITED)
+ id = predtype_id;
+ else
+ id = H5Tcopy(predtype_id);
}
//--------------------------------------------------------------------------
@@ -62,7 +65,8 @@ PredType::PredType() : AtomType() {}
//--------------------------------------------------------------------------
PredType::PredType( const PredType& original ) : AtomType( original ) {}
-const PredType PredType::NotAtexit; // only for atexit/global dest. problem
+// Flag to terminate HDF5 library in DataType::~DataType
+const PredType PredType::AtExit(H5CPP_EXITED);
// Definition of pre-defined types
const PredType PredType::C_S1( H5T_C_S1 );