)]}'
{
  "commit": "9e17378429f1508241b75bcd412ad37a35d5ed44",
  "tree": "bce2a0244fbb748a6712c04330fa7bf9f83f18f9",
  "parents": [
    "17e3863f2cd4fa5af07e6884823f86db6d43799f"
  ],
  "author": {
    "name": "Matt Stark",
    "email": "msta@google.com",
    "time": "Tue Jun 16 16:21:02 2026 +1000"
  },
  "committer": {
    "name": "gn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "gn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue Jun 16 21:25:34 2026 -0700"
  },
  "message": "Improve pointer stability of OutputFile objects.\n\nDue to C++\u0027s \"Small string optimization\", a moved-from string\ninvalidates any string_views pointing to it. Hence, calling append on a vector\nof OutputFiles invalidates all string_views.\n\nBy changing this to a vector\u003cchar\u003e, we disable small string\noptimization, which wasn\u0027t really helping us anyway, since OutputFiles\nalmost universally are not small enough to fit into 23 bytes.\n\nThis results in a very minor ~2% performance improvement when\nbenchmarking running `gn gen` on chrome, though this could be statistically\ninsignificant - the main reason to do this is the pointer stability.\n\nBug: None\nChange-Id: I6708dba71db71af6e6d2542e6292a90a6a6a6964\nReviewed-on: https://gn-review.googlesource.com/c/gn/+/23180\nCommit-Queue: Matt Stark \u003cmsta@google.com\u003e\nReviewed-by: Takuto Ikuta \u003ctikuta@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "90d1b1e7e20ce10f78064bc76a7bcfbc545fb8d9",
      "old_mode": 33188,
      "old_path": "src/gn/command_outputs.cc",
      "new_id": "a1db93979a456a7d8227de8939ec3543b22a3b7a",
      "new_mode": 33188,
      "new_path": "src/gn/command_outputs.cc"
    },
    {
      "type": "modify",
      "old_id": "1823520d0874a2251342fa28b0b49995ab991f0b",
      "old_mode": 33188,
      "old_path": "src/gn/desc_builder.cc",
      "new_id": "143726d2e2b18c1423e35d6a1be31f5c07a157e4",
      "new_mode": 33188,
      "new_path": "src/gn/desc_builder.cc"
    },
    {
      "type": "modify",
      "old_id": "ec1d09366fbec3c7e5f3d065371964ca1bba8826",
      "old_mode": 33188,
      "old_path": "src/gn/filesystem_utils.cc",
      "new_id": "e7244e359e78b32a97e30ff555eb80155abcf656",
      "new_mode": 33188,
      "new_path": "src/gn/filesystem_utils.cc"
    },
    {
      "type": "modify",
      "old_id": "590f9e34d418431dafe4b4f9523b99c1284395a5",
      "old_mode": 33188,
      "old_path": "src/gn/filesystem_utils.h",
      "new_id": "091a37c6de9d61d9e8bc578c4e3f9e7e81acaf22",
      "new_mode": 33188,
      "new_path": "src/gn/filesystem_utils.h"
    },
    {
      "type": "modify",
      "old_id": "b075df3797461fcb9cfbc98eab661f6411969fa2",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_binary_target_writer.cc",
      "new_id": "c4bbd2be71718794967741bb65f5238c1d7bdeec",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_binary_target_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "d8d7c3920dd0e0089a4abe4823d25d87c05dc19d",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_build_writer.cc",
      "new_id": "12e323f4fe6a5767910e72ff905201da6dd62e10",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_build_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "812803ec2f422cf1e8e8e8cd936638762dc4ba2b",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_c_binary_target_writer.cc",
      "new_id": "6d870da24020031c9d73b2ea48631016b5fa6a55",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_c_binary_target_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "ca305e6aed9c655adc74407148dcd3c6773efc4b",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_create_bundle_target_writer.cc",
      "new_id": "5b9e733d6e125a2222250c7f1afa4641b7e57873",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_create_bundle_target_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "a691ae35614cadbd82c7515d81a9736e774845c8",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_target_command_util.cc",
      "new_id": "928851b44709b26f41811a43d6e2c51cbcbf3451",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_target_command_util.cc"
    },
    {
      "type": "modify",
      "old_id": "1ec2e336f6ccca02e4ecacf6728a6a686ab4e774",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_target_command_util.h",
      "new_id": "09b78c63d66c314b920a30c6bb51ce16485566e6",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_target_command_util.h"
    },
    {
      "type": "modify",
      "old_id": "affc7d6fd4bdf2ebd34eb43738f71d620d37610e",
      "old_mode": 33188,
      "old_path": "src/gn/ninja_target_writer.cc",
      "new_id": "825439a69a2084afd8ff6f54d90add6a9379514d",
      "new_mode": 33188,
      "new_path": "src/gn/ninja_target_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "ad25afa643c2bfd28fe8e6e6631fdf7696c8a6e8",
      "old_mode": 33188,
      "old_path": "src/gn/output_file.cc",
      "new_id": "6028ad117027b0282eb326fc95a5b7ba63454e4a",
      "new_mode": 33188,
      "new_path": "src/gn/output_file.cc"
    },
    {
      "type": "modify",
      "old_id": "e3e79a83c2bb3744f3e23d1e75fd191cfe4396aa",
      "old_mode": 33188,
      "old_path": "src/gn/output_file.h",
      "new_id": "9ae8cdfe35008f1d15a500a527b5ea6de55517a5",
      "new_mode": 33188,
      "new_path": "src/gn/output_file.h"
    },
    {
      "type": "modify",
      "old_id": "db5a8ed898fdf50ffce7cbc87f0a31a471e87903",
      "old_mode": 33188,
      "old_path": "src/gn/resolved_target_data.cc",
      "new_id": "bce9839cdc1e0ca7ec8b69af34d6025619ca7856",
      "new_mode": 33188,
      "new_path": "src/gn/resolved_target_data.cc"
    },
    {
      "type": "modify",
      "old_id": "26bbda9fe2a4a0983ff8ba38651e4384bfce4f92",
      "old_mode": 33188,
      "old_path": "src/gn/runtime_deps.cc",
      "new_id": "1eacee50cd607946a24a85a37f4d0d91ebbca277",
      "new_mode": 33188,
      "new_path": "src/gn/runtime_deps.cc"
    },
    {
      "type": "modify",
      "old_id": "baa14e4108671574f17b4a29a6ed3f05131d6c4b",
      "old_mode": 33188,
      "old_path": "src/gn/runtime_deps_unittest.cc",
      "new_id": "5c1a28169e1cd8e370cd0e46681310de9069a505",
      "new_mode": 33188,
      "new_path": "src/gn/runtime_deps_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "c9a36c959acb1374caedd4f4d78f408ecf0f6faa",
      "old_mode": 33188,
      "old_path": "src/gn/settings.cc",
      "new_id": "173159fa7988ab80ec9544b66f2b89648a5902c5",
      "new_mode": 33188,
      "new_path": "src/gn/settings.cc"
    },
    {
      "type": "modify",
      "old_id": "a1f0254f3f09a7c6a14eca8563c6e6db398361b5",
      "old_mode": 33188,
      "old_path": "src/gn/substitution_writer.cc",
      "new_id": "76a5a5c05a349e5c1f7cc44f8135c96cc38395a9",
      "new_mode": 33188,
      "new_path": "src/gn/substitution_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "91cb72c6a857d9a710511dedfe636412c5dbad86",
      "old_mode": 33188,
      "old_path": "src/gn/target.cc",
      "new_id": "0048341c15423d0ab115681b43697b610cd828c8",
      "new_mode": 33188,
      "new_path": "src/gn/target.cc"
    },
    {
      "type": "modify",
      "old_id": "243fedd50ab5a8041e0380ade3f0cd197fefc95c",
      "old_mode": 33188,
      "old_path": "src/gn/visual_studio_writer.cc",
      "new_id": "d660be840495139a4308ce6733fb5a09d52b750b",
      "new_mode": 33188,
      "new_path": "src/gn/visual_studio_writer.cc"
    }
  ]
}
