[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [41781] trunk/blender/intern/itasc/kdl: Fix #29048: iTaSC solver crash on certain compilers/platforms, due to memory

Brecht Van Lommel brechtvanlommel at pandora.be
Sun Nov 13 13:25:14 CET 2011


Revision: 41781
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41781
Author:   blendix
Date:     2011-11-13 12:25:14 +0000 (Sun, 13 Nov 2011)
Log Message:
-----------
Fix #29048: iTaSC solver crash on certain compilers/platforms, due to memory
alignment issues with Eigen. Patch by Tobias Oelgarte.

Modified Paths:
--------------
    trunk/blender/intern/itasc/kdl/chain.hpp
    trunk/blender/intern/itasc/kdl/tree.hpp

Modified: trunk/blender/intern/itasc/kdl/chain.hpp
===================================================================
--- trunk/blender/intern/itasc/kdl/chain.hpp	2011-11-13 12:17:27 UTC (rev 41780)
+++ trunk/blender/intern/itasc/kdl/chain.hpp	2011-11-13 12:25:14 UTC (rev 41781)
@@ -34,7 +34,8 @@
      */
     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:

Modified: trunk/blender/intern/itasc/kdl/tree.hpp
===================================================================
--- trunk/blender/intern/itasc/kdl/tree.hpp	2011-11-13 12:17:27 UTC (rev 41780)
+++ trunk/blender/intern/itasc/kdl/tree.hpp	2011-11-13 12:25:14 UTC (rev 41781)
@@ -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
     {




More information about the Bf-blender-cvs mailing list