summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBinh-Minh Ribler <bmribler@hdfgroup.org>2010-09-16 05:59:39 (GMT)
committerBinh-Minh Ribler <bmribler@hdfgroup.org>2010-09-16 05:59:39 (GMT)
commitaa0772d9b2f5349d703e769b8c60515cf1bb1946 (patch)
treed24277ebbe2d645cc72330539fd72fec69e7c550
parent4c436595abbee884ab01c9e9e7f6d1e131572875 (diff)
downloadhdf5-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.cpp6
-rw-r--r--c++/src/H5DataSet.cpp6
-rw-r--r--c++/src/H5DataSpace.cpp6
-rw-r--r--c++/src/H5DataType.cpp6
-rw-r--r--c++/src/H5File.cpp6
-rw-r--r--c++/src/H5Group.cpp6
-rw-r--r--c++/src/H5PropList.cpp6
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;
}
}