From aa0772d9b2f5349d703e769b8c60515cf1bb1946 Mon Sep 17 00:00:00 2001 From: Binh-Minh Ribler Date: Thu, 16 Sep 2010 00:59:39 -0500 Subject: [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) --- c++/src/H5Attribute.cpp | 6 ++---- c++/src/H5DataSet.cpp | 6 ++---- c++/src/H5DataSpace.cpp | 6 ++---- c++/src/H5DataType.cpp | 6 ++---- c++/src/H5File.cpp | 6 ++---- c++/src/H5Group.cpp | 6 ++---- c++/src/H5PropList.cpp | 6 ++---- 7 files changed, 14 insertions(+), 28 deletions(-) diff --git a/c++/src/H5Attribute.cpp b/c++/src/H5Attribute.cpp index a2445d6..dad347f 100644 --- a/c++/src/H5Attribute.cpp +++ b/c++/src/H5Attribute.cpp @@ -509,10 +509,8 @@ void Attribute::close() { throw AttributeIException("Attribute::close", "H5Aclose failed"); } - // reset the id when the attribute that it represents is no longer - // referenced - if (getCounter() == 0) - id = 0; + // reset the id + id = 0; } } diff --git a/c++/src/H5DataSet.cpp b/c++/src/H5DataSet.cpp index 6b7b130..7351bbf 100644 --- a/c++/src/H5DataSet.cpp +++ b/c++/src/H5DataSet.cpp @@ -800,10 +800,8 @@ void DataSet::close() { throw DataSetIException("DataSet::close", "H5Dclose failed"); } - // reset the id when the dataset that it represents is no longer - // referenced - if (getCounter() == 0) - id = 0; + // reset the id + id = 0; } } diff --git a/c++/src/H5DataSpace.cpp b/c++/src/H5DataSpace.cpp index 3d74b51..2c6fd37 100644 --- a/c++/src/H5DataSpace.cpp +++ b/c++/src/H5DataSpace.cpp @@ -612,10 +612,8 @@ void DataSpace::close() { throw DataSpaceIException("DataSpace::close", "H5Sclose failed"); } - // reset the id when the dataspace that it represents is no longer - // referenced - if (getCounter() == 0) - id = 0; + // reset the id + id = 0; } } diff --git a/c++/src/H5DataType.cpp b/c++/src/H5DataType.cpp index 7be7fdc..e13b330 100644 --- a/c++/src/H5DataType.cpp +++ b/c++/src/H5DataType.cpp @@ -783,10 +783,8 @@ void DataType::close() { throw DataTypeIException(inMemFunc("close"), "H5Tclose failed"); } - // reset the id when the datatype that it represents is no longer - // referenced - if (getCounter() == 0) - id = 0; + // reset the id + id = 0; } } diff --git a/c++/src/H5File.cpp b/c++/src/H5File.cpp index a0cabcc..a773489 100644 --- a/c++/src/H5File.cpp +++ b/c++/src/H5File.cpp @@ -772,10 +772,8 @@ void H5File::close() { throw FileIException("H5File::close", "H5Fclose failed"); } - // reset the id when the file that it represents is no longer - // referenced - if (getCounter() == 0) - id = 0; + // reset the id + id = 0; } } diff --git a/c++/src/H5Group.cpp b/c++/src/H5Group.cpp index dd64082..afcc7eb 100644 --- a/c++/src/H5Group.cpp +++ b/c++/src/H5Group.cpp @@ -251,10 +251,8 @@ void Group::close() { throw GroupIException("Group::close", "H5Gclose failed"); } - // reset the id when the group that it represents is no longer - // referenced - if (getCounter() == 0) - id = 0; + // reset the id + id = 0; } } diff --git a/c++/src/H5PropList.cpp b/c++/src/H5PropList.cpp index 2530204..550c90d 100644 --- a/c++/src/H5PropList.cpp +++ b/c++/src/H5PropList.cpp @@ -270,10 +270,8 @@ void PropList::close() { throw PropListIException(inMemFunc("close"), "H5Pclose failed"); } - // reset the id when the property list that it represents is no longer - // referenced - if (getCounter() == 0) - id = 0; + // reset the id + id = 0; } } -- cgit v0.12