)]}'
{
  "commit": "7c5d1002f4de08ca336a1bfee12272f875a60a66",
  "tree": "7aa7d2a97bba1c1afd4a9cb3f963e8b296c283b8",
  "parents": [
    "14c9f9461f3571b4c214bf65fd7382bcacfbc6eb"
  ],
  "author": {
    "name": "David \u0027Digit\u0027 Turner",
    "email": "digit@google.com",
    "time": "Fri Apr 03 12:40:58 2020 +0200"
  },
  "committer": {
    "name": "Commit Bot",
    "email": "commit-bot@chromium.org",
    "time": "Mon May 04 19:13:18 2020 +0000"
  },
  "message": "Speed up generation of input files list.\n\nThe list of all input files used by a project is very large\nfor projects like Chromium and especially Fuchsia.\n\nThis CL refactors the InputFileManager::GetAllPhysicalInputFiles()\nmethod in order to avoid un-necessary memory allocations and\nstd::set\u003c\u003e operations.\n\nThis is done by introducing a new VectorSetSorter class in\n\"gn/vector_utils.h\" that can be used to efficiently merge\nand sort sets of items with minimal memory usage.\n\nChange-Id: I2e4b22c7294e93ffaec28dda765d371b3f0cc301\nReviewed-on: https://gn-review.googlesource.com/c/gn/+/7941\nCommit-Queue: David Turner \u003cdigit@google.com\u003e\nReviewed-by: Scott Graham \u003cscottmg@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "582562c4562de2f5431c0864166bdc20e579d80f",
      "old_mode": 33261,
      "old_path": "build/gen.py",
      "new_id": "8083aacc71e32c9b2a10cde102a6ea1b0b8528f0",
      "new_mode": 33261,
      "new_path": "build/gen.py"
    },
    {
      "type": "modify",
      "old_id": "1c1fe019fd4b90e454618848bcd435be2d09f470",
      "old_mode": 33188,
      "old_path": "src/gn/input_file_manager.cc",
      "new_id": "7e0d7ee79934b79a5c1bc51e32c68ef9019aee6d",
      "new_mode": 33188,
      "new_path": "src/gn/input_file_manager.cc"
    },
    {
      "type": "modify",
      "old_id": "f5ac565b0c8e47afd9aef98a4683d111bf8a36cb",
      "old_mode": 33188,
      "old_path": "src/gn/input_file_manager.h",
      "new_id": "d5e55533074fff84407445e32725fffdd8e824a8",
      "new_mode": 33188,
      "new_path": "src/gn/input_file_manager.h"
    },
    {
      "type": "modify",
      "old_id": "7c04ea198dd24fd97279558522c1fdd64e4eda1b",
      "old_mode": 33188,
      "old_path": "src/gn/json_project_writer.cc",
      "new_id": "c478379cbe98bccf1b1f1f2595e9d2cc235f8ccd",
      "new_mode": 33188,
      "new_path": "src/gn/json_project_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "12ccaa79f7fb099fdd3a0907c5d7942f6a3328d0",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_build_writer.cc",
      "new_id": "b5b491bf7f3cc2e297d19d59fcf82b22ab497f9a",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_build_writer.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8366dda173e6bcdbcb25eff61324cad694cee835",
      "new_mode": 33188,
      "new_path": "src/gn/vector_utils.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c7cee012eff66d9ba494ddadbfcc26b538bb2732",
      "new_mode": 33188,
      "new_path": "src/gn/vector_utils_unittest.cc"
    }
  ]
}
