)]}'
{
  "commit": "1e376cd95506af60a27fd1b9cfa14e9f4f248389",
  "tree": "839ce477f8dd5dd805b5915701f9cfaa107fef54",
  "parents": [
    "d99b5ba1b633c8e2d05ee9b22ace14a37bc9626f"
  ],
  "author": {
    "name": "Clayton Knittel",
    "email": "cknittel@google.com",
    "time": "Tue Nov 03 16:17:57 2026 -0800"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Wed Nov 04 00:10:12 2026 -0800"
  },
  "message": "Cache the arena pointer in ParseContext.\n\nThis allows us to load the arena pointer from the parse context instead of the message being parsed. `MessageLite::GetArena` has a branch, while the new `ParseContext::arena` is a simple load.\n\nWe take special care to reload the arena pointer when descending to parse an already-allocated submessage of a field. It is possible for parent and child messages to live in different arenas due to `unsafe_arena_set_allocated` APIs and the like. This includes normal submessages, lazy submessages, and extensions, all of which have `UnsafeSetAllocated` methods or similar.\n\nCross-arena messages trees should be exceptionally rare. This is an anti-pattern, and is only possible if using the `unsafe_arena_*` APIs. In the submessage parsers in `TcParser`, we build-in the expectation that messages are on the same arena, and have a slow fallback if parsing a message on a different arena. This avoids 2 unnecessary exchanges of `ParseContext::arena_` every time we enter a submessage.\n\nPiperOrigin-RevId: 1013373359\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e30cba95ff5868231ae839b1fb64e3cf135345e8",
      "old_mode": 33188,
      "old_path": "python/google/protobuf/pyext/message.cc",
      "new_id": "24e4832995d69fac5c4fe091aa6e8afc953ddda9",
      "new_mode": 33188,
      "new_path": "python/google/protobuf/pyext/message.cc"
    },
    {
      "type": "modify",
      "old_id": "adadb96079cffbed1e8222c5b4cbffa5575a3739",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/BUILD.bazel",
      "new_id": "16b9740778ff4a4bcca27d3e7811469320be8244",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "2af3d48d1d3fe8fa6cbbf96694159c5e789b231d",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/arena.cc",
      "new_id": "fb3a95375dca43009a4167ac1325ea7b2eda05b9",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/arena.cc"
    },
    {
      "type": "modify",
      "old_id": "36604ca534f507acb4bb7d6408f8fa220a2852ec",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/arena.h",
      "new_id": "b06661411e451aa728fa201542d3ce1096d81aa6",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/arena.h"
    },
    {
      "type": "modify",
      "old_id": "3f91db1f74bed6122e2daabc233e434e18f9044e",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/arena_unittest.cc",
      "new_id": "95d9d7a15785634b6d7e35db108c4765b364c68e",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/arena_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "08be5ca6a8c0aa822e252f3e620c56a5db6be645",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/arenastring.cc",
      "new_id": "873f38be9030bfd1b26ed77cc7c99f82e02861c5",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/arenastring.cc"
    },
    {
      "type": "modify",
      "old_id": "ca752041cba924af8d4cd999b1745a5f0ed653c3",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/descriptor.cc",
      "new_id": "a4d55f95a4ec245cb307e242e6b6fec361940a5d",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/descriptor.cc"
    },
    {
      "type": "modify",
      "old_id": "82b76edfb760ec5b433a0e0b1674d1f3bf85a11d",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/dynamic_message.cc",
      "new_id": "80097a57e1f596fc7e8ea297d3b898b6572f1b7f",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/dynamic_message.cc"
    },
    {
      "type": "modify",
      "old_id": "bc310e9e5fa4bbd9bb7df37083763dba3129a70c",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/extension_set_inl.h",
      "new_id": "1a84717815d30349f5a6558a227d2c3e8ebdb15a",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/extension_set_inl.h"
    },
    {
      "type": "modify",
      "old_id": "e70f501b16f370606caa64622d8cc466b6ce88da",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/extension_set_unittest.cc",
      "new_id": "30809bc12c42c7360d3cbf7ac2b24ca66b35494c",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/extension_set_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "6a4724649f8925c4026d6691ff36d8f8d2e7006d",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/generated_message_reflection.cc",
      "new_id": "6ef1ec8dce20cc9077f825842c83209d5d9534a0",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/generated_message_reflection.cc"
    },
    {
      "type": "modify",
      "old_id": "17ddda6ab432e66b129b7933dc454cc095cbaafb",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/generated_message_tctable_impl.h",
      "new_id": "7a50394e705d4c7cbd96db326d82792bb51c1473",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/generated_message_tctable_impl.h"
    },
    {
      "type": "modify",
      "old_id": "ae9528f88eac33ada51f0a42dd5322c76901b6ce",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/generated_message_tctable_lite.cc",
      "new_id": "8473e414b58ffed48a6ffda7ab10080a81c35226",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/generated_message_tctable_lite.cc"
    },
    {
      "type": "modify",
      "old_id": "bf07a2682267c46a8ced1d35dbd9d511c4f5473d",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/generated_message_tctable_lite_test.cc",
      "new_id": "764024c1dd952b2e0e9a21de62792a5b4f57099d",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/generated_message_tctable_lite_test.cc"
    },
    {
      "type": "modify",
      "old_id": "1dd685b0c3a131e450488857e957989dca174702",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/lite_arena_unittest.cc",
      "new_id": "7490c55e022e1b4690c26428433d8375b11de0fa",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/lite_arena_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "f6d3458ddbec2821eccfba135644af8f91067999",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/map.cc",
      "new_id": "a1d98712013116e58b011ab10891ce697a757b26",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/map.cc"
    },
    {
      "type": "modify",
      "old_id": "f735ee98ed591a5d5113a96d20f67227b1d072f5",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/map_test.inc",
      "new_id": "b36102065e726f7d75499167519668f3901e8bed",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/map_test.inc"
    },
    {
      "type": "modify",
      "old_id": "af6acb4418d2923271e9d45598150dca74d5231a",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/memory_align.h",
      "new_id": "ff39f6476847496bc63a47e1eed30e5ddb5091c4",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/memory_align.h"
    },
    {
      "type": "modify",
      "old_id": "bd053d700d64f9ef7633376f67351ff72dca92a7",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/message_lite.cc",
      "new_id": "98487b37ac907096ce7ee81f26c555db2ad2160a",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/message_lite.cc"
    },
    {
      "type": "modify",
      "old_id": "e3e62fcc3ba038c1c2335748d8f8df150e04b193",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/message_lite.h",
      "new_id": "417b4ef68a8f8cff5b5a8681b0fdf44fb8f3b582",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/message_lite.h"
    },
    {
      "type": "modify",
      "old_id": "46fad6492e5e3125781fda3fde26d8460b3641ff",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/micro_string.h",
      "new_id": "4b62d056cc31bbd83318982684db90811c044596",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/micro_string.h"
    },
    {
      "type": "modify",
      "old_id": "aa9e5608448f2d8e61a7341636084130e29eaa84",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/parse_context.cc",
      "new_id": "f059ac7d31b814569059182a1d320b95fb003ab0",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/parse_context.cc"
    },
    {
      "type": "modify",
      "old_id": "83f864bf7b48cd0ea0898be7b8addc9db86652f8",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/parse_context.h",
      "new_id": "0a958776633ff236ad2e465078e3915590ed51f7",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/parse_context.h"
    },
    {
      "type": "modify",
      "old_id": "ca5bef9f7fa5a7a9c9ecc64902d399d3e6ab8ba8",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/parse_context_test.cc",
      "new_id": "9b1f94ef0fc28e1dd994714b3fbf7631d62643bf",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/parse_context_test.cc"
    },
    {
      "type": "modify",
      "old_id": "c2635774e25f738b418a90db8d2d3ba9eadc811c",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/serial_arena.h",
      "new_id": "ed7c8e4940ec7167d4857c773b317020669ed10e",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/serial_arena.h"
    },
    {
      "type": "modify",
      "old_id": "b1649048ccf1e62fa70c07913d2e83f0af647012",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/thread_safe_arena.h",
      "new_id": "6b59112991e46fad41e078a623e8234df69a6c6a",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/thread_safe_arena.h"
    },
    {
      "type": "modify",
      "old_id": "d78ee57dfacd1ce5b189a2d48dfa003edccf0911",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/wire_format.cc",
      "new_id": "d4b0a8fc4604cbd6e9b4982a9b2a1b0fef4a1ffb",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/wire_format.cc"
    },
    {
      "type": "modify",
      "old_id": "bb2679928f946bbef10131303cae60d01665e509",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/wire_format_unittest.h",
      "new_id": "760f4aa0665b9cfad2792bed18436b93fb81fc85",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/wire_format_unittest.h"
    }
  ]
}
