diff --git a/source/adios2/engine/hdf5/HDF5ReaderP.cpp b/source/adios2/engine/hdf5/HDF5ReaderP.cpp index f018718afc..7c81f9f152 100644 --- a/source/adios2/engine/hdf5/HDF5ReaderP.cpp +++ b/source/adios2/engine/hdf5/HDF5ReaderP.cpp @@ -146,7 +146,7 @@ size_t HDF5ReaderP::ReadDataset(hid_t dataSetId, hid_t h5Type, } else { - hsize_t start[ndims], count[ndims], stride[ndims]; + std::vector start(ndims), count(ndims), stride(ndims); bool isOrderC = helper::IsRowMajor(m_IO.m_HostLanguage); for (int i = 0; i < ndims; i++) @@ -164,12 +164,12 @@ size_t HDF5ReaderP::ReadDataset(hid_t dataSetId, hid_t h5Type, slabsize *= count[i]; stride[i] = 1; } - hid_t ret = H5Sselect_hyperslab(fileSpace, H5S_SELECT_SET, start, - stride, count, NULL); + hid_t ret = H5Sselect_hyperslab(fileSpace, H5S_SELECT_SET, start.data(), + stride.data(), count.data(), NULL); if (ret < 0) return 0; - hid_t memDataSpace = H5Screate_simple(ndims, count, NULL); + hid_t memDataSpace = H5Screate_simple(ndims, count.data(), NULL); interop::HDF5TypeGuard g_mds(memDataSpace, interop::E_H5_SPACE); int elementsRead = 1; diff --git a/source/adios2/helper/adiosMemory.h b/source/adios2/helper/adiosMemory.h index 91d5f13534..44a773c1be 100644 --- a/source/adios2/helper/adiosMemory.h +++ b/source/adios2/helper/adiosMemory.h @@ -111,14 +111,14 @@ T ReadValue(const std::vector &buffer, size_t &position, * @param srcMemCount */ template -void CopyMemory(T *dest, const Dims &destStart, const Dims &destCount, - const bool destRowMajor, const U *src, const Dims &srcStart, - const Dims &srcCount, const bool srcRowMajor, - const bool endianReverse = false, - const Dims &destMemStart = Dims(), - const Dims &destMemCount = Dims(), - const Dims &srcMemStart = Dims(), - const Dims &srcMemCount = Dims()) noexcept; +void CopyMemoryBlock(T *dest, const Dims &destStart, const Dims &destCount, + const bool destRowMajor, const U *src, + const Dims &srcStart, const Dims &srcCount, + const bool srcRowMajor, const bool endianReverse = false, + const Dims &destMemStart = Dims(), + const Dims &destMemCount = Dims(), + const Dims &srcMemStart = Dims(), + const Dims &srcMemCount = Dims()) noexcept; void CopyPayload(char *dest, const Dims &destStart, const Dims &destCount, const bool destRowMajor, const char *src, const Dims &srcStart, diff --git a/source/adios2/helper/adiosMemory.inl b/source/adios2/helper/adiosMemory.inl index e130030e92..7ff9d88de6 100644 --- a/source/adios2/helper/adiosMemory.inl +++ b/source/adios2/helper/adiosMemory.inl @@ -252,12 +252,12 @@ void ClipVector(std::vector &vec, const size_t start, } template -void CopyMemory(T *dest, const Dims &destStart, const Dims &destCount, - const bool destRowMajor, const U *src, const Dims &srcStart, - const Dims &srcCount, const bool srcRowMajor, - const bool endianReverse, const Dims &destMemStart, - const Dims &destMemCount, const Dims &srcMemStart, - const Dims &srcMemCount) noexcept +void CopyMemoryBlock(T *dest, const Dims &destStart, const Dims &destCount, + const bool destRowMajor, const U *src, + const Dims &srcStart, const Dims &srcCount, + const bool srcRowMajor, const bool endianReverse, + const Dims &destMemStart, const Dims &destMemCount, + const Dims &srcMemStart, const Dims &srcMemCount) noexcept { // transform everything to payload dims const Dims destStartPayload = PayloadDims(destStart, destRowMajor); diff --git a/source/adios2/toolkit/format/bp3/BP3Serializer.tcc b/source/adios2/toolkit/format/bp3/BP3Serializer.tcc index a66b9dc62c..7d54681e6c 100644 --- a/source/adios2/toolkit/format/bp3/BP3Serializer.tcc +++ b/source/adios2/toolkit/format/bp3/BP3Serializer.tcc @@ -862,7 +862,7 @@ void BP3Serializer::PutPayloadInBuffer( ProfilerStart("memcpy"); if (!blockInfo.MemoryStart.empty()) { - helper::CopyMemory( + helper::CopyMemoryBlock( reinterpret_cast(m_Data.m_Buffer.data() + m_Data.m_Position), blockInfo.Start, blockInfo.Count, sourceRowMajor, blockInfo.Data, blockInfo.Start, blockInfo.Count, sourceRowMajor, false, Dims(), diff --git a/source/adios2/toolkit/format/bp4/BP4Serializer.tcc b/source/adios2/toolkit/format/bp4/BP4Serializer.tcc index 315ae9b46b..fbc62c3573 100644 --- a/source/adios2/toolkit/format/bp4/BP4Serializer.tcc +++ b/source/adios2/toolkit/format/bp4/BP4Serializer.tcc @@ -883,7 +883,7 @@ void BP4Serializer::PutPayloadInBuffer( if (!blockInfo.MemoryStart.empty()) { // TODO make it a BP4Serializer function - helper::CopyMemory( + helper::CopyMemoryBlock( reinterpret_cast(m_Data.m_Buffer.data() + m_Data.m_Position), blockInfo.Start, blockInfo.Count, sourceRowMajor, blockInfo.Data, blockInfo.Start, blockInfo.Count, sourceRowMajor, false, Dims(), diff --git a/source/adios2/toolkit/interop/hdf5/HDF5Common.cpp b/source/adios2/toolkit/interop/hdf5/HDF5Common.cpp index 1173e9137f..83bcda2511 100644 --- a/source/adios2/toolkit/interop/hdf5/HDF5Common.cpp +++ b/source/adios2/toolkit/interop/hdf5/HDF5Common.cpp @@ -419,8 +419,8 @@ void HDF5Common::AddVar(core::IO &io, std::string const &name, hid_t datasetId, { hid_t dspace = H5Dget_space(datasetId); const int ndims = H5Sget_simple_extent_ndims(dspace); - hsize_t dims[ndims]; - H5Sget_simple_extent_dims(dspace, dims, NULL); + std::vector dims(ndims); + H5Sget_simple_extent_dims(dspace, dims.data(), NULL); H5Sclose(dspace); Dims shape;