summaryrefslogtreecommitdiffstats
path: root/c++/src/H5CompType.cpp
diff options
context:
space:
mode:
authorBinh-Minh Ribler <bmribler@hdfgroup.org>2016-01-18 15:06:51 (GMT)
committerBinh-Minh Ribler <bmribler@hdfgroup.org>2016-01-18 15:06:51 (GMT)
commit4d6662e86c03e783c8d574dd50941edb607a07ca (patch)
tree1cdd35a160bebf4ba981b2f439e2780db354bc1c /c++/src/H5CompType.cpp
parent7c2b004f25da184a59fc4892eb6dec2997e96154 (diff)
downloadhdf5-4d6662e86c03e783c8d574dd50941edb607a07ca.zip
hdf5-4d6662e86c03e783c8d574dd50941edb607a07ca.tar.gz
hdf5-4d6662e86c03e783c8d574dd50941edb607a07ca.tar.bz2
[svn-r28926] Purpose: Fix user reported problem
Description: User Adam Rosenberger reported a failure when using the member function AbstractDs::getArrayType(). This problem was caused by missing initialization of the ArrayType's members in some cases. Solution: - Added ArrayType::setArrayInfo() to retrieve rank and dimensions of an array and store them in memory for easy access. - Re-factored a few functions to use the new function. - We'll give him 1.8.16 patch Merged from trunk r28905 Platforms tested: Linux/32 2.6 (jam) Linux/64 (platypus) Darwin (osx1010test)
Diffstat (limited to 'c++/src/H5CompType.cpp')
-rw-r--r--c++/src/H5CompType.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/c++/src/H5CompType.cpp b/c++/src/H5CompType.cpp
index 6d31a68..82575d6 100644
--- a/c++/src/H5CompType.cpp
+++ b/c++/src/H5CompType.cpp
@@ -228,12 +228,12 @@ hid_t CompType::p_get_member_type(unsigned member_num) const
DataType CompType::getMemberDataType( unsigned member_num ) const
{
try {
- DataType datatype;
+ DataType datatype;
f_DataType_setId(&datatype, p_get_member_type(member_num));
- return(datatype);
+ return(datatype);
}
catch (DataTypeIException E) {
- throw DataTypeIException("CompType::getMemberDataType", E.getDetailMsg());
+ throw DataTypeIException("CompType::getMemberDataType", E.getDetailMsg());
}
}
@@ -249,9 +249,10 @@ DataType CompType::getMemberDataType( unsigned member_num ) const
ArrayType CompType::getMemberArrayType( unsigned member_num ) const
{
try {
- ArrayType arraytype(p_get_member_type(member_num));
+ ArrayType arraytype;
f_DataType_setId(&arraytype, p_get_member_type(member_num));
- return(arraytype);
+ arraytype.setArrayInfo();
+ return(arraytype);
}
catch (DataTypeIException E) {
throw DataTypeIException("CompType::getMemberArrayType", E.getDetailMsg());