From 7fe56c2261b93621a2666b1dbf50e3a027ee5b0d Mon Sep 17 00:00:00 2001 From: "fabian.peller-konrad@kit.edu" <fabian.peller-konrad@kit.edu> Date: Tue, 13 Jul 2021 11:29:13 +0200 Subject: [PATCH] fix skill observer missing include. Fix RobotStateMemory SegFault if aron in memory is null or not a dict (actually this should never happen. Dont know why this is happening here...) --- .../RobotAPI/components/SkillObserver/SkillObserver.h | 4 ++++ source/RobotAPI/libraries/armem/util/util.h | 11 +++++++++++ 2 files changed, 15 insertions(+) diff --git a/source/RobotAPI/components/SkillObserver/SkillObserver.h b/source/RobotAPI/components/SkillObserver/SkillObserver.h index 44afdb007..b3b0e4243 100644 --- a/source/RobotAPI/components/SkillObserver/SkillObserver.h +++ b/source/RobotAPI/components/SkillObserver/SkillObserver.h @@ -23,6 +23,10 @@ #pragma once #include <thread> +#include <string> +#include <vector> +#include <mutex> +#include <map> #include <ArmarXCore/core/Component.h> diff --git a/source/RobotAPI/libraries/armem/util/util.h b/source/RobotAPI/libraries/armem/util/util.h index f160efcd4..35fc1538b 100644 --- a/source/RobotAPI/libraries/armem/util/util.h +++ b/source/RobotAPI/libraries/armem/util/util.h @@ -46,6 +46,17 @@ namespace armarx::armem static_assert(std::is_base_of<armarx::aron::cppserializer::AronCppClass, AronClass>::value); + + if (!item.data()) + { + return std::nullopt; + } + + if (item.data()->getDescriptor() != aron::data::Descriptor::eDict) + { + return std::nullopt; + } + try { AronClass t; -- GitLab