)]}'
{
  "commit": "54284c12607e2818293157cd76d29d03a36bfd68",
  "tree": "7bb9bac33ead1600fd68800c9ad2fb7ef696632e",
  "parents": [
    "4a17a836d84c3946e04ffb94fc21441979367d63"
  ],
  "author": {
    "name": "Brett Wilson",
    "email": "brettw@chromium.org",
    "time": "Sun Jan 02 15:11:45 2022 -0800"
  },
  "committer": {
    "name": "Commit Bot",
    "email": "commit-bot@chromium.org",
    "time": "Thu Jan 06 19:32:54 2022 +0000"
  },
  "message": "Make error information optional.\n\nGN makes a lot of Err objects. In a normal run, all of these will be\nempty (this indicates success). But an empty Err object has a Location\n(1 pointer and 2 ints), a Label (4 atoms and a size_t), 2 std::vectors,\nand 2 std::strings. All of these need default initializing every time\nand take space.\n\nThis patch converts the \"error set\" state to be in a separate\ndynamically created object. An empty Err is now thee size of a pointer\nand is initialized as a single pointer set.\n\nThis improves GN runtime on a slow MacBook by about 4% (16235-\u003e15620ms).\n\nChange-Id: I847944bc2be654cc391b4f161b2583959b18e4a3\nReviewed-on: https://gn-review.googlesource.com/c/gn/+/12720\nReviewed-by: David Turner \u003cdigit@google.com\u003e\nCommit-Queue: Brett Wilson \u003cbrettw@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "68cb046e6c08951aed81eaf8637aa0066dae7df5",
      "old_mode": 33188,
      "old_path": "src/gn/err.cc",
      "new_id": "aeeb9212804bf842a1978e5c4ff02f3d70e271b6",
      "new_mode": 33188,
      "new_path": "src/gn/err.cc"
    },
    {
      "type": "modify",
      "old_id": "f9a7d765095d4a5ec824d89a0f1a6e865eb24903",
      "old_mode": 33188,
      "old_path": "src/gn/err.h",
      "new_id": "efccf0bdb33740b9b9effc01b6bf9b37c563f902",
      "new_mode": 33188,
      "new_path": "src/gn/err.h"
    },
    {
      "type": "modify",
      "old_id": "af10a6eec94404e8d322b4937c08f2892b68b20c",
      "old_mode": 33188,
      "old_path": "src/gn/setup_unittest.cc",
      "new_id": "370f7226c88baa2d694ea5586b04bdd6b5cb3061",
      "new_mode": 33188,
      "new_path": "src/gn/setup_unittest.cc"
    }
  ]
}
