)]}'
{
  "commit": "c46a5c11903d51c8c56d17014cb58a6514dcc8d9",
  "tree": "5f9c9ad7f818e18589bb9ed50c12384dcbbafa88",
  "parents": [
    "6836552e2573b833f3375b1a781625897688d1c2"
  ],
  "author": {
    "name": "Protobuf Team Bot",
    "email": "protobuf-github-bot@google.com",
    "time": "Mon Aug 24 14:20:21 2026 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Tue Aug 25 11:23:21 2026 -0700"
  },
  "message": "Optimize MessageDifferencer repeated field comparison and reflection lookups.\n\nRepeated field comparison in `MessageDifferencer` incurs significant CPU and heap allocation overhead from dynamic `std::vector` allocations per repeated field, atomic reflection synchronization in `SimpleFieldComparator`, template parsing in `StreamReporter`, and scalar element-by-element iteration across contiguous memory buffers.\n\nIntroduce a depth-indexed vector pool `match_list_pool_` to eliminate repeated heap reallocations across recursive submessage comparisons. Augment `FieldContext` to pass pre-resolved `Reflection` pointers directly to `SimpleFieldComparator::SimpleCompare`, bypassing atomic synchronization. Optimize `StreamReporter` with direct `PrintRaw` and stack-based scalar formatting, replace two-pass map key checks with single-pass `LookupMapValue`, and add fast-path contiguous buffer mismatch scanning for repeated primitive fields under default comparator settings.\n\nPiperOrigin-RevId: 970077641\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "07362628f02d2e3442c093c57ac2ba31135b2a34",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/util/field_comparator.cc",
      "new_id": "04ffe6d100162438f7f4525c7729cd7bd8cd3cff",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/util/field_comparator.cc"
    },
    {
      "type": "modify",
      "old_id": "ae685a48ae0baffe2290b950fb2ba735784e1b18",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/util/message_differencer.cc",
      "new_id": "b47a0b1950fad1297f4c5f80bf74afc881b66eb0",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/util/message_differencer.cc"
    },
    {
      "type": "modify",
      "old_id": "d3f0b80cdda5acd14d0a85230570a4c426517701",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/util/message_differencer.h",
      "new_id": "bff6d93009c111b6850759af153bdea1f995c65d",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/util/message_differencer.h"
    }
  ]
}
