)]}'
{
  "commit": "c372e79522f8126d241a6f6b52fc9a1145b03d1e",
  "tree": "21f9d050e3fa5b41c93b557438b5dfb5cd143498",
  "parents": [
    "4f301422a579fee785849afadd623c180da32e61"
  ],
  "author": {
    "name": "Jiakai Zhang",
    "email": "jiakaiz@google.com",
    "time": "Wed Nov 23 10:57:22 2022 +0000"
  },
  "committer": {
    "name": "Jiakai Zhang",
    "email": "jiakaiz@google.com",
    "time": "Fri Nov 25 16:38:58 2022 +0000"
  },
  "message": "Make ArtDexFileLoader accept an zip file with no dex code.\n\nWe pass config split APKs as part of the class loader context to\nOatFileAssistant, in both the legacy dexopt code path and the new ART\nServices code path. Those config split APKs eventually go to\nArtDexFileLoader. Therefore, ArtDexFileLoader should not regard this as\nan error.\n\nBefore this change, this was regarded as an error. The legacy dexopt\ncode path could work because it uses the legacy\n`DexFile.GetDexOptNeeded` Java API, which doesn\u0027t check the result of\nopening dex files. The new ART Services code path couldn\u0027t work because\nit checks the result.\n\nBug: 229268202\nTest: m test-art-host-gtest\nTest: (on internal master) -\n  1. Run `pm art optimize-package` for a split APK that depends on a\n     config split APK.\n  2. See dexopt being successful.\nChange-Id: I08a2a5ad7bea82c3f534ed4de2935fc400652361\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c6f18b62afc263921d10c5b67db5935fae02e3c6",
      "old_mode": 33188,
      "old_path": "libdexfile/Android.bp",
      "new_id": "b5a411bdd77e48744cef110fcdbf22ca69ecbbb5",
      "new_mode": 33188,
      "new_path": "libdexfile/Android.bp"
    },
    {
      "type": "modify",
      "old_id": "e7089dd51a0adf985f87ba0aba0e6e0dedfadddc",
      "old_mode": 33188,
      "old_path": "libdexfile/art_standalone_libdexfile_tests.xml",
      "new_id": "8e3ef2de509ce7c58b53bb9fd7dabc465e76d1ae",
      "new_mode": 33188,
      "new_path": "libdexfile/art_standalone_libdexfile_tests.xml"
    },
    {
      "type": "modify",
      "old_id": "a7dd13e1ed8f95d47b2711234e0d59f6ed486e42",
      "old_mode": 33188,
      "old_path": "libdexfile/dex/art_dex_file_loader.cc",
      "new_id": "1057bbcc65fdce305f6f28f0e9110cba41a2fe66",
      "new_mode": 33188,
      "new_path": "libdexfile/dex/art_dex_file_loader.cc"
    },
    {
      "type": "modify",
      "old_id": "1863c1bf57d2fe8cb75e7a260dc78f2151923e1d",
      "old_mode": 33188,
      "old_path": "libdexfile/dex/art_dex_file_loader_test.cc",
      "new_id": "bf1d306e6517527d50323120771a7d6bd3b7f9e6",
      "new_mode": 33188,
      "new_path": "libdexfile/dex/art_dex_file_loader_test.cc"
    },
    {
      "type": "modify",
      "old_id": "9ebc68dd211756c3443223b7f3e62d2e50831517",
      "old_mode": 33188,
      "old_path": "runtime/dex2oat_environment_test.h",
      "new_id": "bc25231ea1af608a642199ba5836007aea4ec004",
      "new_mode": 33188,
      "new_path": "runtime/dex2oat_environment_test.h"
    },
    {
      "type": "modify",
      "old_id": "320e827bd5731f47169a6d1eb52ed2b563e181e4",
      "old_mode": 33188,
      "old_path": "runtime/oat_file_assistant.cc",
      "new_id": "109d2ba18221e415ea9c919ebba2576a421eb51d",
      "new_mode": 33188,
      "new_path": "runtime/oat_file_assistant.cc"
    },
    {
      "type": "modify",
      "old_id": "2d0a1506ad4baba725247b5b447c168ce9b2f69a",
      "old_mode": 33188,
      "old_path": "runtime/oat_file_assistant.h",
      "new_id": "33708ce6c1bb7a7706a81d8216f5801d6b661ed0",
      "new_mode": 33188,
      "new_path": "runtime/oat_file_assistant.h"
    },
    {
      "type": "modify",
      "old_id": "090532c59238be89fe32a8860ec15fbf3a9c7615",
      "old_mode": 33188,
      "old_path": "runtime/oat_file_assistant_test.cc",
      "new_id": "6cd04c7819a464c27c05319fe10c07ec2b5f0baf",
      "new_mode": 33188,
      "new_path": "runtime/oat_file_assistant_test.cc"
    }
  ]
}
