diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2011-11-13 16:25:14 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2011-11-13 16:25:14 +0400 |
commit | d0550758afaf963577c07113c387cd67f0ffca52 (patch) | |
tree | 4dc2aabeb3804fe0342924f8fddfbeb9f22ffad6 | |
parent | 11c83d843206648a33bcc8b4d754577ec0a51d2a (diff) |
Fix #29048: iTaSC solver crash on certain compilers/platforms, due to memory
alignment issues with Eigen. Patch by Tobias Oelgarte.
-rw-r--r-- | intern/itasc/kdl/chain.hpp | 3 | ||||
-rw-r--r-- | 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<Segment> segments; + // Eigen allocator is needed for alignment of Eigen data types + std::vector<Segment, Eigen::aligned_allocator<Segment> > 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 <string> #include <map> +#include <Eigen/Core> namespace KDL { //Forward declaration class TreeElement; - typedef std::map<std::string,TreeElement> SegmentMap; + // Eigen allocator is needed for alignment of Eigen data types + typedef std::map<std::string,TreeElement, std::less<std::string>, Eigen::aligned_allocator<std::pair<std::string, TreeElement> > > SegmentMap; class TreeElement { |