From ebd66671d51b9a52b2fcc6cd4e8b9402d25d8cf4 Mon Sep 17 00:00:00 2001
From: Rainer Kartmann <rainer.kartmann@kit.edu>
Date: Wed, 1 Sep 2021 11:40:07 +0200
Subject: [PATCH] Use std::memcpy

Signed-off-by: Rainer Kartmann <rainer.kartmann@kit.edu>
---
 .../aron/core/io/dataIO/reader/navigator/NavigatorReader.cpp   | 3 ++-
 .../aron/core/io/dataIO/writer/navigator/NavigatorWriter.cpp   | 3 ++-
 .../libraries/aron/core/navigator/data/complex/NDArray.cpp     | 2 +-
 3 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/source/RobotAPI/libraries/aron/core/io/dataIO/reader/navigator/NavigatorReader.cpp b/source/RobotAPI/libraries/aron/core/io/dataIO/reader/navigator/NavigatorReader.cpp
index 6c95ec35b..d5e2ebe0f 100644
--- a/source/RobotAPI/libraries/aron/core/io/dataIO/reader/navigator/NavigatorReader.cpp
+++ b/source/RobotAPI/libraries/aron/core/io/dataIO/reader/navigator/NavigatorReader.cpp
@@ -161,7 +161,8 @@ namespace armarx::aron::dataIO::reader
 
         auto casted = datanavigator::NDArrayNavigator::DynamicCastAndCheck(current_nav);
         std::vector<int> dims = casted->getDimensions();
-        memcpy(data, casted->getData(), std::accumulate(std::begin(dims), std::end(dims), 1, std::multiplies<int>()));
+        int size = std::accumulate(std::begin(dims), std::end(dims), 1, std::multiplies<int>());
+        std::memcpy(data, casted->getData(), static_cast<size_t>(size));
     }
 
     // Read primitives
diff --git a/source/RobotAPI/libraries/aron/core/io/dataIO/writer/navigator/NavigatorWriter.cpp b/source/RobotAPI/libraries/aron/core/io/dataIO/writer/navigator/NavigatorWriter.cpp
index 8777b5d0c..b1c25a788 100644
--- a/source/RobotAPI/libraries/aron/core/io/dataIO/writer/navigator/NavigatorWriter.cpp
+++ b/source/RobotAPI/libraries/aron/core/io/dataIO/writer/navigator/NavigatorWriter.cpp
@@ -96,7 +96,8 @@ namespace armarx::aron::dataIO::writer
         datanavigator::NDArrayNavigatorPtr aron(new datanavigator::NDArrayNavigator(path));
         aron->setDimensions(dims);
         aron->setType(t);
-        aron->setData(std::accumulate(std::begin(dims), std::end(dims), 1, std::multiplies<int>()), data);
+        int size = std::accumulate(std::begin(dims), std::end(dims), 1, std::multiplies<int>());
+        aron->setData(static_cast<unsigned int>(size), data);
         token->addElement(aron);
     }
 
diff --git a/source/RobotAPI/libraries/aron/core/navigator/data/complex/NDArray.cpp b/source/RobotAPI/libraries/aron/core/navigator/data/complex/NDArray.cpp
index eb1a48637..cf568cef4 100644
--- a/source/RobotAPI/libraries/aron/core/navigator/data/complex/NDArray.cpp
+++ b/source/RobotAPI/libraries/aron/core/navigator/data/complex/NDArray.cpp
@@ -115,7 +115,7 @@ namespace armarx::aron::datanavigator
     void NDArrayNavigator::setData(unsigned int elements, const unsigned char* src)
     {
         aron->data = std::vector<unsigned char>(elements);
-        memcpy(aron->data.data(), src, elements);
+        std::memcpy(aron->data.data(), src, elements);
     }
 
     std::vector<int> NDArrayNavigator::getDimensions() const
-- 
GitLab