)]}'
{
  "commit": "0817afa577428da457b6482c027d7202cd01fcbf",
  "tree": "10bd720e46d0c48d43f1c4cdc711a72c363161a1",
  "parents": [
    "0035961837fbcfe875d855744b3eda4fd2eefb43"
  ],
  "author": {
    "name": "Matt Stark",
    "email": "msta@google.com",
    "time": "Tue Oct 13 12:42:14 2026 +1100"
  },
  "committer": {
    "name": "gn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "gn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Mon Oct 12 19:36:56 2026 -0700"
  },
  "message": "Make StringAtom use pointer equality and hashing\n\nStringAtom previously used string equality and hashing. The rationale\nwas that it would ensure consistent ordering with standard containers.\n* This makes perfect sense for ordered containers, as operator\u003c sorting\n  lexicographically both makes sense and is frequently used.\n* This makes zero sense for operator\u003d\u003d, as pointers can be equal iff\n  contents are equal, so whether it uses string or pointer equality is\n  an implementation detail.\n* This also makes no sense for hashing, as the C++ standard states that\n  hashes are not required to be deterministic, and thus may be seeded\n  upon binary start (though in practice this is not usually the case).\n\nChange-Id: I58eeba92bba7723f8a9792d78b5ab5de6a6a6964\nReviewed-on: https://gn-review.googlesource.com/c/gn/+/27480\nReviewed-by: Takuto Ikuta \u003ctikuta@google.com\u003e\nCommit-Queue: Matt Stark \u003cmsta@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a831804baaafc12be0fc5a6f78981c28f7eb0dd8",
      "old_mode": 33188,
      "old_path": "src/gn/label.h",
      "new_id": "4ce18825630f9ea936bb68f812f1d277477b3546",
      "new_mode": 33188,
      "new_path": "src/gn/label.h"
    },
    {
      "type": "modify",
      "old_id": "e98692522a72f34283dae2d308bbd83448b48a31",
      "old_mode": 33188,
      "old_path": "src/gn/source_dir.h",
      "new_id": "26ca6b75e626592fea2c8988ea9817323a0240ab",
      "new_mode": 33188,
      "new_path": "src/gn/source_dir.h"
    },
    {
      "type": "modify",
      "old_id": "b2068a2835cd39cf7a22834884fd167a8372b359",
      "old_mode": 33188,
      "old_path": "src/gn/source_file.h",
      "new_id": "e1e6ec5d9587e50b45664b462822b77139357e4c",
      "new_mode": 33188,
      "new_path": "src/gn/source_file.h"
    },
    {
      "type": "modify",
      "old_id": "51aa8d573a7f5fe28fa5f62486f4c9fc6bb1ef45",
      "old_mode": 33188,
      "old_path": "src/gn/string_atom.h",
      "new_id": "2c9b16ca0d9c49949a0af2c92288bbcd1964b356",
      "new_mode": 33188,
      "new_path": "src/gn/string_atom.h"
    },
    {
      "type": "modify",
      "old_id": "0e820a6fd6d72c687045c25501e2f3d905965f06",
      "old_mode": 33188,
      "old_path": "src/gn/string_atom_unittest.cc",
      "new_id": "3d9227fd7da9083fe521fcab1e188e297fe81ba3",
      "new_mode": 33188,
      "new_path": "src/gn/string_atom_unittest.cc"
    }
  ]
}
