)]}'
{
  "commit": "f52d119b9c4f9b6dfbb91183de08143fdf3cc94c",
  "tree": "2369642bacec55b4d372797d42d27c74c6ac75eb",
  "parents": [
    "d8df318d77b8a9bd9d6274f25145639603c2e8d4"
  ],
  "author": {
    "name": "Gael Guennebaud",
    "email": "g.gael@free.fr",
    "time": "Wed Sep 03 00:32:56 2008 +0000"
  },
  "committer": {
    "name": "Gael Guennebaud",
    "email": "g.gael@free.fr",
    "time": "Wed Sep 03 00:32:56 2008 +0000"
  },
  "message": "Solve a big issue with data alignment and dynamic allocation:\n* add a WithAlignedOperatorNew class with overloaded operator new\n* make Matrix (and Quaternion, Transform, Hyperplane, etc.) use it\n  if needed such that \"*(new Vector4) \u003d xpr\" does not failed anymore.\n* Please: make sure your classes having fixed size Eigen\u0027s vector\n  or matrice attributes inherit WithAlignedOperatorNew\n* add a ei_new_allocator STL memory allocator to use with STL containers.\n  This allocator really calls operator new on your types (unlike GCC\u0027s\n  new_allocator). Example:\n  std::vector\u003cVector4f\u003e data(10);\n  will segfault if the vectorization is enabled, instead use:\n  std::vector\u003cVector4f,ei_new_allocator\u003cVector4f\u003e \u003e data(10);\nNOTE: you only have to worry if you deal with fixed-size matrix types\nwith \"sizeof(matrix_type)%16\u003d\u003d0\"...\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "cf018ffeff4989e54abea29c73fd9b3d51add663",
      "old_mode": 33188,
      "old_path": "Eigen/src/Core/Matrix.h",
      "new_id": "55c7d982a15692b778c5cce1a436ef797ce080df",
      "new_mode": 33188,
      "new_path": "Eigen/src/Core/Matrix.h"
    },
    {
      "type": "modify",
      "old_id": "fc99962e9de7dc1b03e7eeb15adf65adb6c78aec",
      "old_mode": 33188,
      "old_path": "Eigen/src/Core/util/Memory.h",
      "new_id": "734296e77677d7b81c0e0481ad301bc066a0c59b",
      "new_mode": 33188,
      "new_path": "Eigen/src/Core/util/Memory.h"
    },
    {
      "type": "modify",
      "old_id": "6cf1287127c0c31bec461ae833033bf08d3812c3",
      "old_mode": 33188,
      "old_path": "Eigen/src/Geometry/Hyperplane.h",
      "new_id": "faf2cf3ed0a8d0903c044e243cfee31d9c53516f",
      "new_mode": 33188,
      "new_path": "Eigen/src/Geometry/Hyperplane.h"
    },
    {
      "type": "modify",
      "old_id": "970280d3305bc00bb5466c75f153ad279c1b5d55",
      "old_mode": 33188,
      "old_path": "Eigen/src/Geometry/Quaternion.h",
      "new_id": "876524cc01889fcdf5850d20015204c0b498e5e8",
      "new_mode": 33188,
      "new_path": "Eigen/src/Geometry/Quaternion.h"
    },
    {
      "type": "modify",
      "old_id": "ded1b62205fd73a69e5842896ea82493bffd27da",
      "old_mode": 33188,
      "old_path": "Eigen/src/Geometry/Scaling.h",
      "new_id": "da7cca68e713da750b2ad661886042f93621a92b",
      "new_mode": 33188,
      "new_path": "Eigen/src/Geometry/Scaling.h"
    },
    {
      "type": "modify",
      "old_id": "37ac00d7588efef0ce82a1320a44f9493f55036c",
      "old_mode": 33188,
      "old_path": "Eigen/src/Geometry/Transform.h",
      "new_id": "ee7bdce83fbe2bb07b37c4570ac7e84aee2a4618",
      "new_mode": 33188,
      "new_path": "Eigen/src/Geometry/Transform.h"
    },
    {
      "type": "modify",
      "old_id": "056fd2818eddacb0f83e5239e841ef269975f8ed",
      "old_mode": 33188,
      "old_path": "Eigen/src/Geometry/Translation.h",
      "new_id": "a322205a4f6d5741ff82eafa36b674de1f6d16aa",
      "new_mode": 33188,
      "new_path": "Eigen/src/Geometry/Translation.h"
    },
    {
      "type": "modify",
      "old_id": "b1e206096782268abdbe33391fd2949bec15d488",
      "old_mode": 33188,
      "old_path": "demos/CMakeLists.txt",
      "new_id": "64298baf4335d3ab94ba042292930d7d97f920f9",
      "new_mode": 33188,
      "new_path": "demos/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "5453bfcf04266bb8ee49acc3927848ea5ff2d943",
      "old_mode": 33188,
      "old_path": "test/CMakeLists.txt",
      "new_id": "505cfd70dcbb446222d0dffe61cfc3d97673874b",
      "new_mode": 33188,
      "new_path": "test/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "287dce0d2f8c9477bf3be2b2704f961d0dc82bb7",
      "new_mode": 33188,
      "new_path": "test/dynalloc.cpp"
    },
    {
      "type": "modify",
      "old_id": "a1b12f57c9f517697246ba60c6ab79d115c6896d",
      "old_mode": 33188,
      "old_path": "test/nomalloc.cpp",
      "new_id": "78bb12a8aa9c580f7c1bc11ae8e5a40a61859643",
      "new_mode": 33188,
      "new_path": "test/nomalloc.cpp"
    }
  ]
}
