)]}'
{
  "commit": "600262e8f8d855c361bc4df039d261f54239da33",
  "tree": "110b54e2eb31d0bf620ae712977187733bdfb54c",
  "parents": [
    "4ffec20a4400197c015fe7bbdb3a3836265d46a0"
  ],
  "author": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Wed Aug 30 00:06:39 2017 -0700"
  },
  "committer": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Mon Sep 25 17:44:15 2017 +0000"
  },
  "message": "Delete cost and loss functions when not in use.\n\nDelete CostFunctions and LossFunctions when there are no more\nResidualBlocks referring to them. This is done by maintaining\na map with reference counts for CostFunctions and\nLossFunctions.\n\nThe same maps are also used at the time of the destruction\nof the ProblemImpl object itself. Previously vectors of these\nobjects were constructed, uniqed and the objects destroyed.\n\nThe update to the maps increases the cost of calling AddResidualBlock,\nthis has been mitigated, actually making AddResidualBlock faster, by\nreusing a temporary vector rather than allocating one on the stack\nevery time.\n\nChange-Id: I28b5287511713d28069ae428e2ff69224c0d03b4\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4088079c2c42b54548cfa1eb939ba9db04e2ea56",
      "old_mode": 33188,
      "old_path": "internal/ceres/problem_impl.cc",
      "new_id": "07da5501afb98097c5f186a26f2c81588a52917d",
      "new_mode": 33188,
      "new_path": "internal/ceres/problem_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "a4689c362f66c30ae2ad86b9154c9b54e1501ff8",
      "old_mode": 33188,
      "old_path": "internal/ceres/problem_impl.h",
      "new_id": "b7f258c02ac40b112feb642c3a42c0cb64a973b0",
      "new_mode": 33188,
      "new_path": "internal/ceres/problem_impl.h"
    },
    {
      "type": "modify",
      "old_id": "08d4b0484f89850836326ca36745e64c3a7309f1",
      "old_mode": 33188,
      "old_path": "internal/ceres/problem_test.cc",
      "new_id": "826e2c28c4652647e0abf9dc90272ea543ad5456",
      "new_mode": 33188,
      "new_path": "internal/ceres/problem_test.cc"
    },
    {
      "type": "modify",
      "old_id": "9a123cf132ea4052ea5625cc02dedf9e8d2127e0",
      "old_mode": 33188,
      "old_path": "internal/ceres/residual_block.cc",
      "new_id": "f73d54f6e80b1db7e1749fb36bae04933dad6c2d",
      "new_mode": 33188,
      "new_path": "internal/ceres/residual_block.cc"
    }
  ]
}
