)]}'
{
  "commit": "6c92bb84d34d5a20918f6e6b7f665b53ab46a9da",
  "tree": "a603659d827b5270caaf193154dafaafcb2cf159",
  "parents": [
    "7f83aabb478ecdf2f0b5d396c0bed2bd039394bf"
  ],
  "author": {
    "name": "Protobuf Team Bot",
    "email": "protobuf-github-bot@google.com",
    "time": "Wed Oct 14 03:13:59 2026 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Tue Oct 20 15:59:37 2026 -0700"
  },
  "message": "Optimize Protobuf Lite dynamicMethod dispatch via if-else chain and getParserForType hoisting\n\nReplace the switch statement in GeneratedMessageLite dynamicMethod with an if-else chain and hoist getParserForType to call getParserForClass directly.\n\nBefore:\n- dynamicMethod emitted a Dalvik packed-switch with 36-byte jump table payload per class.\n- getParserForType() dispatched to dynamicMethod(GET_PARSER) solely to retrieve the class literal.\n\nAfter:\n- dynamicMethod uses a compact if-else chain without packed-switch tables (-474 KB DEX in GMS Core).\n- getParserForType() calls getParserForClass(getClass()) directly in GeneratedMessageLite.\nPiperOrigin-RevId: 999249304\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "dd3daece21baff44279697f3d2ade0f191135b49",
      "old_mode": 33188,
      "old_path": "java/core/src/main/java/com/google/protobuf/GeneratedMessageLite.java",
      "new_id": "aec0044c96ee8d09fd00a9c774ee529d76660705",
      "new_mode": 33188,
      "new_path": "java/core/src/main/java/com/google/protobuf/GeneratedMessageLite.java"
    },
    {
      "type": "modify",
      "old_id": "af74c1c295bbc462804fcd4eba28649100d9c277",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/compiler/java/lite/message.cc",
      "new_id": "0ab725fd6e6841a3f743b6ebc162334fc06f985e",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/compiler/java/lite/message.cc"
    }
  ]
}
