From d07c54ba295498e164316d4e31f8f88aca9d6b97 Mon Sep 17 00:00:00 2001
From: Norbert Podhorszki <pnorbert@ornl.gov>
Date: Mon, 1 May 2017 15:57:59 -0400
Subject: [PATCH] added another form of Uint64ArrayToSizetVector()

---
 source/adios2/core/adiosFunctions.cpp | 10 ++++++++++
 source/adios2/core/adiosFunctions.h   |  8 +++++++-
 2 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/source/adios2/core/adiosFunctions.cpp b/source/adios2/core/adiosFunctions.cpp
index 6c6901880..3394c2946 100644
--- a/source/adios2/core/adiosFunctions.cpp
+++ b/source/adios2/core/adiosFunctions.cpp
@@ -662,6 +662,16 @@ void ConvertUint64VectorToSizetVector(const std::vector<std::uint64_t> &in,
     }
 }
 
+void Uint64ArrayToSizetVector(const std::size_t nElements, const uint64_t *in,
+                              std::vector<std::size_t> &out)
+{
+    out.resize(nElements);
+    for (std::size_t i = 0; i < nElements; i++)
+    {
+        out[i] = static_cast<std::size_t>(in[i]);
+    }
+}
+
 std::vector<std::size_t> Uint64ArrayToSizetVector(const std::size_t nElements,
                                                   const uint64_t *in)
 {
diff --git a/source/adios2/core/adiosFunctions.h b/source/adios2/core/adiosFunctions.h
index 545c5c3e9..a66daa87d 100644
--- a/source/adios2/core/adiosFunctions.h
+++ b/source/adios2/core/adiosFunctions.h
@@ -188,6 +188,13 @@ std::vector<int> CSVToVectorInt(const std::string csv);
  */
 void ConvertUint64VectorToSizetVector(const std::vector<std::uint64_t> &in,
                                       std::vector<std::size_t> &out);
+/** Convert a C array of uint64_t elements to a vector of std::size_t elements
+ *  @param number of elements
+ *  @param input array of uint64_t elements
+ *  @param vector of std::size_t elements. It will be resized to nElements.
+ */
+void Uint64ArrayToSizetVector(const std::size_t nElements, const uint64_t *in,
+                              std::vector<std::size_t> &out);
 
 /** Convert a C array of uint64_t elements to a vector of std::size_t elements
  *  @param number of elements
@@ -196,7 +203,6 @@ void ConvertUint64VectorToSizetVector(const std::vector<std::uint64_t> &in,
  */
 std::vector<std::size_t> Uint64ArrayToSizetVector(const std::size_t nElements,
                                                   const uint64_t *in);
-
 /**
  * Converts a vector of dimensions to a CSV string
  * @param dims vector of dimensions
-- 
GitLab