)]}'
{
  "commit": "e911db19aa5947def363513cd6a065534719bc94",
  "tree": "61056b5b85e095998c3048d8bbd5dce2f36fb708",
  "parents": [
    "19dee8d59174a8e6bf7453baacf6e1913e0e7642"
  ],
  "author": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Sat May 31 23:17:40 2014 -0700"
  },
  "committer": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Sat May 31 23:21:44 2014 -0700"
  },
  "message": "Fix a memory leak in program_test.cc\n\nProgram::RemoveFixedBocks will happily drop all fixed parameter\nand residual blocks. So if it is called on the one and only copy\nof a program, like it was being called in the tests, this will\nresult in a memory leak because we would have lost track of the\nfixed parameter and residual blocks.\n\nThis is not a problem in actual usage since CreateReducedProgram\nwill first create a copy of the program and then remove the fixed\nblocks from it. But in the tests, we were creating a ProblemImpl\nand then calling RemovedFixedBlocks on the underlying program\nobject causing a memory leak.\n\nThe fix to make a copy in the tests and then work on that. I\nhave also added a warning in program.h\n\nChange-Id: I03a5f7a7f5453aec848451a5c0ace4b065f71e9b\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7f2fc9d2b904819ae9c98f5279fd82fd65fa8c52",
      "old_mode": 33188,
      "old_path": "internal/ceres/program.h",
      "new_id": "6b9190d124d07d4a73ed5b86ae2a012ebbe8ecff",
      "new_mode": 33188,
      "new_path": "internal/ceres/program.h"
    },
    {
      "type": "modify",
      "old_id": "79adfa67e25b1f47a9de37c94c34b5cd9a1155cc",
      "old_mode": 33188,
      "old_path": "internal/ceres/program_test.cc",
      "new_id": "f273872ba125b4069aa359425afd0189f765453c",
      "new_mode": 33188,
      "new_path": "internal/ceres/program_test.cc"
    }
  ]
}
