diff options
author | Binh-Minh Ribler <bmribler@hdfgroup.org> | 2015-10-03 18:56:21 (GMT) |
---|---|---|
committer | Binh-Minh Ribler <bmribler@hdfgroup.org> | 2015-10-03 18:56:21 (GMT) |
commit | 0ef29b550bc30d5798001ac144d1b1228d663919 (patch) | |
tree | cf4a9a952e776200c88948e47a046a8606e2c151 | |
parent | 87cc068ccbc761a473bbe8d211a40383c0933db0 (diff) | |
download | hdf5-0ef29b550bc30d5798001ac144d1b1228d663919.zip hdf5-0ef29b550bc30d5798001ac144d1b1228d663919.tar.gz hdf5-0ef29b550bc30d5798001ac144d1b1228d663919.tar.bz2 |
[svn-r27943] Purpose: Fix HDFFV-7947 (cont.)
Description:
In the friend functions that setId, changed the direct assignment of
id to using p_setId() so that the previous id can be closed first to
avoid memory leaks.
This change was tested and confirmed by user Jorj on Forum when his
application stopped running out of memory. Currently, the C++ library
doesn't have a way to test this. A function such as H5Inmembers for
library ids would be helpful.
Platforms tested:
Linux/32 2.6 (jam)
SunOS 5.11 (emu)
Darwin (osx1010test)
-rw-r--r-- | c++/src/H5CommonFG.cpp | 4 | ||||
-rw-r--r-- | c++/src/H5Location.cpp | 4 |
2 files changed, 4 insertions, 4 deletions
diff --git a/c++/src/H5CommonFG.cpp b/c++/src/H5CommonFG.cpp index dbe26b4..8ab04f0 100644 --- a/c++/src/H5CommonFG.cpp +++ b/c++/src/H5CommonFG.cpp @@ -1268,7 +1268,7 @@ CommonFG::~CommonFG() {} //-------------------------------------------------------------------------- void f_DataType_setId(DataType* dtype, hid_t new_id) { - dtype->id = new_id; + dtype->p_setId(new_id); } //-------------------------------------------------------------------------- @@ -1283,7 +1283,7 @@ void f_DataType_setId(DataType* dtype, hid_t new_id) //-------------------------------------------------------------------------- void f_DataSet_setId(DataSet* dset, hid_t new_id) { - dset->id = new_id; + dset->p_setId(new_id); } #endif // DOXYGEN_SHOULD_SKIP_THIS diff --git a/c++/src/H5Location.cpp b/c++/src/H5Location.cpp index 5100e12..42f2a13 100644 --- a/c++/src/H5Location.cpp +++ b/c++/src/H5Location.cpp @@ -951,7 +951,7 @@ H5Location::~H5Location() {} //-------------------------------------------------------------------------- void f_Attribute_setId(Attribute* attr, hid_t new_id) { - attr->id = new_id; + attr->p_setId(new_id); } //-------------------------------------------------------------------------- @@ -966,7 +966,7 @@ void f_Attribute_setId(Attribute* attr, hid_t new_id) //-------------------------------------------------------------------------- void f_DataSpace_setId(DataSpace* dspace, hid_t new_id) { - dspace->id = new_id; + dspace->p_setId(new_id); } #endif // DOXYGEN_SHOULD_SKIP_THIS |