)]}'
{
  "commit": "6245b7291ce99b861c4fb5e9ef09ddf85ff44a7a",
  "tree": "1c732d29356c50bcf42fbe0e1d1666d0d7e624c8",
  "parents": [
    "45f0eaa69473ac984e8f43b98ed22cfe9610d287"
  ],
  "author": {
    "name": "Protobuf Team Bot",
    "email": "protobuf-github-bot@google.com",
    "time": "Wed Oct 01 14:05:21 2025 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Wed Oct 01 14:09:36 2025 -0700"
  },
  "message": "Use the simplest possible implementation of encodeUtf8 instead of a fancy one that uses sun.misc.Unsafe.\n\nEmpirically in 2025 this appears to be faster than our implementation that tries to hand roll this and avoid a string copy and use sun.misc.Unsafe (and much faster in the case of ascii strings).\n\nThe JDK implementation is able to leverage the internal representation of the strings when encoding, including that it can have a very fast path for \"internal representation is Latin1 and the string happens to be ascii, then it is already utf8\". The exposed Java API unfortunately demands us have a temporary copied array here, but it empirically doesn\u0027t show up as a regression to have this shortlived object and copy.\n\nThis delta is only changing UnsafeProcessor path which is currently held back from Android, so its OK that this was only benchmarked on server and we don\u0027t need to worry about a regression on Android at this time.\n\nPiperOrigin-RevId: 813904984\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3e06c0ca0237ff6ece86d1893b468eb6f93205b0",
      "old_mode": 33188,
      "old_path": "java/core/src/main/java/com/google/protobuf/Utf8.java",
      "new_id": "62565cd7d804a557db8c656d5ee8dc1daa45b8e4",
      "new_mode": 33188,
      "new_path": "java/core/src/main/java/com/google/protobuf/Utf8.java"
    }
  ]
}
