summaryrefslogtreecommitdiffstats
path: root/c++/src/H5IdComponent.h
diff options
context:
space:
mode:
authorBinh-Minh Ribler <bmribler@hdfgroup.org>2008-07-24 21:18:28 (GMT)
committerBinh-Minh Ribler <bmribler@hdfgroup.org>2008-07-24 21:18:28 (GMT)
commit836f7b53ccce4f67c1918b337c1a133191c58a98 (patch)
tree1fb98f124ac675a2a3e3a1ab62e6266d1a7f9900 /c++/src/H5IdComponent.h
parente1ee78dd0997e240247353fe1f363cd3ef0e4987 (diff)
downloadhdf5-836f7b53ccce4f67c1918b337c1a133191c58a98.zip
hdf5-836f7b53ccce4f67c1918b337c1a133191c58a98.tar.gz
hdf5-836f7b53ccce4f67c1918b337c1a133191c58a98.tar.bz2
[svn-r15401] Purpose: Fix bug
Description: Changed all subclasses' setId to 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) Still on going with these two platforms, but needed to check in before daily tests start. SunOS 5.10 (linew) FreeBSD (duty)
Diffstat (limited to 'c++/src/H5IdComponent.h')
-rw-r--r--c++/src/H5IdComponent.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/c++/src/H5IdComponent.h b/c++/src/H5IdComponent.h
index c34b2da..5bbfb71 100644
--- a/c++/src/H5IdComponent.h
+++ b/c++/src/H5IdComponent.h
@@ -51,7 +51,7 @@ class H5_DLLCPP IdComponent {
virtual hid_t getId () const = 0;
// Sets the identifier of this object to a new value.
- virtual void setId(const hid_t new_id) = 0;
+ void setId(const hid_t new_id);
// Creates an object to hold an HDF5 identifier.
IdComponent( const hid_t h5_id );
@@ -85,6 +85,10 @@ class H5_DLLCPP IdComponent {
// Gets the name of the file, in which an HDF5 object belongs.
H5std_string p_get_file_name() const;
+ // Sets the identifier of this object to a new value. - this one
+ // doesn't increment reference count
+ virtual void p_setId(const hid_t new_id) = 0;
+
// Verifies that the given id is valid.
static bool p_valid_id(const hid_t obj_id);