From d0550758afaf963577c07113c387cd67f0ffca52 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sun, 13 Nov 2011 12:25:14 +0000 Subject: [PATCH] Fix #29048: iTaSC solver crash on certain compilers/platforms, due to memory alignment issues with Eigen. Patch by Tobias Oelgarte. --- intern/itasc/kdl/chain.hpp | 3 ++- intern/itasc/kdl/tree.hpp | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/intern/itasc/kdl/chain.hpp b/intern/itasc/kdl/chain.hpp index 0d40690202a..a2b4905622e 100644 --- a/intern/itasc/kdl/chain.hpp +++ b/intern/itasc/kdl/chain.hpp @@ -34,7 +34,8 @@ namespace KDL { */ class Chain { private: - std::vector segments; + // Eigen allocator is needed for alignment of Eigen data types + std::vector > segments; unsigned int nrOfJoints; unsigned int nrOfSegments; public: diff --git a/intern/itasc/kdl/tree.hpp b/intern/itasc/kdl/tree.hpp index bdd3aa94572..6b822dcd1e0 100644 --- a/intern/itasc/kdl/tree.hpp +++ b/intern/itasc/kdl/tree.hpp @@ -27,12 +27,14 @@ #include #include +#include namespace KDL { //Forward declaration class TreeElement; - typedef std::map SegmentMap; + // Eigen allocator is needed for alignment of Eigen data types + typedef std::map, Eigen::aligned_allocator > > SegmentMap; class TreeElement {