diff options
author | Binh-Minh Ribler <bmribler@hdfgroup.org> | 2016-01-15 15:53:33 (GMT) |
---|---|---|
committer | Binh-Minh Ribler <bmribler@hdfgroup.org> | 2016-01-15 15:53:33 (GMT) |
commit | 0d68aa89cede07df85eca611510a6271fbbb1d8a (patch) | |
tree | bdef31cdbdb77168e26bd4e2ed0eb12665dada44 /c++/src/H5CompType.cpp | |
parent | c09393ed0a2624cc04556249ef5549c2485efe8f (diff) | |
download | hdf5-0d68aa89cede07df85eca611510a6271fbbb1d8a.zip hdf5-0d68aa89cede07df85eca611510a6271fbbb1d8a.tar.gz hdf5-0d68aa89cede07df85eca611510a6271fbbb1d8a.tar.bz2 |
[svn-r28905] 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
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()); |