)]}'
{
  "commit": "e0afadf7a743d5b14737bd454df45d5f1caf0d23",
  "tree": "6bf4c0f1de2eb07dbbaa5c5dc25e172c0b6fbfd2",
  "parents": [
    "2c3beac5f748c8eb581c14de5a2769a08762f0e8"
  ],
  "author": {
    "name": "David \u0027Digit\u0027 Turner",
    "email": "digit@google.com",
    "time": "Thu Nov 25 15:39:49 2021 +0100"
  },
  "committer": {
    "name": "Commit Bot",
    "email": "commit-bot@chromium.org",
    "time": "Fri Dec 03 16:57:09 2021 +0000"
  },
  "message": "Introduce TargetSet type\n\nHandling sets of target pointers is a very performance-critical\noperation in GN, and this is currently being done by instances\nof the std::set\u003cconst Target*\u003e type, which is slow and memory\nhungry.\n\nThis CL introduces the TargetSet type as an alias to\nstd::set\u003cconst Target*\u003e, and updates the source code to use it.\n\nA future CL will change the TargetSet implementation to a better\none after this one.\n\nChange-Id: I6e01a14d4de2d238818c8c9dd963cda5cf9e66b8\nReviewed-on: https://gn-review.googlesource.com/c/gn/+/12581\nCommit-Queue: David Turner \u003cdigit@google.com\u003e\nReviewed-by: Brett Wilson \u003cbrettw@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7bb200c0d18a964648d66f00dc81fd0f6bfc1f16",
      "old_mode": 33188,
      "old_path": "src/gn/analyzer.cc",
      "new_id": "69fbe7d637d3c4bfd7548fbb415672d564dac339",
      "new_mode": 33188,
      "new_path": "src/gn/analyzer.cc"
    },
    {
      "type": "modify",
      "old_id": "2ffdb527038e8ce49e4003c8e85160b5f4be583c",
      "old_mode": 33188,
      "old_path": "src/gn/analyzer.h",
      "new_id": "77aed2a39935fd8883d56e63a2031ba06ef3f0f9",
      "new_mode": 33188,
      "new_path": "src/gn/analyzer.h"
    },
    {
      "type": "modify",
      "old_id": "6ee5fe2fdcbde83d55589cc0622762ebce25f1d5",
      "old_mode": 33188,
      "old_path": "src/gn/command_meta.cc",
      "new_id": "27897e2d0ef16d5adcce378e7bdf32cdfc1a33a0",
      "new_mode": 33188,
      "new_path": "src/gn/command_meta.cc"
    },
    {
      "type": "modify",
      "old_id": "a82c90d9df2a0a3bd4bf2b57fca722704f9eb24c",
      "old_mode": 33188,
      "old_path": "src/gn/command_path.cc",
      "new_id": "b9ed7802ab363eaccf5cc9942a0cecd6fe7f0371",
      "new_mode": 33188,
      "new_path": "src/gn/command_path.cc"
    },
    {
      "type": "modify",
      "old_id": "dc27f5660d661033f49b1b1887511142ec846b36",
      "old_mode": 33188,
      "old_path": "src/gn/command_refs.cc",
      "new_id": "7fcdb26db1d2d3a05da86531507c38ceb02ae876",
      "new_mode": 33188,
      "new_path": "src/gn/command_refs.cc"
    },
    {
      "type": "modify",
      "old_id": "da6514b3f7ecc5a240c45912b38a16ec1dca02e9",
      "old_mode": 33188,
      "old_path": "src/gn/commands.cc",
      "new_id": "24a16b1357b90ecb87793c92941d7326cb284b6f",
      "new_mode": 33188,
      "new_path": "src/gn/commands.cc"
    },
    {
      "type": "modify",
      "old_id": "54a1a9dc8c3a979be89e1ecd26d807dc2c18eac8",
      "old_mode": 33188,
      "old_path": "src/gn/commands.h",
      "new_id": "4824b7904c2791a3011cacba067a99150440d2c7",
      "new_mode": 33188,
      "new_path": "src/gn/commands.h"
    },
    {
      "type": "modify",
      "old_id": "c0b94d1f15e1ba2a60ab90a26b6dc8a083b8e0cd",
      "old_mode": 33188,
      "old_path": "src/gn/compile_commands_writer.cc",
      "new_id": "1aa2d1a039d4c5f5a2c721adaad56cdb37bb38b7",
      "new_mode": 33188,
      "new_path": "src/gn/compile_commands_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "adc2986d462f0b02b16de06c2db886c92fa05c7a",
      "old_mode": 33188,
      "old_path": "src/gn/compile_commands_writer.h",
      "new_id": "03006c8a9eba50877b3ea33d3d699d57af69aa5e",
      "new_mode": 33188,
      "new_path": "src/gn/compile_commands_writer.h"
    },
    {
      "type": "modify",
      "old_id": "bcd30f3477685470f57a763fbcefee45cdf9db40",
      "old_mode": 33188,
      "old_path": "src/gn/desc_builder.cc",
      "new_id": "957fde0940be745a08c9076ce8c7055434d508f9",
      "new_mode": 33188,
      "new_path": "src/gn/desc_builder.cc"
    },
    {
      "type": "modify",
      "old_id": "a8aad90dd7779c9ab6fe1af1c173df6335e8271a",
      "old_mode": 33188,
      "old_path": "src/gn/json_project_writer.cc",
      "new_id": "f5f7f5ae7be3e2a951991e2d55b2ea953c113d27",
      "new_mode": 33188,
      "new_path": "src/gn/json_project_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "19011cfeb4a852ae87ff495866dc24734a786c84",
      "old_mode": 33188,
      "old_path": "src/gn/metadata_walk.cc",
      "new_id": "bb2675e4cafb74f2834cad51e69547540e237fff",
      "new_mode": 33188,
      "new_path": "src/gn/metadata_walk.cc"
    },
    {
      "type": "modify",
      "old_id": "011ed0747b1320df56fad71b15fb14c69c44bcf8",
      "old_mode": 33188,
      "old_path": "src/gn/metadata_walk.h",
      "new_id": "2b659d6f5481481973533e4b5e0eeee79169bfd3",
      "new_mode": 33188,
      "new_path": "src/gn/metadata_walk.h"
    },
    {
      "type": "modify",
      "old_id": "4fcb31d73732d1ab5e2201d11eb71afc8eb3e526",
      "old_mode": 33188,
      "old_path": "src/gn/metadata_walk_unittest.cc",
      "new_id": "9f83fa37ee03a44f250467e760a47564c3d1a103",
      "new_mode": 33188,
      "new_path": "src/gn/metadata_walk_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "e1ad19fff362d370d39edd32d3e6aa44d6757a6f",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_generated_file_target_writer.cc",
      "new_id": "994f3229566b447008aa905cdc9c7f0d635c5a12",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_generated_file_target_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "e85400f51faab2fba578d3cdbe43c887b448c580",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_target_writer.cc",
      "new_id": "9ddebd988216cbf106c182df284e339827959869",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_target_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "b0fa05cd749720e5e74a82cf0017978114ba6387",
      "old_mode": 33188,
      "old_path": "src/gn/qt_creator_writer.cc",
      "new_id": "983bccb1f5cf7a412275052ac5c80132e9616fda",
      "new_mode": 33188,
      "new_path": "src/gn/qt_creator_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "4571ec123a6dfd645eee8e5986c46e48c86452bd",
      "old_mode": 33188,
      "old_path": "src/gn/qt_creator_writer.h",
      "new_id": "552e3006da9dad72e3732d44d5f19ec976fe1670",
      "new_mode": 33188,
      "new_path": "src/gn/qt_creator_writer.h"
    },
    {
      "type": "modify",
      "old_id": "5c5d453b9969f1ee3a59cadeadbdf18891524f17",
      "old_mode": 33188,
      "old_path": "src/gn/rust_project_writer.h",
      "new_id": "3fbdedb982964a3f2105aa07be62fa73249ad2dc",
      "new_mode": 33188,
      "new_path": "src/gn/rust_project_writer.h"
    },
    {
      "type": "modify",
      "old_id": "0d225b68931ca7cd59826e1e5db727d2c90b1b60",
      "old_mode": 33188,
      "old_path": "src/gn/target.cc",
      "new_id": "b9e58f337a4cb99f739fa485178a3fc5005d40c4",
      "new_mode": 33188,
      "new_path": "src/gn/target.cc"
    },
    {
      "type": "modify",
      "old_id": "ee5061b1c381ff3d8c6e102f7d7ff7be12db9248",
      "old_mode": 33188,
      "old_path": "src/gn/target.h",
      "new_id": "f87054805329ddd0f368f32ff65d0250c9b336bd",
      "new_mode": 33188,
      "new_path": "src/gn/target.h"
    },
    {
      "type": "modify",
      "old_id": "0dcff0c9d8cd1610b9cb0f4beb7683326df85139",
      "old_mode": 33188,
      "old_path": "src/gn/target_unittest.cc",
      "new_id": "f8cbcd1d877d10fcffc2a13c0ff02b1034fd3444",
      "new_mode": 33188,
      "new_path": "src/gn/target_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "19938cd5486d14d7800612c06ebda3df116790c8",
      "old_mode": 33188,
      "old_path": "src/gn/xcode_writer.cc",
      "new_id": "a71206c0004ebec3629d22c7a20eb3da3a82b7f0",
      "new_mode": 33188,
      "new_path": "src/gn/xcode_writer.cc"
    }
  ]
}
