)]}'
{
  "commit": "bdcbf5583bfeaa7963c379b75aee9b4cba9cb897",
  "tree": "729fefd25c811e7557e223deb02f4f59303a1346",
  "parents": [
    "e1ad34059c02722bc698c2e2efe127b89b28aaea"
  ],
  "author": {
    "name": "Yurii Zubrytskyi",
    "email": "zyy@google.com",
    "time": "Wed May 10 13:16:23 2023 -0700"
  },
  "committer": {
    "name": "Yurii Zubrytskyi",
    "email": "zyy@google.com",
    "time": "Wed May 10 13:16:23 2023 -0700"
  },
  "message": "[res] Speed up AssetManager pointer locking\n\nAssetManager needs to lock (promote()) apk asset weak pointers\nto use them in pretty much any operation, and often mulitple\ntimes for the same object.\n\nThis CL introduces a concept of an \u0027operation\u0027 in AssetManager,\nand adds a cache for the locked assets that are retained until\nthe end of that operation. This way we only need to lock each\nassets object exactly once, losing pretty much no performance.\n\nBenchmarks all returned to the pre-memory-safe state values.\n\nBug: 280951693\nBug: 197260547\nBug: 276922628\nTest: UTs + native benchmarks + java benchmarks + boot\nChange-Id: I26ef88df4f6267b5e8b89f1588f2382db74030c0\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d3bfcbda90bc977efada1476509436688dd2e47d",
      "old_mode": 33188,
      "old_path": "core/jni/android_util_AssetManager.cpp",
      "new_id": "fc53a766b772908ab4233540bcc9b0505971d65e",
      "new_mode": 33188,
      "new_path": "core/jni/android_util_AssetManager.cpp"
    },
    {
      "type": "modify",
      "old_id": "94dbfb5db1d705c105eff9775d9431b9556feff1",
      "old_mode": 33188,
      "old_path": "libs/androidfw/AssetManager2.cpp",
      "new_id": "fd5d07f22419aaa87d3b90db3307bbee11ef5fd5",
      "new_mode": 33188,
      "new_path": "libs/androidfw/AssetManager2.cpp"
    },
    {
      "type": "modify",
      "old_id": "1f979956873fdcc22b85b464f756700d7f3e3a9b",
      "old_mode": 33188,
      "old_path": "libs/androidfw/include/androidfw/AssetManager2.h",
      "new_id": "cedf7326ec95196ea3ed9f23f0b107611ec58882",
      "new_mode": 33188,
      "new_path": "libs/androidfw/include/androidfw/AssetManager2.h"
    },
    {
      "type": "modify",
      "old_id": "5a5bafdf829a7d55bac2c608e3cd653b6c65320a",
      "old_mode": 33188,
      "old_path": "libs/androidfw/tests/AssetManager2_test.cpp",
      "new_id": "df3fa02ce44c626dc94f9a2d8c0c478137ce8e9a",
      "new_mode": 33188,
      "new_path": "libs/androidfw/tests/AssetManager2_test.cpp"
    },
    {
      "type": "modify",
      "old_id": "568e041ebe5bdaead095f699d64c00229cca089d",
      "old_mode": 33188,
      "old_path": "libs/androidfw/tests/Idmap_test.cpp",
      "new_id": "60aa7d88925dc97beb7bad8a2bc6e304792f7ca5",
      "new_mode": 33188,
      "new_path": "libs/androidfw/tests/Idmap_test.cpp"
    },
    {
      "type": "modify",
      "old_id": "b75458a7b8b67afa5e6e0b42b8c1132ecca26282",
      "old_mode": 33188,
      "old_path": "tools/aapt2/process/SymbolTable.cpp",
      "new_id": "d78baf9ffeb44817feff2a0da5c5e568885642af",
      "new_mode": 33188,
      "new_path": "tools/aapt2/process/SymbolTable.cpp"
    }
  ]
}
