)]}'
{
  "commit": "940c375a1ea168fdd90b2651a0edc6e59b7cf8cd",
  "tree": "8ef022098b2e6d2f83fc65d9dbdd1fb9db5c16c0",
  "parents": [
    "21d7873fb7a01c0163c869631971086dc92a3d82"
  ],
  "author": {
    "name": "Evan Brown CA",
    "email": "ezb@google.com",
    "time": "Fri Oct 16 13:52:41 2026 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Mon Oct 26 09:24:41 2026 -0700"
  },
  "message": "Assume that the control bytes don\u0027t alias `this` in `CommonFields::control()` for default allocators.\n\nWhen a type-erased function mutates control bytes (`SetCtrl`) or slots, the compiler cannot otherwise prove that the store through `ctrl` or a slot pointer does not clobber `CommonFields` metadata (`size_`, `capacity_`, `control_`, etc.), forcing it to reload metadata and `control_` from `CommonFields` on subsequent operations.\n\nFor tables using the default `std::allocator`, the backing array is always allocated separately from the `raw_hash_set` object itself, so `control()` and `this` live in separate storage. Moving `ABSL_SWISSTABLE_ASSUME_SEPARATE_STORAGE(ctrl, this)` from `raw_hash_set::control()` into `CommonFields::control\u003ckIsDefaultAlloc\u003e()` lets the compiler keep table metadata and `control()` in registers across control-byte and slot mutations in type-erased functions as well.\n\nTemplate `CommonFields::control()`, `CommonFields::slot_array()`, `CommonFields::single_non_soo_slot()`, and the out-of-line type-erased functions that call `CommonFields::control()` on `kIsDefaultAlloc` so that both inlined and type-erased operations benefit from the separate-storage assumption.\n\nPiperOrigin-RevId: 1001077844\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "baed44331890d428ac80df687a868adfd65ab364",
      "old_mode": 33188,
      "old_path": "absl/container/internal/raw_hash_set.cc",
      "new_id": "572827da715dc4f2f4235d771bba7718bb6f0d60",
      "new_mode": 33188,
      "new_path": "absl/container/internal/raw_hash_set.cc"
    },
    {
      "type": "modify",
      "old_id": "ba34be9d705ca6fb47b344fdf04948c7210b229f",
      "old_mode": 33188,
      "old_path": "absl/container/internal/raw_hash_set.h",
      "new_id": "a971c142dd5f4cf89e01476224075ec3ab95bcae",
      "new_mode": 33188,
      "new_path": "absl/container/internal/raw_hash_set.h"
    },
    {
      "type": "modify",
      "old_id": "65c8886761b1256d4e254f9b527881efeea36811",
      "old_mode": 33188,
      "old_path": "absl/container/internal/raw_hash_set_test.cc",
      "new_id": "c8b3626b000ee5169c73791686d50336a3ebb5f5",
      "new_mode": 33188,
      "new_path": "absl/container/internal/raw_hash_set_test.cc"
    }
  ]
}
