)]}'
{
  "commit": "2777920a3de8569153f47dea26212bbf5355a90a",
  "tree": "96f07400701d94601255464e17b299bd9bfcfc59",
  "parents": [
    "d99b5ba1b633c8e2d05ee9b22ace14a37bc9626f"
  ],
  "author": {
    "name": "Protobuf Team Bot",
    "email": "protobuf-github-bot@google.com",
    "time": "Wed Nov 04 04:15:26 2026 -0800"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Wed Nov 04 04:46:15 2026 -0800"
  },
  "message": "Move ReflectionData and DescriptorTable out of writable .data into .data.rel.ro and .bss.\n\nPer-message `ReflectionData` (40 B) and per-file `DescriptorTable` (88 B) previously lived in writable `.data` because of mutable lazy-initialization fields, mixing relocated pointers with zero-initialized state in `.data`:\n1. Separate the two mutable reflection pointers (`reflection`, `descriptor`) into a zero-initialized `ReflectionState` (16 B in `.bss`), return `\u0026kDescriptorMethods` directly from `ClassData::descriptor_methods()`, and split `ReflectionDataWithTracker` (24 B) from standard `ReflectionData` (16 B in `.data.rel.ro`, gated by `ClassData::has_get_metadata_tracker_`). This shrinks `file_reflection_data` in `.data.rel.ro` from 40 B to 16 B per message (-24 B and -1 relocation per message) and moves the mutable 16 B state to demand-zero `.bss`.\n2. Move `DescriptorTable::is_initialized` into `DescriptorTableOnce` alongside `absl::once_flag` in `.bss` and omit `file_level_service_descriptors` from `DescriptorTable` (computing service descriptors on demand from `FileDescriptor::service(index)` via `GetServiceDescriptor`), shrinking `DescriptorTable` from 88 B to 80 B and moving it from writable `.data` to `const` `.data.rel.ro`.\n\nPiperOrigin-RevId: 1013736367\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b10ec37ea072ecdf85f3aabd3e48e598d1d43d5b",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/class_data.h",
      "new_id": "90d86042300fa4743e459aedb8fb581c75f36fc5",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/class_data.h"
    },
    {
      "type": "modify",
      "old_id": "07072ced6a82a98c0daf44a5c9cfa85eb2f831b4",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/compiler/cpp/file.cc",
      "new_id": "7a2cb9ff5dfe88b9b7c2004cdd2ebc641b31ed61",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/compiler/cpp/file.cc"
    },
    {
      "type": "modify",
      "old_id": "dc71b16bffb44ef8323fc819ae83ebe028541e01",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/compiler/cpp/service.cc",
      "new_id": "69a567488c01fee142f437e7c2c6234c23e54951",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/compiler/cpp/service.cc"
    },
    {
      "type": "modify",
      "old_id": "bd41da8ae77b589d4f20cba50ad0a3e00da93573",
      "old_mode": 33261,
      "old_path": "src/google/protobuf/compiler/csharp/c_sharp_features.pb.cc",
      "new_id": "46e23d19d39e9dfe6f186e28463b7b59f245e6ec",
      "new_mode": 33261,
      "new_path": "src/google/protobuf/compiler/csharp/c_sharp_features.pb.cc"
    },
    {
      "type": "modify",
      "old_id": "2b1797e59a9e181fe1acccef6137c8c7bde59ee4",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/compiler/java/java_features.pb.cc",
      "new_id": "1a2a1c01612c7243457e52a5a5e1b49235ae11cb",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/compiler/java/java_features.pb.cc"
    },
    {
      "type": "modify",
      "old_id": "1287e1629fe94ae3fc84d49ba46e49f3169b4de4",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/compiler/plugin.pb.cc",
      "new_id": "d25230396046e806c3548169b48428fe27ab2db9",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/compiler/plugin.pb.cc"
    },
    {
      "type": "modify",
      "old_id": "2125817d19a067686d3903755abb85a4ec46a2d9",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/cpp_features.pb.cc",
      "new_id": "6024c87ee2295cda89f8fdfc4afc1b65a2f0088a",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/cpp_features.pb.cc"
    },
    {
      "type": "modify",
      "old_id": "1f48f6e5d7e2eb1b72d8c719326abcce8a5a5b92",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/cpp_file_options.pb.cc",
      "new_id": "b24916a886b9bf96ef68ef706b678dea450ba354",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/cpp_file_options.pb.cc"
    },
    {
      "type": "modify",
      "old_id": "f274510d4edef209b4c91aa86721e9fed1f43e8b",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/descriptor.pb.cc",
      "new_id": "1d2ce851076c3083f4aac25bf4c7ef65de65b6c8",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/descriptor.pb.cc"
    },
    {
      "type": "modify",
      "old_id": "82b76edfb760ec5b433a0e0b1674d1f3bf85a11d",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/dynamic_message.cc",
      "new_id": "2332c1a8a7b3f25271be98d2d4f525dd0321cb2d",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/dynamic_message.cc"
    },
    {
      "type": "modify",
      "old_id": "6a4724649f8925c4026d6691ff36d8f8d2e7006d",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/generated_message_reflection.cc",
      "new_id": "b2b822dc51490219ace0dc7c431a193bca3497db",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/generated_message_reflection.cc"
    },
    {
      "type": "modify",
      "old_id": "864df35f201b1732f4004cc224b2b349adc5f0f5",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/generated_message_reflection.h",
      "new_id": "e00b4abb7ca8f1fe150aeeda1e2dda089f46f153",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/generated_message_reflection.h"
    },
    {
      "type": "modify",
      "old_id": "75f3a42c63c085fc5f58d8c79442059db34f67fb",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/json_enumvalue_options.pb.cc",
      "new_id": "5ca546f80c5c971914344f18b5a2cca736100f1d",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/json_enumvalue_options.pb.cc"
    },
    {
      "type": "modify",
      "old_id": "41c642359d4ab9c478f76345f62e54579890b393",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/message.cc",
      "new_id": "298996be6ac39b76d25b07097930327354abdc61",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/message.cc"
    }
  ]
}
