)]}'
{
  "commit": "3a71c1ec34512f87e62f57abed1fd685b33265f9",
  "tree": "2d5f05705d6f8bb6ed3c81a6c9f01df39eefedfb",
  "parents": [
    "03f8c2353b4a04678e11b2d39b839fcc6169fc95"
  ],
  "author": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Thu May 17 08:37:33 2012 -0700"
  },
  "committer": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Thu May 17 08:37:33 2012 -0700"
  },
  "message": "StateUpdatingCallback was being initialized with the wrong array.\n\nStateUpdatingCallback updates the user\u0027s parameter blocks in\nevery iteration if the user so desires. The callback depends\non having access to an array that the minimizer is using internally\nto do all the work. This is probably poor design.\n\nAs a consequence of this design, it is easy to initialize the\ncallback with the wrong array, which was the case here. It was\nbeing initialized with the array of initial parameters, which the\nminimizer does not touch, rather than the array final_parameters,\nwhich just happens to the one in which the Minimizer does all\nthe work.\n\nTesting this change is a pain, because nothing is wrong with the\nCallback object, but rather the way it was being instantiated by\nSolverImpl, and the only way to test would be to test the whole\nSolve call.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "834ec0db9459cf4a28074ce2ed7154d86f4ba102",
      "old_mode": 33188,
      "old_path": "internal/ceres/solver_impl.cc",
      "new_id": "2ec3dee72b12f72f32c13d03ad486aa74d3a66cb",
      "new_mode": 33188,
      "new_path": "internal/ceres/solver_impl.cc"
    }
  ]
}
