diff options
author | Binh-Minh Ribler <bmribler@hdfgroup.org> | 2016-01-18 15:06:51 (GMT) |
---|---|---|
committer | Binh-Minh Ribler <bmribler@hdfgroup.org> | 2016-01-18 15:06:51 (GMT) |
commit | 4d6662e86c03e783c8d574dd50941edb607a07ca (patch) | |
tree | 1cdd35a160bebf4ba981b2f439e2780db354bc1c /c++/src/H5CompType.cpp | |
parent | 7c2b004f25da184a59fc4892eb6dec2997e96154 (diff) | |
download | hdf5-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.cpp | 11 |
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()); |