diff options
author | Binh-Minh Ribler <bmribler@hdfgroup.org> | 2008-07-25 21:51:01 (GMT) |
---|---|---|
committer | Binh-Minh Ribler <bmribler@hdfgroup.org> | 2008-07-25 21:51:01 (GMT) |
commit | 18fb7d1a78ff488c23ed5e3bec583034176f3bb4 (patch) | |
tree | cdf00652c7201807d9fa41feb5bfe357023a695c /c++/src/H5DataSet.h | |
parent | bb8bf261eef26e860eaa1ebf2dd24d053a9378ec (diff) | |
download | hdf5-18fb7d1a78ff488c23ed5e3bec583034176f3bb4.zip hdf5-18fb7d1a78ff488c23ed5e3bec583034176f3bb4.tar.gz hdf5-18fb7d1a78ff488c23ed5e3bec583034176f3bb4.tar.bz2 |
[svn-r15407] Purpose: Fix bug
Description:
Changed all subclasses' setId to protected p_setId and put back setId
in IdComponent. p_setId is used in the library where the id provided
by a C API passed on to user's application in the form of a C++ API
object, which will be destroyed properly, and so p_setId does not
call incRefCount. On the other hand, the public version setId is
used by other applications, in which the id passed to setId needs
to be closed properly by the application, so setId must call incRefCount
for the new object to prevent prematurely closing of the id.
Platforms tested:
Linux 2.6 (kagiso)
SunOS 5.10 (linew)
FreeBSD (duty)
Diffstat (limited to 'c++/src/H5DataSet.h')
-rw-r--r-- | c++/src/H5DataSet.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/c++/src/H5DataSet.h b/c++/src/H5DataSet.h index f968932..f5d13d0 100644 --- a/c++/src/H5DataSet.h +++ b/c++/src/H5DataSet.h @@ -99,7 +99,6 @@ class H5_DLLCPP DataSet : public H5Object, public AbstractDs { // Gets the dataset id. virtual hid_t getId() const; - virtual void setId(const hid_t new_id); // Destructor: properly terminates access to this dataset. virtual ~DataSet(); @@ -112,6 +111,10 @@ class H5_DLLCPP DataSet : public H5Object, public AbstractDs { // defined in AbstractDs for generic datatype and specific // sub-types virtual hid_t p_get_type() const; + + protected: + // Sets the dataset id. + virtual void p_setId(const hid_t new_id); }; #ifndef H5_NO_NAMESPACE } |