)]}'
{
  "commit": "e1beb13923ede3a4b6bd2ec31fd7c6f1d1eb591b",
  "tree": "a760475e8e7e72c3a2b37eb68963ed72d6ba1e17",
  "parents": [
    "980bfe77e13ca4746415d51f639ccb76622c8842"
  ],
  "author": {
    "name": "Vitaly Goldshteyn",
    "email": "goldvitaly@google.com",
    "time": "Wed Oct 21 12:23:43 2026 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Wed Oct 21 12:24:48 2026 -0700"
  },
  "message": "Share the slot transfer code between the cold paths that move elements to new positions in raw_hash_set.cc to reduce binary size.\n\n`DecodeAndInsertImpl` (three instantiations, one per probed item encoding), `ProcessProbedMarkedElements`, and `FindNewPositionsAndTransferSlots` all did the same thing for each element: find the first non-full slot in the probe sequence, set its control byte, unpoison it, and transfer the slot into it. Only the way the hash is obtained differed (decoded from the probed item vs. recomputed from the slot).\n\nExtract this into a single out-of-line `TransferSlotToNewPosition` that takes `h1` and `h2` and call it from all three loops. The control bytes are passed explicitly so that the function can also be used while `CommonFields` still stores the SOO data in place of the control pointer. All callers are cold (growth of the probed elements that did not fit into a group, rehash, and reserve).\n\nThe type-erased code in `raw_hash_set.cc` shrinks by 762 bytes (-3.8%) in optimized builds.\n\nPiperOrigin-RevId: 1004139833\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "82d178002db82ec93ee893961956c31d3027162c",
      "old_mode": 33188,
      "old_path": "absl/container/internal/raw_hash_set.cc",
      "new_id": "82ec819b1756a6c963536760556a7e387478715a",
      "new_mode": 33188,
      "new_path": "absl/container/internal/raw_hash_set.cc"
    }
  ]
}
