summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBinh-Minh Ribler <bmribler@hdfgroup.org>2015-10-03 18:56:21 (GMT)
committerBinh-Minh Ribler <bmribler@hdfgroup.org>2015-10-03 18:56:21 (GMT)
commit0ef29b550bc30d5798001ac144d1b1228d663919 (patch)
treecf4a9a952e776200c88948e47a046a8606e2c151
parent87cc068ccbc761a473bbe8d211a40383c0933db0 (diff)
downloadhdf5-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.cpp4
-rw-r--r--c++/src/H5Location.cpp4
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