diff options
author | Binh-Minh Ribler <bmribler@hdfgroup.org> | 2010-09-16 05:59:39 (GMT) |
---|---|---|
committer | Binh-Minh Ribler <bmribler@hdfgroup.org> | 2010-09-16 05:59:39 (GMT) |
commit | aa0772d9b2f5349d703e769b8c60515cf1bb1946 (patch) | |
tree | d24277ebbe2d645cc72330539fd72fec69e7c550 | |
parent | 4c436595abbee884ab01c9e9e7f6d1e131572875 (diff) | |
download | hdf5-aa0772d9b2f5349d703e769b8c60515cf1bb1946.zip hdf5-aa0772d9b2f5349d703e769b8c60515cf1bb1946.tar.gz hdf5-aa0772d9b2f5349d703e769b8c60515cf1bb1946.tar.bz2 |
[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)
-rw-r--r-- | c++/src/H5Attribute.cpp | 6 | ||||
-rw-r--r-- | c++/src/H5DataSet.cpp | 6 | ||||
-rw-r--r-- | c++/src/H5DataSpace.cpp | 6 | ||||
-rw-r--r-- | c++/src/H5DataType.cpp | 6 | ||||
-rw-r--r-- | c++/src/H5File.cpp | 6 | ||||
-rw-r--r-- | c++/src/H5Group.cpp | 6 | ||||
-rw-r--r-- | 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; } } |