)]}'
{
  "log": [
    {
      "commit": "98071159668576ae08c2b0de80b0565d58f409f2",
      "tree": "9d9d33ca68c95583f7023f32cbcda9fdb52dc219",
      "parents": [
        "d8b153b7c2026f45db97a7fd5804957becc5cfdf"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jan 27 18:41:58 2021 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Feb 02 20:39:40 2021 +0000"
      },
      "message": "Improve trace logging when loading odex files\n\nAdd extra trace categories with information on the status\nof odex files and the outcome of the loading process.\n\nTest: gtests\nBug: 178410926\nChange-Id: I02ef78f34ba726f40c8a988db8dc995f4c01c55e\n"
    },
    {
      "commit": "782fb716122d37dc4c4d7482afb21f6e68be04b4",
      "tree": "fdbf479b04c73f692051dc8abf6efda3114a87e4",
      "parents": [
        "5bcdd17a43fda7ac27968b13f6969133fae40b37"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Dec 23 12:47:31 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jan 06 15:05:34 2021 +0000"
      },
      "message": "Use HashMap\u003c\u003e and HashSet\u003c\u003e in ClassLinker.\n\nExtend the HashSet\u003c\u003e and HashMap\u003c\u003e API with constructors\nthat allow using a stack-allocated initial buffer to avoid\nthe allocation overhead for small containers.\n\nFix HashMap\u003c\u003e implementation for std::pair\u003c\u003e being used\nas the Key. Make Signature copy-assignable so that we can\nuse it as (part of) a Value in HashMap\u003c\u003e.\n\nMove the definition of ClassLinker::MethodTranslation from\nclass_linker.h to class_linker.cc. Add a default constructor\nused for creating empty entries in HashMap\u003c\u003e.\n\nUse HashMap\u003c\u003e and HashSet\u003c\u003e in ClassLinker instead of\nstd::unordered_map\u003c\u003e and std::unordered_set\u003c\u003e as it is much\nfaster thanks to avoiding individual nodes that need malloc\nand free and for small containers we also avoid allocations\nthanks to the extended HashSet\u003c\u003e and HashMap\u003c\u003e API.\n\nAlso avoid unnecessary std::vector\u003c\u003e for FillIfTable() and\nreplace linear search with HashSet\u003c\u003e lookup (note that the\n`ContainsElement()` helper has an overload for std::set\u003c\u003e\nbut not for any other associative container).\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: boots.\nBug: 175869411\nChange-Id: I48722fb3bb7780bf12fb71c7449494e097e4a368\n"
    },
    {
      "commit": "6e6f1b2ffb243b3e5ae112bba3cd52031deb31ba",
      "tree": "df7254d763ca274ed23b012e47e825a4444d1bfd",
      "parents": [
        "8de1fc3a75dcc900aed271a4f654d912a8838c1d"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Dec 15 19:13:19 2020 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Jan 05 21:51:00 2021 +0000"
      },
      "message": "Do not open dex files in CLC if we only need to get dexopt status\n\nThe verifying the class loader context when calling GetDexOptNeeded\nwe only need the dex locations and the checksums. Opening the full\ndex files may lead to in memory extraction which is expensive and\nunnecessary.\n\nAdd a special path in ClassLoaderContext::OpenDexFiles which will\nextract the locations and the checksums from the apk instead of\nactually opening the dex files.\n\nWe re-uses the same logic in OpenDexFiles in order to avoid\nimplementing the opening algorithm twice (which, given all the edge\ncases is not trivial).\n\nBug: 169869944\nTest: test-art-host\nChange-Id: Ic327889677ce697cd60c5c688281515b932a2a76\n"
    },
    {
      "commit": "5ff2393e1fb6e61fc74f20c66f80f4b8656987d1",
      "tree": "e94b8cfc92379678b4f2e6446aa6d28a6408222f",
      "parents": [
        "99459f3bdd8d569ec7054920cbc32e6915d1e125"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Dec 11 18:26:14 2020 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Dec 14 19:00:35 2020 +0000"
      },
      "message": "Remove stripped-apk related logic from CLC\n\nStripped-apks are no longer supported by the runtime and\nthe current logic prevents bug fixes and code evolution.\n\nBug: 111442216\nTest: test-art-host\nChange-Id: I30d5825e4f6453981ca9165bebafe67557c28b93\n"
    },
    {
      "commit": "23c926d12f8333d2ca59d6b321064cb9d831f0ad",
      "tree": "68e7f88f580ff30950605332f2187b18a904add6",
      "parents": [
        "6af553d1f411926acdb96d6fa85fb126b761eada"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Nov 05 12:02:00 2020 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Nov 24 21:13:51 2020 +0000"
      },
      "message": "Do not create symbols for [DEDUPED] methods.\n\nThe incorrect method name keeps confusing developers, despite the tag.\n\nHowever, around half the time, the deduped methods share either the\nsame class name or method name, so include it in the name if possible.\n\nBug: 32949969\nTest: printf the generated method names.\nChange-Id: I9cc6f16da0a91d93aa05df5476011bf180d626d9\n"
    },
    {
      "commit": "7b55065f9fd05e9610871e1598972fc8fd45e9ea",
      "tree": "bb6fa5ec5f10a406b418b5bfcb04f892db9a3aff",
      "parents": [
        "c2d5c707a2cfeaaafcf8f5d7e5193dd2d5c59592"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Nov 17 10:12:52 2020 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 18 01:57:51 2020 +0000"
      },
      "message": "Add dex_instruction_list.h to mterp genrule tools\n\ndex_instruction_list.h is read by gen_mterp.py by searching relative\nto the script, add it to tool_files so it gets a dependency and\nso it gets copied if tools are sandboxed.\n\nBug: 124313442\nTest: m checkbuild\nChange-Id: I85f9e154007c185cd5bef1162137986898efb629\n"
    },
    {
      "commit": "694f0129e6bf106d9f9a7c3bfb3b1cf499e8469b",
      "tree": "0d3ed6e495945d9e10b7e1a9cc227e3aa3a43957",
      "parents": [
        "b5ed330e832e7c08c37f88a3a5fff7dbae17a06b"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Oct 30 02:23:24 2020 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Nov 04 16:28:24 2020 +0000"
      },
      "message": "Move hardcoded Soong apex_available lines for ART modules into ART\nblueprints.\n\nTest: m droid\nBug: 133140750\nChange-Id: I99139a4f8c618f237fa169e125de9479feaeb07f\n"
    },
    {
      "commit": "3e9abfc9779399815a7dc8d492466a1234b7fdcd",
      "tree": "fd1017f153d3759488914c4d372f543125722ad1",
      "parents": [
        "35b132e3377029a356cfbc9e4682e3ebceb83edf"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Oct 09 22:17:51 2020 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Oct 23 10:03:13 2020 +0000"
      },
      "message": "Rename ART release APEX to com.android.art.\n\nTest: Build \u0026 boot on AOSP master\nTest: `m` on AOSP master, flipping\n  PRODUCT_ART_TARGET_INCLUDE_DEBUG_BUILD between true and false, and\n  check out/target/product/bonito/symbols/apex/com.android.art.\nTest: art/build/apex/runtests.sh\nTest: art/tools/buildbot-build.sh {--host,--target}\nTest: art/tools/run-gtests.sh\nTest: m test-art-host-gtest\nTest: art/test/testrunner/testrunner.py --target --64 --optimizing\nTest: m build-art-target-golem\nBug: 169639321\nChange-Id: Ic4bb8d6f9988ce99bba326b9c635bd3c01ed74ab\nMerged-In: Ic4bb8d6f9988ce99bba326b9c635bd3c01ed74ab\n"
    },
    {
      "commit": "cbbc8df2264e8ce0528e7b7bfe43e430e5bb3e81",
      "tree": "d3cdcc12f0cd27d9c1f67ff3967de822fe9f6398",
      "parents": [
        "f1a2c0e93f80fd9339270b10a5f68f93ebeffe67"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Sep 30 22:02:32 2020 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Tue Oct 06 09:45:00 2020 +0000"
      },
      "message": "Drop the cc_defaults module for libdexfile_external_static users.\n\nIt won\u0027t work in SDK snapshots (b/169779783).\n\nThis means external dependencies (libbase, liblog, libz, libziparchive)\nare included as whole_static_libs, as before\nhttps://r.android.com/1435792, even if that may lead to duplicated code\nin depending modules. We cannot let them depend on those libraries\nseparately without better tools to avoid version conflicts.\n\nTest: atest --host art_libdexfile_external_static_tests\nBug: 142944931\nBug: 169885605\nChange-Id: I9fc176dd798ce64cbb806905e665bc03c247fddb\n"
    },
    {
      "commit": "71f7affff661a9f48afae25e19fcd3b9e82dac33",
      "tree": "0c39fae9b425703b0c05f7fdf70dc4e330bdbbbf",
      "parents": [
        "4904d5d65de32237790e5370bd076a9bccc22aa1"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Sep 15 16:45:49 2020 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Oct 05 11:41:52 2020 +0000"
      },
      "message": "Use prebuilt_visibility property on sdk/module_exports\n\nWhen the ART sdk/module_exports snapshots are unpacked in a prebuilts\ndirectory they need some additional visibility rules to be added to\nensure that the prebuilts are visible to each other. Previously, those\nwere added on a case by case basis to the individual modules. This\nchange replaces them by using the prebuilt_visibility property that\nspecifies additional visibility rules to be added to all prebuilt\nmodules in the snapshots.\n\nCurrently, the additional visibility added to the prebuilts makes them\nvisible to anything in //prebuilts or beneath which is not restrictive\nenough. Specifying the rule in a single place will make that easier to\nrestrict in future.\n\nBug: 155921753\nBug: 168301990\nTest: build sdk/snapshot, install them in prebuilts/module_sdk/art\n      and run m nothing to ensure the visibility rules are valid.\nChange-Id: I751ed6d488038214ac9df35849babe69a3c79a31\n"
    },
    {
      "commit": "01aaf0f0fdaf641013d3cec24a2c9bd2186fa5a7",
      "tree": "68149e4f65b3644cbae0a81b0eafc9c7de96aca8",
      "parents": [
        "7f8a7f29f07886d1008dfc26d43617e79965447c"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Sep 24 02:18:34 2020 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Oct 01 12:45:09 2020 +0000"
      },
      "message": "Fix fake output from C header test to pass Tradefed scrutiny.\n\nAlso fixed stale test name in TEST_MAPPING.\n\nTest: atest --host art_libdexfile_external_tests\nBug: 120978655\nChange-Id: Ia07a786733e1c8fbdf3f6185763d159d61b267d0\n"
    },
    {
      "commit": "35f765b9c66a9d999d35afd54c693f8636d0a7ee",
      "tree": "4e51043f9d638c0d861022291ef80d126fb96e0d",
      "parents": [
        "a28438ab47e8e41599fa6b2343f8a6a21efa0116"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Sep 23 00:38:38 2020 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Mon Sep 28 10:13:56 2020 +0000"
      },
      "message": "Link all internal libraries statically into dex2oat(d) on host.\n\nAll static defaults had to change to whole_static_libs to work with the\nnew libdex2oat(d)_static libraries, so that they don\u0027t lose all symbols\nin the static_libs dependency from the dex2oat(d) binaries.\n\nThe static unstripped dex2oat binary is 348 MB, 35 MB smaller than the\nsum of the dynamic binary + DSO\u0027s.\n\nTest: art/build/apex/runtests.sh\nTest: runtests in device chroot\nTest: art/test/testrunner/run_build_test_target.py art-test\nTest: readelf -d out/host/linux-x86/bin/dex2oat(d)\n  Check that NEEDED only lists system libraries (libdl, libpthread,\n  libm, librt, libgcc_s, libc).\nBug: 145934348\nChange-Id: I7abcf1db9b053f71ced6a7dde38ab1b4300b7b5a\n"
    },
    {
      "commit": "68e5db56dadbc0e558c16696aa48a80695ccbfbc",
      "tree": "3e885cc60324c729d66730126a82d53baea9a9ff",
      "parents": [
        "b2568693d783d53aa80f71fde4715995a1f695cc"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Sep 23 20:43:56 2020 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Sep 25 12:46:29 2020 +0000"
      },
      "message": "Convert libdexfile_support_static to *_static_defaults modules.\n\nIt has been using whole_static_libs to propagate static library\ndependencies transitively, but that can lead to duplicate instances of\nthem. Instead provide libdexfile(d)_support_static_defaults that\ncollect dependencies just like elsewhere in ART.\n\nExternal packages (read simpleperf) that depend on static libdexfile\nare provided a separate libdexfile_external_static library. It only\ncontains the internal dependencies and have a corresponding\n*_static_defaults for the external ones, and hence shouldn\u0027t be used\ninternally.\n\nTest: flash \u0026 boot\nTest: art/build/apex/runtests.sh\nTest: art/tools/buildbot-build.sh {--host,--target}\nTest: m build-art-target-golem\nTest: atest --host art_libdexfile_support_tests \\\n  art_libdexfile_support_static_tests \\\n  art_libdexfile_external_static_tests\nBug: 145934348\nBug: 142944931\nChange-Id: Ic99eebccc5c63acb55f323611c6b6f50a83eba5a\n"
    },
    {
      "commit": "e1d2dce0cda2d223ac9c4e48958b9d5810e3e987",
      "tree": "3b9a664710cad714ad2ee1f9fec60908408aa23f",
      "parents": [
        "9dfb1a9d642b9eb627895ef3364736fc839b4fe4"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 21 10:06:31 2020 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 23 08:12:33 2020 +0000"
      },
      "message": "Add support for compact dex files in nterp.\n\nTest: test.py\nBug: 112676029\nChange-Id: I604af166dab0647037bf675cabc6ce433053a83c\n"
    },
    {
      "commit": "26ab270882523210c44bf156211283936471bbf6",
      "tree": "3ae1cb1d37a5e4facc39443f3ccbe76f3b486460",
      "parents": [
        "5880c77e9153b953952507cb924ce3ee8511e084"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jul 29 09:54:10 2020 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jul 29 09:57:28 2020 +0100"
      },
      "message": "A few more inclusive language updates based on newer wordlist\n\nBased on:\n  https://source.android.com/setup/contribute/respectful-code\n\n#inclusivefixit\n\nBug: 161336379\nBug: 161896447\nTest: art/test.py --host --64\nChange-Id: I7e6362556136ce1a3085fffae7598104fa5bc56a\n"
    },
    {
      "commit": "8ebd86ea2ea9eac96d48db88c65364d56ff3b8ab",
      "tree": "8d4009c204136af090ec904a35168572b06c1b1a",
      "parents": [
        "07f78906212edb684b3bf046d1bb661613f81c22"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jul 27 12:49:24 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jul 27 14:50:45 2020 +0000"
      },
      "message": "Replace \"dummy\" in libartbase/, libdexfile/, compiler/.\n\nTest: m test-art-host-gtest\nBug: 161336379\nChange-Id: I5335b28b1f66cdec39500563385bda99c580454d\n"
    },
    {
      "commit": "2d53643ca0e05e7c67894aa75eba899acbb9f287",
      "tree": "39299475c04303312f527bc00355bd9fd7a3fad8",
      "parents": [
        "cefebc86af30522bf79d2a89a2bcf96f7f970ecb"
      ],
      "author": {
        "name": "Ian Pedowitz",
        "email": "ijpedowitz@google.com",
        "time": "Wed Jul 22 14:33:00 2020 -0700"
      },
      "committer": {
        "name": "Ian Pedowitz",
        "email": "ijpedowitz@google.com",
        "time": "Fri Jul 24 00:41:56 2020 +0000"
      },
      "message": "Update language to comply with Android’s inclusive language guidance\n\nSee https://source.android.com/setup/contribute/respectful-code for\nreference\n\nBug: 161896447\nBug: 161850439\nBug: 161336379\nTest: m -j checkbuild cts docs tests\nChange-Id: I32d869c274a5d9a3dac63221e25874fe685d38c4\n"
    },
    {
      "commit": "c2208272f24e921b808af53721d2ca821d76503c",
      "tree": "924a1ca0e42c8a59947c4c86e5d26ac4f9d8d71b",
      "parents": [
        "50a454b23485ceb8fe37e102abc0e41e2857876a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 23 11:04:39 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 23 14:15:33 2020 +0000"
      },
      "message": "Replace \"dummy\" with \"fake\" in some tests.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing -t 004-JniTest\nBug: 161336379\nChange-Id: Ifab653fbf66af8ea3bd4a35ca116c7cc91be51bd\n"
    },
    {
      "commit": "c40b151f771fd84d929fe8f7a63f42a0be188f93",
      "tree": "c321535e02fb3458852f88b00ac883bddd63b506",
      "parents": [
        "22872da653053bb4b86fbef67163a9f6b7aee25b"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jun 26 13:28:12 2020 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jun 26 18:35:27 2020 +0000"
      },
      "message": "Use `constexpr` for more constants in `libdexfile/dex/dex_file.h`.\n\nUse `static constexpr` instead of `static const` for more constants in\nthis file, to avoid missing definition issues in some compilation\nsetups, like ART code coverage build configurations.\n\nTest: build/soong/soong_ui.bash --make-mode \\\n        TARGET_PRODUCT\u003daosp_cf_x86_phone \\\n        TARGET_BUILD_VARIANT\u003duserdebug \\\n        EMMA_INSTRUMENT\u003dtrue EMMA_INSTRUMENT_FRAMEWORK\u003dtrue \\\n        JAVA_COVERAGE_PATHS\u003dart \\\n        CLANG_COVERAGE\u003dtrue NATIVE_COVERAGE_PATHS\u003dart \\\n        com.android.art.debug\nBug: 152402333\nChange-Id: Ib9da1a9043b71d56673fcec7e9dab4718310e254\n"
    },
    {
      "commit": "1cf46a3342d8821fcdb700ada24ac272e85a2a39",
      "tree": "1357357f0bb79433672883c6949fdd86b896b256",
      "parents": [
        "842e9c8c0affaff5253de233974c63ba7ba7f8b4"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Jun 22 15:39:00 2020 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 24 19:45:23 2020 +0000"
      },
      "message": "Copy tools needed by host gtests to testcases directory.\n\nAtest requires that everything is in the testcases directory.\nThe files are not used yet (this is left to follow-up CLs).\n\nBug: 147819342\nTest: check the generated general-tests.zip (\"m general-tests\")\nChange-Id: Ied22a736e81a7cff03641d18bacd829b86a6ef0b\n"
    },
    {
      "commit": "9974e3cdc1564edc3143b90d7bb2a416f1f887e7",
      "tree": "4f9746e6b237b2a17cc1e2543a141817d4946c19",
      "parents": [
        "2d19902c3d140c7b9b1d7ae905bd1023a4e649a1"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jun 10 16:27:06 2020 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jun 11 10:06:12 2020 +0000"
      },
      "message": "Clean up generated operator\u003c\u003c(os, enum).\n\nPass enums by value instead of const reference.\n\nDo not generate operator\u003c\u003c sources for headers that have no\nenums or no declarations of operator\u003c\u003c. Do not define the\noperator\u003c\u003c for flag enums; these were unused anyway.\n\nAdd generated operator\u003c\u003c for some enums in nodes.h . Change\nthe operator\u003c\u003c for ComparisonBias so that the graph\nvisualizer can use it but do not use the generated\noperator\u003c\u003c yet as that would require changing checker tests.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: Ifd4c455c2fa921a9668c966a13068d43b9c6e173\n"
    },
    {
      "commit": "3255f5034ff7c27d22c47b4101abc04fb6c86913",
      "tree": "856b41be4d56e4c6c3681407408ae2de5c10c936",
      "parents": [
        "0e6d73a65e577e6416ee68490ca19ca3123f7fc6"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Thu Jun 04 16:29:36 2020 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jun 11 02:20:35 2020 +0000"
      },
      "message": "Fix visibility rules now that Make supports visibility checks\n\nPreviously, Soong visibility rules did not affect Make modules. Now\nthese checks have been implemented in:\n\nhttps://android-review.googlesource.com/c/platform/build/+/1324454\n\nSo this fixes the visibility rules to include modules that were\npreviously using libdexfile_support_static.\n\nBug: 158599308\nTest: treehugger\nChange-Id: I9f73d61036f6013e43d6c26ba29ed952e0a17a56\n"
    },
    {
      "commit": "128f14b83004ce86ad388c6c472e660be92868d3",
      "tree": "01d126e859a99cf8051ae4906f43d166c11865f9",
      "parents": [
        "6355d6932a9e8267b3025f4061583f5610e64e54"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 01 19:12:13 2020 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 01 19:14:15 2020 -0700"
      },
      "message": "Prevent DCHECK failure for failure_reason_ being non empty\n\nFix an issue where invalid method handles would cause DCHECK failures\nin dex2oat due to not exiting the loop and possibly having other\nerrors.\n\nTODO: Find a way to add test.\n\nBug: 157139051\nTest: compile a problematic APK with dex2oat\nChange-Id: Ib987efb1bbb7fc5c1d86df2862e0d2b67d8509d9\n"
    },
    {
      "commit": "1c993cd041b3ac6a52dffae11e341759fe71e01f",
      "tree": "777e2766e457b6f149618d117bd7678e0fe53698",
      "parents": [
        "4a88a5af7417d9dc0bfe37cffd92a253531c8f30"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu May 28 09:30:06 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 29 13:14:25 2020 +0000"
      },
      "message": "Revert^2 \"Throw ClassFormatError for unsupported default methods.\"\n\nThis reverts commit 09261a8c5cd36a8c7a1ae5107da554dd35008b97.\n\nFixed redefine-stress failures. Worked around CTS failures\nby reducing the cases where we throw the ClassFormatError.\n\nTest: 180-native-default-method.\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nTest: testrunner.py --host --optimizing --redefine-stress \\\n      --debug --debugggable --cdex-fast\nTest: cts-tradefed run cts --m vm-tests-tf\nBug: 157170505\nBug: 157718952\nChange-Id: I95264af9041836fd6bc54e85263e2a405e877d30\n"
    },
    {
      "commit": "4a88a5af7417d9dc0bfe37cffd92a253531c8f30",
      "tree": "6a0496ac10c62f8d183265a9d9615d5778a8c444",
      "parents": [
        "ffffa9c4e18e233db7b0f5eb31d07d8a52d527e4"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue May 05 16:21:57 2020 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri May 29 11:51:26 2020 +0000"
      },
      "message": "Finish move of jar compilation rules from makefile to soong.\n\nThe rules have already been previously ported to soong, but they were\nonly used for atest.  Always use them to simplify the makefile.\n\nThis makes the gtest modules in .bp files depend on the needed jars,\nwhich ensures that they will be copied next to the test binary.\nThis is needed as atest can not access them in the current location.\n\nIt also simplifies the tradefed xml since the manual copying\ncan be removed for the apex-based device testing.\n\nTest: test-art-host-gtest\nTest: atest ArtGtestsTarget\nBug: 147819342\nChange-Id: I54d92eca88fc04c949209d490e838d0a92ce8f87\n"
    },
    {
      "commit": "b1c8e161a1f216f48e28c8bcd5a6b26752c7e2a0",
      "tree": "5f97c683540e440d3a33948b06c267dccbe1b7b6",
      "parents": [
        "daee51f893902526b191b3a3c5dd179b1964a352"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Mon May 18 19:04:42 2020 +0900"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue May 19 00:58:00 2020 +0000"
      },
      "message": "Dynamically link to libz\n\nlibz will be a stub providing library, which means it has stable API\nsurface that Mainline modules can depend on. APEXes including the\nruntime APEX don\u0027t need to statically link to it; it will just increase\nthe size of the APEX. With ag/11420260 this is even prohibited.\n\nThis change changes the static linkings to libz to dynamic linkings.\n\nBug: 155456180\nTest: m\nChange-Id: Ic6a38909241c8f851bf299130542bc323a0ff2ef\n"
    },
    {
      "commit": "883c1346b87537ed93f7d4fd88bbbb041c14d320",
      "tree": "efb8205d15d677d3e3fdf90f0ae09c4a2eba9a4f",
      "parents": [
        "612809740453427ce4c9211062794dde3823ab6d"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon May 11 23:30:29 2020 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri May 15 18:06:16 2020 +0100"
      },
      "message": "Revert^2 \"Remove test_per_src from ART tests.\"\n\nSecond attempt at this, which fixes the asan failures.\n\nRemove test_per_src since it is not supported by atest.\nReplace it with gtest_isolate which is transparent to atest,\nand which still allows us to run tests in parallel.\n\nThe size of test binaries halves (from 1GB to 0.5GB).\nTest run-time on host is unchanged.\nTest run-time on target is 4x faster (tested on walleye).\n\nAdded a gtest_main.cc with the gtest isolated main function,\nand ART-specific initialization.\n\nBug: 147819342\n\nTest: m test-art-host-gtest\nTest: art/tools/run-gtests.sh\nTest: art/test/testrunner/run_build_test_target.py art-gtest-asan\nChange-Id: I515c911bb7d44285495802fc66cd732fc8e6d8df\n"
    },
    {
      "commit": "75b961a4cd926e647eb20ebf20ec5af410f7e1df",
      "tree": "4c83c209ca826494c440dedf1815217721e4439b",
      "parents": [
        "3a079094a2b92a8dce725848d28abd5de7a84e9f"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu May 07 01:45:27 2020 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Mon May 11 08:55:41 2020 +0000"
      },
      "message": "Add visibilities for prebuilts.\n\nThese visibilities are intentionally blunt, to allow the prebuilts to\nmove around for now.\n\nMany of these visibilities may also go away completely again if the\nexported binaries are changed to compile internal ART libraries\nstatically.\n\nTest: v\n  1. build/soong/scripts/build-aml-prebuilts.sh art-module-sdk \\\n     art-module-test-exports conscrypt-module-sdk \\\n     conscrypt-module-test-exports conscrypt-module-host-exports \\\n     art-module-host-exports\n  2. Unzip out/aml/soong/mainline-sdks/*.zip into separate\n     subdirectories under prebuilts/runtime\n  3. env SOONG_ALLOW_MISSING_DEPENDENCIES\u003dtrue m nothing\n     (together with the topic of https://r.android.com/1252167)\nBug: 155921753\nChange-Id: Id8bbc8aedb0b87e30e9cf3d2a9f34b33cb71756c\n"
    },
    {
      "commit": "fc5e2ef08c78bcf4a60c5097ff3a7fa80e358522",
      "tree": "4c1d538f5faf72617e9088b8f99a368b999b32dd",
      "parents": [
        "685c84775f7dfe23197b080e4730435fd80e6d27"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri May 08 00:08:42 2020 +0000"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri May 08 07:25:07 2020 +0000"
      },
      "message": "Revert \"Remove test_per_src from ART tests.\"\n\nThis reverts commit 8103e479d8f8447584582b2b70752029f7087776.\n\nReason for revert: asan run fails in multiple ways\n\nTest: ran ./art/test/testrunner/run_build_test_target.py art-gtest-asan\nChange-Id: Ib9f2887436a664b64c6410f56a25ae2dd0e0aab4\n"
    },
    {
      "commit": "8103e479d8f8447584582b2b70752029f7087776",
      "tree": "53b2be70d195b785fc1d79b6151e42925b4981fe",
      "parents": [
        "6a8f8c52da06de506b75fa524a56a30794849261"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Apr 28 21:36:49 2020 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu May 07 14:45:38 2020 +0100"
      },
      "message": "Remove test_per_src from ART tests.\n\nRemove test_per_src since it is not supported by atest.\nReplace it with gtest_isolate which is transparent to atest,\nand which still allows us to run tests in parallel.\n\nThe size of test binaries halves (from 1GB to 0.5GB).\nTest run-time on host is unchanged.\nTest run-time on target is 4x faster (tested on walleye).\n\nBug: 147819342\nTest: m test-art-host-gtest\nTest: art/tools/run-gtests.sh\nChange-Id: Id295af00d08b24baa2e421b0f3313df0b2e56fe9\n"
    },
    {
      "commit": "71f661c294156f2ebe10600368a23a35d882c67b",
      "tree": "92f830a0ffe7e266a2182bac8dcb3fd4d6ba9c55",
      "parents": [
        "0c66e678a0562846449a424e297211a1aa70694d"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Tue Apr 28 18:20:43 2020 +0900"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon May 04 12:18:30 2020 +0000"
      },
      "message": "Set apex_available property\n\nThe marked library(ies) were available to the APEXes via the\nhand-written whitelist in build/soong/apex/apex.go. Trying to remove the\nwhitelist by adding apex_available property to the Android.bp of the\nlibraries.\n\nBug: 150999716\nTest: m\nMerged-In: Ie9a693be10c6c6571c8aa5357500f5d931400593\n(cherry picked from commit 0f152391c0458d3d1cce04a11bc92e7234955d6f)\nChange-Id: Ie9a693be10c6c6571c8aa5357500f5d931400593\n"
    },
    {
      "commit": "80892049dfcfafc41338d48f18cf148019a53dde",
      "tree": "1a80248fba41906e936731c2e820991c99e78e15",
      "parents": [
        "5eee73ba273a21d514dc8a40294d30a2774eb2a0"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Tue Apr 21 00:39:00 2020 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 22 16:54:25 2020 +0000"
      },
      "message": "Use runtime_libs for the libdexfile_external dependency from\nlibdexfile_support.\n\nIt\u0027s a better specified dependency, and in particular it makes\nlinkerconfig pick it up and autogenerate the necessary links to the\ncom_android_art namespace where libdexfile_support is used.\n\nTest: Build and boot, then check that\n  /linkerconfig/com.android.runtime/ld.config.txt contains\n  \"namespace.default.link.com_android_art.shared_libs \u003d\n  libdexfile_external.so\", which is necessary for\n  /apex/com.android.runtime/bin/crash_dump{32,64} to find it.\nBug: 153996928\nChange-Id: Ia56d7b85512369b0d642354c92540ba94c1debb1\n"
    },
    {
      "commit": "f48a705f257d9352bb38ddc5db737aa45fb69ca4",
      "tree": "fddd6a23682e814115bc1e103deaa9c3b11787f2",
      "parents": [
        "63ba6477e76278d949f382e9babb146b13732878"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 21 09:45:57 2020 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 21 12:06:50 2020 +0100"
      },
      "message": "Minor error reporting clean up in DexFileVerifier.\n\nTest: m\nChange-Id: If768098425d626ecac664531f1a532cf0d40e6d6\n"
    },
    {
      "commit": "63ba6477e76278d949f382e9babb146b13732878",
      "tree": "7bcaeb4679ee2cf2ef2c69fa9db173aa50f0bf3c",
      "parents": [
        "050e2153774fa3d58c1c47dbb6fbdb437bd58229"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 15 15:35:16 2020 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 21 10:38:10 2020 +0000"
      },
      "message": "Faster dex file verification.\n\nSpeed up DexFileVerifier by introducing a \"map\" from type\nindex to class definition index, implemented as vector\u003c\u003e.\n\nRefactor the verification for correctness, moving checks\nagainst the header into the CheckIntraSection() phase and\nchecks that rely on other sections to CheckInterSection().\nThis also allows us to remove some unnecessary checks in\nthe latter phase.\n\nImproves the \"OpenDexFile\" time from --dump-timings output\nby over 2x for one tested huge apk.\n\n(cherry picked from commit eae30815293d9cacb4bf9f48d7dfdce8a436b426)\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing.\nBug: 153966283\nMerged-In: Iae423b8f463648360276130c8b21ab6057cf73a7\nChange-Id: Ie5a525bd1975c39e014c86b4386d5402c8bef420\n"
    },
    {
      "commit": "07c3da75fa4379497e15a371ffd40e54b97b0877",
      "tree": "7ac5b6f63f3f4db5d7e48439a936e1684a922b2a",
      "parents": [
        "76bc8333d6255897a0dcab9705b13dc5b6439012"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Tue Mar 31 16:29:49 2020 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Apr 16 12:44:34 2020 +0100"
      },
      "message": "Reland \"Remove platform availability from internal libs that make up\nlibdexfile_support_static.\"\n\nReland of https://r.android.com/1273016 after fixing internal branch in\nag/11063995.\n\ninit and debuggerd no longer depends on libunwindstack with DEX support\n(https://r.android.com/1149620), and with the fix for NOTICE targets on\nstatic libs (https://r.android.com/1274763) it is not needed for\nsimpleperf_ndk either.\n\nTest: Build \u0026 boot\nTest:\n  $ m libdexfile libartbase libartpalette\n  $ find out/target/product/*/system -name libdexfile.so -o -name libartbase.so -o -name libartpalette.so\n  (no hits found)\nBug: 151466650\nBug: 142944931\nBug: 154165728\nChange-Id: I5be00be19f3b9719e220c655aa25581d28c47245\n"
    },
    {
      "commit": "02e6a6ffa2ea384e13d179f237fb329b0b495682",
      "tree": "d0ff9a95a6988beda4177db727eccf192b5e4660",
      "parents": [
        "030f548d006b8f2d819d7a62cc8ebd8fe08c6483"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Thu Apr 16 00:21:57 2020 +0000"
      },
      "committer": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Thu Apr 16 00:21:57 2020 +0000"
      },
      "message": "Revert \"Remove platform availability from internal libs that make up\"\n\nThis reverts commit 030f548d006b8f2d819d7a62cc8ebd8fe08c6483.\n\nReason for revert: Droidcop: Potential culprit for b/154165728 - verifying through Forrest before revert submission. This is part of the standard investigation process, and does not mean your CL will be reverted.\n\nChange-Id: Id1faeba61ff1ba667fc36d14547d8d99a392ba73\n"
    },
    {
      "commit": "030f548d006b8f2d819d7a62cc8ebd8fe08c6483",
      "tree": "9e005fdd44d19142b659dec3d200c1223fe05514",
      "parents": [
        "72d7e965f8f70d79fa1c4d5f09ae59652c9c24de"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Tue Mar 31 16:29:49 2020 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 15 23:01:07 2020 +0000"
      },
      "message": "Remove platform availability from internal libs that make up\nlibdexfile_support_static.\n\ninit and debuggerd no longer depends on libunwindstack with DEX support\n(https://r.android.com/1149620), and with the fix for NOTICE targets on\nstatic libs (https://r.android.com/1274763) it is not needed for\nsimpleperf_ndk either.\n\nTest: Build \u0026 boot\nTest:\n  $ m libdexfile libartbase libartpalette\n  $ find out/target/product/*/system -name libdexfile.so -o -name libartbase.so -o -name libartpalette.so\n  (no hits found)\nBug: 151466650\nBug: 142944931\nChange-Id: I159f6180bdbd8d50e2cb8d32049cc283f0a04467\n"
    },
    {
      "commit": "e778fa6ead79e9cb26810d484c5a594e9612de9b",
      "tree": "f615de89eff741c5bb2c4ea8d04ccd097223092f",
      "parents": [
        "27d2bfc603a7e25ec6132ab598ecb3319f089e03"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Apr 07 17:52:16 2020 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Apr 14 08:25:40 2020 +0000"
      },
      "message": "Reduce cache memory use of libdexfile.\n\nIt is excessive to cache all methods of all open dex files.\n\nCache only methods that have been looked up by dex offset.\nCreate class lookup table to keep method lookup efficient\n(linear search, but only within the methods of the class).\n\nThis reduces memory use by over 10x.\n\nBug: 152976928\nTest: ./art/test.py -r -b --host -t 137\nTest: libunwindstack_unit_test\nChange-Id: I0aee3d9a1060bf254b156836c428a17e6f1ee70c\n"
    },
    {
      "commit": "00cb81d29a9a903aa5f72e28492415ff7b2d7f06",
      "tree": "221d2e9afa762ffeb1700d5d674c7868855495b2",
      "parents": [
        "4b79ef49dce84b8e4c08d25b73411329fc6a0d55"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Apr 03 06:47:07 2020 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Apr 07 14:01:36 2020 +0000"
      },
      "message": "Add explicit dependencies on jni_headers\n\nBug: 152482542\nTest: lunch aosp_x86_64 \u0026\u0026 m checkbuild\nChange-Id: I1859a5b15d7e1a4939968908d862d27b2345acc4\n"
    },
    {
      "commit": "842555d72ee7511c193a65f34841cc92170a1850",
      "tree": "e93fce2220a98512537c87cac7c126cbc360199e",
      "parents": [
        "e78ff3d25bd13178dcaffbb4ab17e2709043c5e3"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Mon Mar 23 14:38:47 2020 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 25 12:22:51 2020 +0000"
      },
      "message": "Add test mapping to run some libdexfile tests at presubmit.\n\nNeed to restrict tests to host since ART gtest support isn\u0027t\nimplemented for device yet.\n\nThe only reason art_libdexfile_tests isn\u0027t included here is that\ntest_per_src makes it necessary to name each source file individually.\n\nTest: atest -p art/libdexfile/TEST_MAPPING\nBug: 147819342\nBug: 152376507\nChange-Id: I61cb72dca6767bb4c7211ef0b6a5b608d7f43a40\n"
    },
    {
      "commit": "2d18719c47854cee595ea3b9b9817db9ba76c9a7",
      "tree": "58d8499460b4645a71fa932b7d70ceac12e559ca",
      "parents": [
        "29e62c32ba76492bc90f58c8281bace32c2110f8"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Oct 23 21:52:29 2019 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Mon Mar 23 20:15:11 2020 +0000"
      },
      "message": "Remove access to internal dex libs for com.android.runtime.\n\nTest: Build \u0026 boot\nBug: 142944931\nBug: 151466650\nChange-Id: I2844d372c0d46ec8dffcbad1812a6ea944c6fe9c\n"
    },
    {
      "commit": "27374d986b60119efd1174f666f4397ceb6f7bb2",
      "tree": "99d504fee8cd37f6d1798431c6f87f900353047e",
      "parents": [
        "521644beb8f0a100b08a4cfb91c6aafb469925aa"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Mar 19 20:15:46 2020 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Mar 23 18:19:57 2020 +0000"
      },
      "message": "Add new dex file support constructor.\n\nThe requirement of an r-value for the DexFile constructor made it\nhard to use and required a bunch of std::move calls.\n\nAdd a constructor that takes a unique_ptr instead.\n\nBug: 151966190\n\nTest: Build and run art_libdexfile_support_static_tests.\nChange-Id: Ie6711be8efce62f591814512f796605e20e1ac89\n"
    },
    {
      "commit": "6e44830b65de39f5d20342109f7cbc47e4624fe0",
      "tree": "42372667d930c57ef3384c1c4981fb5c1591ef8b",
      "parents": [
        "c76232ef401a036a9828fd27f22163619d9c1944"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Mar 20 12:00:47 2020 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Mar 20 12:20:06 2020 +0000"
      },
      "message": "Remove unnecessary vendor/recovery available from dexfile\n\nTest: m droid\nChange-Id: I040a70d390523d139b5e773640e1eab4bd3e8c5d\n"
    },
    {
      "commit": "310432e7c8b36a2d112376fb76369d4c2487763d",
      "tree": "ee844789b7f86c66e6877c6110c6376cb6fdd7a7",
      "parents": [
        "7f43595d5884497d874cfafe40030e9891b8d7d6"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Mar 04 10:58:29 2020 -0800"
      },
      "committer": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Mar 05 18:25:57 2020 +0000"
      },
      "message": "Fix bugprone-macro-parentheses warnings\n\nBug: 150783705\nTest: WITH_TIDY\u003d1 make\nChange-Id: If8462783e9e15d46a48004285ced2a0e04d27b42\n"
    },
    {
      "commit": "7f43595d5884497d874cfafe40030e9891b8d7d6",
      "tree": "484130ed501630c4ad3fe5314bb05b9a15b3b792",
      "parents": [
        "d6b07c53088f3b9a75a5df4b3128b7497c7a70e4"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Mar 04 15:40:34 2020 -0800"
      },
      "committer": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Mar 05 18:18:13 2020 +0000"
      },
      "message": "Fix/suppress bugprone-use-after-move warnings\n\nBug: 150783499\nTest: WITH_TIDY\u003d1 make\nChange-Id: I7278ce52e0f1a82ab8f7b0cf0bf346b55da829f8\n"
    },
    {
      "commit": "7c2f69e42e5347820ada07c88de5a79f355c61be",
      "tree": "0d9e2ab31ca9fcb716d6c3283bd6a83f32dc39d5",
      "parents": [
        "7eca3779b7e3652565265b424a85ae329887c32d"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Wed Jan 15 15:43:32 2020 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Feb 06 22:56:04 2020 +0000"
      },
      "message": "apex_available becomes more correct\n\nPreviously, Soong didn\u0027t follow the static dependencies when checking\napex_available. As a result, a module that is not available to an APEX\n(or to the platform) was able to be statically linked from the APEX (or\nthe platform).\n\nAs the Soong bug is fixed, unchecked dependencies have revealed and this\nchange reflects the finding.\n\nExempt-From-Owner-Approval: cherry-pick from internal\n\nBug: 147671264\nTest: m\nMerged-In: I6d9dbe31a8d46d26a4925462edd1984281bd203a\n(cherry picked from commit a24189de28d3dc078ffe3e694816859bce9ce730)\nChange-Id: I6d9dbe31a8d46d26a4925462edd1984281bd203a\n"
    },
    {
      "commit": "6ef7713cf58629f8c5edce8554a1b60fbfdd1de2",
      "tree": "4c17a77fffa9bef0322de5f5c770daef01b0e49a",
      "parents": [
        "21c5b6a410c567ccbb7e8ea066f1c4ba954f01a2"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jan 21 13:52:11 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jan 21 14:17:48 2020 +0000"
      },
      "message": "Remove dead code related to profile collection.\n\nThis code had been dead since\n    https://android-review.googlesource.com/411660 .\n\nTest: m\nChange-Id: I17440d80971bb14ec062ed8b982b9cdd70383efb\n"
    },
    {
      "commit": "066dd902930582873e7d9372ac0c8483ac700cb9",
      "tree": "f3a0b47419fea78001faea017ba04e630e82fd2e",
      "parents": [
        "fb537087516e34e92e3c030ef2f7fc8b233d7a47"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Dec 19 02:11:59 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Dec 20 01:17:37 2019 +0000"
      },
      "message": "Revert submission 1194828-revert-1191937-art_apex_available-DWXQGTKMAR\n\nReason for revert: relanding with fix\nReverted Changes:\nIc4119368c:Revert submission 1191937-art_apex_available\nIa084976bb:Revert submission 1191937-art_apex_available\nIada86226d:Revert submission 1191937-art_apex_available\nIc76735eac:Revert submission 1191937-art_apex_available\nI1eb30e355:Revert submission 1191937-art_apex_available\nIcaf95d260:Revert submission 1191937-art_apex_available\nIe8bace4be:Revert submission 1191937-art_apex_available\nI8961702cf:Revert submission 1191937-art_apex_available\nI39316f9ef:Revert submission 1191937-art_apex_available\nI522a7e83b:Revert submission 1191937-art_apex_available\nI8b9424976:Revert submission 1191937-art_apex_available\nI48b998629:Revert submission 1191937-art_apex_available\n\nChange-Id: I7a101d39ff63c153675e4e741f9de1a15a778d33\n"
    },
    {
      "commit": "80599a28d1c865de7644a87111f49ee3b30f7c41",
      "tree": "e56dcf999630a752cd955a06c7f4c00b7add290b",
      "parents": [
        "1e88f980a85056165312331746862dc48186bc54"
      ],
      "author": {
        "name": "Joseph Murphy",
        "email": "murj@google.com",
        "time": "Thu Dec 19 01:06:54 2019 +0000"
      },
      "committer": {
        "name": "Joseph Murphy",
        "email": "murj@google.com",
        "time": "Thu Dec 19 01:06:54 2019 +0000"
      },
      "message": "Revert submission 1191937-art_apex_available\n\nOriginal Commit Message:\n\"\"\"\nRename modules that are APEX-only\n\nThe renamed modules are only available for APEXes, but not for the\nplatform. Use the \u003cmodule_name\u003e.\u003capex_name\u003e syntax to correctly install\nthe APEX variant of the modules.\n\"\"\"\n\nReason for revert: Build Cop - Breaks about 15 AOSP targets, with high confidence due to these changes being the only non-robot changes in those builds.\n\nReverted Changes:\nI190ce2d10:Use apex_available property\nI990e0a67e:Use apex_available property\nI0d1295683:Revert \"Avoid duplicated classes for boot dex jars...\nI5fb725403:Find the jar libraries in APEX from the correct pa...\nI322b1efcc:Rename modules that are APEX-only\nIfa2bd0f8f:Use apex_available property\nIac6533177:Use apex_available property\nIe999602c6:Use apex_available property\nI2a3d73397:Use apex_available property\nIc91bcbb9a:Use apex_available property\nIa6c324eed:Use apex_available property\nI964d0125c:Use apex_available property\n\nChange-Id: I1eb30e355cfce316b94cde0dd176002af8d222bb\n"
    },
    {
      "commit": "1e88f980a85056165312331746862dc48186bc54",
      "tree": "0cbeeaf951d6bd637a46f4f51faf80587f3ecc2b",
      "parents": [
        "c9af14e93f6a2691bf8231752d8d7c3e41b14c76"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Mon Dec 02 13:44:06 2019 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Dec 19 00:21:38 2019 +0000"
      },
      "message": "Use apex_available property\n\nUse apex_available property to prevent modules that are only for the ART\napex from being used outside of the APEX.\n\nThis change also fixes the reference to\n$(TARGET_OUT_SHARED_LIBRARIES)/$(lib).so to $(lib).com.android.art.debug\nphony module since the former is never installed to the system partition\ndue to their \u0027apex_available\u0027 settings.\n\nBug: 128708192\nBug: 133140750\nTest: m\nChange-Id: I990e0a67e066d9b1dc221748422a2f44449258da\n"
    },
    {
      "commit": "0d38e8587c014e600bc6ee916aa15912c0ef190d",
      "tree": "45665cedc42762fe6134ad869e5e9329d1f90495",
      "parents": [
        "a697b477705d52983611ef76e0f74ea41f354e61"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Dec 11 09:37:19 2019 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Dec 16 16:59:31 2019 +0000"
      },
      "message": "Keep the debug_frame for some arm32 art libs.\n\nFor these libs:\n- libart.so\n- libartbase.so\n- libdexfile.so\n- libprofile.so\n\nNewer clangs have become much better at optimizing code, and the\narm exidx unwind information is insufficient to properly unwind. Do not\nremove the debug_frame when stripping. It is not that big in these\nlibraries, and it only adds about 350,000 bytes in total.\n\nBug: 145790995\n\nTest: Ran this with new clang: art/test/run-test --always-clean  --chroot /data/local/art-test-chroot -O --prebuild --compact-dex-level fast --interpreter --no-relocate --runtime-option -Xcheck:jni  137-cfi\nTest: Verified that the shared libraries built for arm64, x86, x86_64 versions\nTest: do not contain a .debug_frame but do contain symbol tables.\nChange-Id: I67c39333dc5fb3c7cb84324852682225ba5ad33e\n"
    },
    {
      "commit": "a00b54b74bee06c006b8bebfbef85e2801de293c",
      "tree": "6edb2a96c1f89ae913e6b5f190b117cb290239e8",
      "parents": [
        "e571a283b73fb4621c401811f523503b3266564b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 03 14:36:42 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 04 12:04:36 2019 +0000"
      },
      "message": "Helpers and refactorings to prepare for interpreter optimizations (x64)\n\n- Add data structure offsets that will be used in assembly code.\n- Be explicit about a stack overflow in a fault handler.\n- Move assembly helper code in asm_support so interpreter can use it.\n- Support putting literals in InterpreterCache.\n- Fix artHandleFillArrayDataFromCode for x64.\n\nBug: 119800099\nTest: test.py\nChange-Id: I2729f87fe5d09c04ae2e7081636f0cd89ac14c21\n"
    },
    {
      "commit": "c7c711bb7303586e66c8c0ce18a4cc8f9d5d904c",
      "tree": "e4e44b517c0c127e30efcca41dfafd0a10b27464",
      "parents": [
        "129d61b4c45ee2cf14a9ea964ec97bca1441b621"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Oct 31 15:23:56 2019 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Nov 06 07:42:38 2019 +0000"
      },
      "message": "Remove visibility exceptions for view_compiler\n\nBug: 133140750\nBug: 142948359\nTest: m\nChange-Id: I5919f20167e98e729c8b47c1130220697ab2e00a\n"
    },
    {
      "commit": "8b236fac816beb18e4919e2c4260da843257a4e3",
      "tree": "254db07a53f792f5ae1318bb4c6381802960a20c",
      "parents": [
        "17fc3f780a4e6d3ec62d9e7f37a22a5097cc03b1"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Oct 09 23:03:14 2019 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 29 08:38:06 2019 +0000"
      },
      "message": "Remove visibility to ART internals for //cts/tests/tests/appop.\n\nTest: m cts\nBug: 133140750\nChange-Id: Id26ccdd2c80e79fcb013aac3ecfe1798bdb6a7a2\nMerged-In: Id26ccdd2c80e79fcb013aac3ecfe1798bdb6a7a2\n"
    },
    {
      "commit": "7e4388293943278fe0e03ba713550d311e607173",
      "tree": "90f9aad684c38f9c8a43671179c5977bfeb3e07e",
      "parents": [
        "7f958e36546bc0ebf92573da24ff620179526243"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Oct 24 09:56:06 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Oct 25 14:38:21 2019 +0000"
      },
      "message": "Add comments about why we have copied methods.\n\nTest: N/A\nChange-Id: Iafa614618cdb1656dad6c03242f4fc6f5a74db1d\n"
    },
    {
      "commit": "35cffd6e9befc4dc288d8661e196f765b1205a6b",
      "tree": "8e0068f140adfac8d4708fb23a99453678643435",
      "parents": [
        "93815555c40b4701328e524bc88a8ff025271bae"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Oct 10 00:43:39 2019 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Oct 19 12:20:44 2019 +0000"
      },
      "message": "Remove visibility to ART internals for a test that doesn\u0027t need it.\n\nTest: m\nBug: 133140750\nChange-Id: I1f8b6d5cfdf9e7719e88e116bf1fd7628b0dd240\n"
    },
    {
      "commit": "93815555c40b4701328e524bc88a8ff025271bae",
      "tree": "398203aa7020e28a96a43fb14070da966b4d39a6",
      "parents": [
        "289e7124653b58a42a9cb431117362890f584945"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Oct 10 00:30:47 2019 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Oct 19 12:20:44 2019 +0000"
      },
      "message": "Remove simpleperf visibility to ART internals.\n\nNo longer necessary after removing the dependency on\nlibdexfile_static_defaults in simpleperf.\n\nTest: m\nBug: 133140750\nChange-Id: Ie07b805354942befd0051963b10c2230ddbee598\n"
    },
    {
      "commit": "449011217844401ed491ad0f89dcba21cc26bfc4",
      "tree": "5713f52331c0cd3b881df80f4314f9ea2a0f09db",
      "parents": [
        "5ee206f3ee081424b323844a4fc91c3d0e89aa89"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Oct 04 01:03:48 2019 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Oct 09 12:06:05 2019 +0000"
      },
      "message": "Add a function that fails softly if libdexfile(d)_external.so cannot be\nloaded.\n\nlibunwindstack needs it since it is used in situations where we cannot\nguarantee that libdexfile_external.so is available, e.g. from\nlibc_malloc_debug.so in the bootstrap Bionic.\n\nTest: m test-art-host-gtest-art_libdexfile_support_tests\nTest: m test-art-host-gtest-art_libdexfile_support_static_tests\nBug: 139408016\nChange-Id: I0c311222baaafbf5c3a0f7d3f9f2d83d4abbaf90\n"
    },
    {
      "commit": "621afb45075e2fee1024d34d8c6fc0df828dc4a6",
      "tree": "404ed4c98c2130b1d8761511f38d3f4b830ddfd1",
      "parents": [
        "4815e7209ef2558c861036b05a3082d32909b236"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Mon Sep 23 22:01:36 2019 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Sep 26 14:24:43 2019 +0000"
      },
      "message": "Avoid linking libdexfile_support into static executables.\n\nIt doesn\u0027t define -DSTATIC_LIB, so it ends up compiling in dlopen() calls\nthat don\u0027t work in static executables. Use libdexfile_support_static\ninstead, which is intended for this use. That also requires adding a\ncorresponding libdexfiled_support_static.\n\nThis also fixes d/non-d library mixup because libdexfile_{external,support}\nwhich depend on non-d libs were used in libartd_static_defaults.\n\nTest: Build \u0026 boot\nTest: art/test/run-test --chroot /data/local/art-test-chroot --jit --64 --timeout 5 151-OpenFileLimit\n  and check that logcat has signal_dumper output without any fatal error\nBug: 141485154\nChange-Id: I8005373814d73ceefc2891a77204d4ba89abb922\n"
    },
    {
      "commit": "d3ee98a38ff14400f06ceeb7cd22502d1fd4a1aa",
      "tree": "dd6b9545eb90c9eb0d49310e4819c8782bdc4d5f",
      "parents": [
        "53d220e4ab1fc09921e11cabd8fdba388079f792"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Mon Sep 23 16:26:50 2019 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Mon Sep 23 20:32:33 2019 +0100"
      },
      "message": "Restrict visibility of a static library module.\n\nStatic linking violates the APEX surface, so it shouldn\u0027t be public.\n\nBug: 133140750\nTest: m\nChange-Id: If75e74c24574679aed8c6499f8e70a6419acebbc\n"
    },
    {
      "commit": "b4abe0a193871684ec712fc00b49e9764978b7c9",
      "tree": "ad43199c8efa37e5f5cc4c6d86e72cfe0c9af899",
      "parents": [
        "f3e6c5eada7521d7c4ddc86307474f389f53081e"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri May 17 19:22:55 2019 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Sep 20 13:19:52 2019 +0000"
      },
      "message": "Limit visibility of ART libraries, binaries, and headers.\n\nThis simply records the visibilities necessary to keep things working - more\nwork is required to vet them.\n\nTest: m\nBug: 133140750\nChange-Id: I776d6b79c4c2b214556070c850ae5321d5f8b949\n"
    },
    {
      "commit": "bac1a8058e624b4222b5a87063a655065d4f2fe3",
      "tree": "14414157ac65e46b7d518e570ae371674a414a5a",
      "parents": [
        "b45fc222fa77ee79e415f4a37bc2cf2eeedaec20"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 19 12:48:43 2019 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 19 21:18:33 2019 +0000"
      },
      "message": "Revert \"ART: Check dex file constraint A1\"\n\nThis will be checked by the method verifier. Checking it in the\nstructural verifier causes some apps to stop working.\n\nBug: 140921952\nTest: manual\n\nThis reverts commit d1abab7110101d65774f9d090850d20aaa07b661.\n\nChange-Id: I3cae361a9ad0f597bcd84d0a538fcf04e448c349\n"
    },
    {
      "commit": "4ac0e1571e015a01d75091c3daef065f9624ad77",
      "tree": "4d13edeab88bd6fd724388c48385b0c3cca4f3a8",
      "parents": [
        "5a2301d897294ff4ee6de71f459dc2566dc3fa1a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 18 06:14:50 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 18 06:14:50 2019 +0000"
      },
      "message": "Revert \"Revert \"Basic structural redefinition support\"\"\n\nThis reverts commit 5a2301d897294ff4ee6de71f459dc2566dc3fa1a.\n\nBug: 134162467\n\nReason for revert: Relanding as unclear if issue is due to topic.\n\nChange-Id: Ib1d1cf2e9132e30c9649b760ae9ae2d8ceacf843\n"
    },
    {
      "commit": "5a2301d897294ff4ee6de71f459dc2566dc3fa1a",
      "tree": "2bd06ab3f463734994b3d251f6115514520dbb3f",
      "parents": [
        "4eb6eb40e88214fcc874d93e75660cb580cb4d58"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 18 06:11:22 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 18 06:12:13 2019 +0000"
      },
      "message": "Revert \"Basic structural redefinition support\"\n\nThis reverts commit c971eafeff43e4e26959a6e86b62ab0a8f1a6e1c.\n\nBug: 134162467\n\nReason for revert: Breaks on redefine-stress\n\nChange-Id: I4e38da23d65b5b34b26b5ab537a3583328e078a4\n"
    },
    {
      "commit": "c971eafeff43e4e26959a6e86b62ab0a8f1a6e1c",
      "tree": "f8647487e7465712fd73118ceb89e13167a12648",
      "parents": [
        "1ba7e8c10af4e270864a417044244d63db53ccf5"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Aug 13 10:50:38 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 17 23:52:12 2019 +0000"
      },
      "message": "Basic structural redefinition support\n\nThis adds basic support for adding methods and fields to already\nloaded classes using redefinition. This \u0027structural class\nredefinition\u0027 is currently limited to classes without any virtual\nmethods or instance fields. One cannot currently structurally redefine\nmultiple classes at once nor will structural redefinition trigger the\nstandard redefinition events.\n\nAfter structural redefinition all references to the old class, and its\nfields and methods are atomically updated. Any memory associated with\nthe static fields of the old class is zeroed. Offsets for field access\nmight change.  If there are any active stack frames for methods from\nthe redefined class the original (obsolete method) code will continue\nto execute. The identity hash code of the redefined class will not\nchange. Any locks being held, waited or blocked on by the old class\nwill be transferred to the new class.\n\nTo use this feature the process must be debuggable and running with\n-Xopaque-jni-ids:true.\n\nFor device testing use a wrap.sh that adds the following flags:\n\n    \u0027-Xopaque-jni-ids:true -Xcompiler-option --debuggable -XjdwpProvider:adbconnection\u0027\n\nStructural redefinition only available using the\n\"com.android.art.UNSAFE.class.structurally_redefine_class_direct\"\nextension. This will not trigger the normal class-redefinition events.\nOnly one class may be redefined at a time.\n\nNB There are still some holes in this potentially allowing obsolete\nmethods/fields to be visible. Most notably during jni-id, MethodHandle\nand VarHandle creation as well as potentially other places in the\nruntime. These holes will be closed by later CLs. Until then the\nextension to access structural class redefinition will remain tagged\nas UNSAFE.\n\nTest: ./test.py --host --all-compiler\nBug: 134162467\n\nChange-Id: I825d3a4bdb9594c0147223ae69f433ce9bbfc307\n"
    },
    {
      "commit": "7ed5e6002fc493984b3a4887a867ef751a139b4d",
      "tree": "0aa7dc09bcf352ff4c9bd3ff0da2f66e51c12165",
      "parents": [
        "bf7ce2508c6ed8beb2431fba43af3cdd68a8eb63"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Wed Sep 04 17:25:23 2019 +0900"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Sep 05 23:21:31 2019 +0000"
      },
      "message": "Export headers from libdexfile_external\n\nlibdexfile_external didn\u0027t export any header. This caused the abi dumper\nto (conservatively) treat all header files in its include paths as\nexported headers. As a result, the dump became unnecessary large due to\nthe transitively exported headers.\n\nFixing this by explicitly specifying the exported headers.\n\nBug: 140166209\nTest: m\nChange-Id: Icd6db4705bee6c38646f5d0251aeb65b19d00327\n"
    },
    {
      "commit": "ab5f4c17a86b8c808dba862db566f0ffa1146367",
      "tree": "8f43f6a0581f8284009d9a235473667a7c94145e",
      "parents": [
        "c94b44dac8bcee13ae7eedd6fe541ddf6dfc424b"
      ],
      "author": {
        "name": "Ulya Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Fri Aug 16 13:59:11 2019 +0100"
      },
      "committer": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Fri Aug 30 15:38:34 2019 +0000"
      },
      "message": "Allow space characters in SimpleName for DEX format 040.\n\nWe allow both ASCII and Unicode spaces (everything in the Unicode category\n\u0027Zs\u0027). This includes characters:\n\n  0x20, 0xa0, 0x1680, 0x2000..0x200a, 0x202f, 0x205f, 0x3000\n\nRe-enabled DX building in ART tests, as we temporarily need DX for testcase\ngeneration (until D8 is updated to support spaces in SimpleName).\n\nBug: 137432016\nTest: 2029-spaces-in-SimpleName\nTest: art/test.py --host -r -t 2029-spaces-in-SimpleName\nChange-Id: I02f0207a3a291caeb6c3070cc48ea8c55c792199\n"
    },
    {
      "commit": "61f071630083775fe64d177455a056daa7071eca",
      "tree": "4d8e610f3939ca23f588bcdffe66aa859ae1a3c5",
      "parents": [
        "81448a21dd3f2c4608496e6dc7a1f093dcccf1e0"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jun 26 12:44:04 2019 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Aug 02 10:36:58 2019 +0000"
      },
      "message": "Introduce a Testing Runtime APEX (test) module including ART gtests.\n\nDefine a new flavor of the Runtime APEX, having the same contents\nas the Debug Runtime APEX plus ART gtests that have dependencies\non Runtime APEX internal libraries.\n\nPreviously, when these ART gtests were built and installed in\nthe data partition, they would depend on \"legacy\" ART internal\nlibraries being installed in the system partition (not the ones\nfrom the Runtime APEX). As we plan to remove these ART libraries\nfrom the system partition, we needed a way to be able to build\nand install device ART gtests without triggering the installation\nof these legacy ART internal libraries.\n\nThis Testing Runtime APEX is meant to be used for ART testing only,\nand should never be included in any product.\n\nThis change adds build rules for the Testing Runtime APEX (and\ncorresponding unit tests), but does not replace the Debug Runtime APEX\nfor device testing yet (this will be implemented in a follow-up\nchange).\n\nAlso rename `art_apex_test` module type as `art_apex_test_host`.\n\nTest: m com.android.runtime.testing\nTest: art/build/apex/runtests.sh\nTest: art/build/apex/art_apex_test.py\nBug: 129534335\nChange-Id: I8d70bdcf7c6253dd5bc8786a702f130d444c3cb6\n"
    },
    {
      "commit": "d1abab7110101d65774f9d090850d20aaa07b661",
      "tree": "6e171d36e7c497c17efc26ab0f9c7be4f888094b",
      "parents": [
        "0134a28ec42f5c96a3dffcf496bf1af05d0942dc"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 31 16:14:00 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Aug 01 17:01:19 2019 +0000"
      },
      "message": "ART: Check dex file constraint A1\n\nTest: TODO\nChange-Id: I77d6c7e4d6cf47fdc0268326b30808b56b59b813\n"
    },
    {
      "commit": "4345aacf582a5206976d5bed98ab4abd7b9a8c40",
      "tree": "594191df77d214fac994b63761ac25bba257bb40",
      "parents": [
        "6b689ceb63b4fffaf0e617f7d363c841dd29e458"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Jul 17 15:51:54 2019 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 19 17:07:13 2019 +0000"
      },
      "message": "Cleanup some usages of include_dirs\n\nThe include_dirs property causes problems when unbundling as they can\ndirectly reference directories inside the runtime module repositories\nwhich will break the unbundled build as those repositories will not be\npresent. While these usages do not cause problems as they are\nreferences within the runtime module repository they need removing so\nthat the build can enforce no usage of runtime module repository paths\nin the include_dirs property.\n\nThis change:\n* Replaces include_dirs with local_include_dirs where possible.\n* Uses libnativehelper provided header libs, this is possible as they\n  have been updated to build against the NDK.\n* Adds headers for disassembler, libdexfile\n* Makes libart_runtime_headers build against NDK.\n\nTest: m checkbuild\nBug: 134379140\nChange-Id: Iaf065caf4b6a2fcf252f6d5da8fff5be97a242ea\n"
    },
    {
      "commit": "323844002e54243e295497e7f829e46a533da621",
      "tree": "e6219f651332ee140042e4e0d4c975919f4fe9bf",
      "parents": [
        "297a0533d2e3f1d49f0b73c5d1e3b09ce0418de2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 17 20:06:44 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jul 18 13:12:57 2019 +0000"
      },
      "message": "jitzygote: Handle case of methods having the resolution stub.\n\nWe need to cache the compiled code until the class is initialized.\n\nTest: test.py\nTest: jitzygote config boots\nBug: 119800099\nChange-Id: Ib7a1efc3e101d9dabfad963621a1fe4a142e9b29\n"
    },
    {
      "commit": "56cb3ceba9d5a44b1460b12b81c27737a7c0ec3e",
      "tree": "0c04ea38fc9eb98bab7e9f6bd3a49ae7be930188",
      "parents": [
        "60415ae617133fd06b3dd909b6db37f5c26dcd6b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 02 14:40:14 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 05 15:58:24 2019 +0000"
      },
      "message": "ART: Slightly simplify/modernize dex_file_verifier.cc\n\nUse anonymous namespace instead of static. Make things proper\nconstexpr functions. Move definitions to class when methods are\nsmall.\n\nTest: m test-art-host\nChange-Id: Iadeac41d24bd35c88825fcfae02fccb40289b82a\n"
    },
    {
      "commit": "60415ae617133fd06b3dd909b6db37f5c26dcd6b",
      "tree": "0cae4f834b8398b6f8ef52a942b7dfc94db724fc",
      "parents": [
        "07a560d98c5e5e6dfcdb966d19f9d2cc155ace4f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 02 14:03:13 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 05 15:58:24 2019 +0000"
      },
      "message": "ART: Move DexFileVerifier class to cc file\n\nHide all details. None were accessible before anyways. Instead,\nonly expose art::dex::Verify.\n\nTest: m test-art-host\nChange-Id: I19a68440045622b78c1678c92027f6e0e1185d75\n"
    },
    {
      "commit": "07a560d98c5e5e6dfcdb966d19f9d2cc155ace4f",
      "tree": "fd062bb732d8b09da9dbb12d0079190cf472ac09",
      "parents": [
        "e32d24c75bf62e3cb9bff266ad4be859634320a9"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 02 11:17:42 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 05 15:58:24 2019 +0000"
      },
      "message": "ART: Encapsulate init-optimization fields\n\nPut fields that belong together into a struct.\n\nTest: m test-art-host\nChange-Id: Ie0a4dfb2201b7603c6cf78e361fe0b264ab02e06\n"
    },
    {
      "commit": "e32d24c75bf62e3cb9bff266ad4be859634320a9",
      "tree": "73a9c51958a77b3040b0ce04041424930b709873",
      "parents": [
        "d17eac6b037f67494e31671d1a1d9d233ba3f237"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 05 10:28:59 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 05 15:36:58 2019 +0000"
      },
      "message": "Store zygote compiled code in a shared map.\n\n- Store flags in the ArtMethod to know that it is compiled by the zygote\n- Query the map when entering a zygote compiled method from the\ninterpreter.\n\nBug: 119800099\nTest: boots\nChange-Id: Ib1a38266573e28d371034d02d6bb83f9b8b2e317\n"
    },
    {
      "commit": "f5e3c66d63437ff1cc088b6a58e566fb7b5a3482",
      "tree": "dcea409ba8d6105875ca8614951bb86873c1921d",
      "parents": [
        "4d6ca2e01e5e9b0006b94039f53e552dd0236d02"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 01 14:54:23 2019 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 02 21:30:29 2019 +0000"
      },
      "message": "ART: Use bitset in dex file verifier\n\nUse a bitset instead of a hash set. The maximum memory usage is 8K,\nwhich is reasonable and bounded.\n\nInstruction count improvement is in the noise (a percent of a percent).\nBranch misses improve by a percent.\n\nBug: 110852609\nTest: m test-art-host\nChange-Id: I8bb44ba8ab90db8ef632f2977774b389c3a504b6\n"
    },
    {
      "commit": "1459929a7e9ea96932b6c24597e1692b9b05606c",
      "tree": "c682a4cdfbf11508b693c633ba311a6bb93e53d5",
      "parents": [
        "eaa84415d382df617f3bc7a84d3b109078adaba5"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jun 17 13:08:14 2019 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 27 22:51:55 2019 +0000"
      },
      "message": "ART: Change unordered_set to HashSet\n\nChange defined_classes_ to a HashSet and reserve space to avoid\nallocations.\n\nBug: 110852609\nTest: m test-art-host\nChange-Id: I79fa57b781257777de76362b3aff4974e0dccd36\n"
    },
    {
      "commit": "5254d6f23d6a3c8cde1634ce144a417d1cee3832",
      "tree": "a553a15131af4f66bc892637d2d2a30085390f7b",
      "parents": [
        "c4a546c9a8896d53deab715aa9e8fca1f89e9d57"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jun 21 11:22:47 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 26 18:15:10 2019 +0000"
      },
      "message": "ART: Use memoization for type id table check\n\nReduces dex file verifier cycles by 2%.\n\nBug: 110852609\nTest: mmma art\nTest: m test-art-host\nChange-Id: Id5990226239c3c9176a039c45dde699847acbca1\n"
    },
    {
      "commit": "c4a546c9a8896d53deab715aa9e8fca1f89e9d57",
      "tree": "c506a92acf5290ec73c65fd659a67a09c409340a",
      "parents": [
        "7107e8c3974036a6b2362da2d990907d9026cbe8"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 20 16:53:23 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 26 18:15:10 2019 +0000"
      },
      "message": "ART: Cache type index validity\n\nUse a bit vector to memoize checked type descriptors.\n\nReduces dex file verifier cycles by 10-30%.\n\nBug: 110852609\nTest: m\nTest: mmma art\nTest: m test-art-host\nChange-Id: Ie3aa4c551e03b013d7b26d80bc9cd3e804a0f50c\n"
    },
    {
      "commit": "1e52a07b4de0f000028e55c332aa46495f60879c",
      "tree": "1eb7dfdce749461c5a8997cbde49ed6d0fea2aa0",
      "parents": [
        "e0ce8bf743b7fc5816bc4045716d75378ce3b654"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jun 25 09:12:04 2019 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jun 25 16:25:13 2019 +0000"
      },
      "message": "Correct Indicies -\u003e Indices\n\nThis is a misspelling that is somewhat common in art/.\nFix up all the instances I could find.\n\nTest: ./test.py --host\nChange-Id: I0a5def6e4126cf4e61efb0619bd59eb45ba7f324\n"
    },
    {
      "commit": "b11d521ed04d411aad61e5d5d7e4f81edfe49542",
      "tree": "d1d02a92f49605f2fa32571c6f03fb6d2d323422",
      "parents": [
        "521ff988097af7c79a0b94368d33d21f7c7dfb7d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jun 17 09:23:17 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jun 18 20:00:58 2019 +0000"
      },
      "message": "ART: Preallocate offset map\n\nReserve space in the offset-to-type map in the dex file verifier.\nThis avoids reallocations and improves performance, and in the\ncommon case reduces peak memory consumption.\n\nBug: 110852609\nTest: m test-art-host\nChange-Id: I57bf32e6486c115b35fb2bdccb789a8b09272840\n"
    },
    {
      "commit": "8867f3b017546ff187a99ac57bc91ac2bcf1f4f9",
      "tree": "29dbf68255584d48694bd8a50b23d8758987278c",
      "parents": [
        "d3b6664f454e7ea61597c0235b4a9df95056f4cd"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri May 31 20:01:46 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Jun 07 17:01:44 2019 +0000"
      },
      "message": "Switch-interpreter: Add new \u0027next\u0027 instruction field.\n\nThis field is set by handlers to the next instruction to execute.\nIt is initialized to fall-through and can be overwritten as needed.\n\nAs the first step, only DCHECK its value against the \u0027inst\u0027 field.\nThe next step will be to remove all the inst-\u003eNext_xxx() calls.\n\nTest: test.py -b -r --host --64 --interpreter\nTest: run-libjdwp-tests.sh --mode\u003dhost --variant\u003dX64 --debug --no-jit\nChange-Id: I92740d21871cf3a5b34d9d1615ad2a71ba021339\n"
    },
    {
      "commit": "436f6c1e53b735ace36fbfe48c337ece07d76e62",
      "tree": "77cadf8842b3d33f0491441c4c2e0d873a391f40",
      "parents": [
        "9a292a1d28c11eba629f6bd62d475af83b155f9e"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed May 22 13:28:42 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri May 24 17:55:27 2019 +0000"
      },
      "message": "Switch-interpreter: Add helpers to get opcode arguments.\n\nAdd trivial helpers to get opcodes arguments (A/B/C).\n\nEnsure the generic getters in Instruction can take\nadvantage of knowing the format at compile-time.\n\nAs the first step, I have simplified the code only where\nthe argument is used as index for SetVReg/GetVReg calls.\n\nTest: ART_USE_CXX_INTERPRETER\u003dtrue ./art/test.py -b --host\nTest: ART_USE_CXX_INTERPRETER\u003dtrue ./art/tools/run-jdwp-tests.sh \\\n      --mode\u003dhost --variant\u003dX32 --debug --no-jit\nChange-Id: I765c0eb16438806c3624fabe3aade040c7bb3387\n"
    },
    {
      "commit": "abdb4592fa28d6e75f1160f01cde58ad7c3fef37",
      "tree": "e887df0046489008f318fce65909ab0535aa386c",
      "parents": [
        "639e73b5ad1d96a1e67743735a13f7a268b455aa"
      ],
      "author": {
        "name": "Eric Holk",
        "email": "eholk@google.com",
        "time": "Thu May 16 08:33:12 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon May 20 19:35:19 2019 +0000"
      },
      "message": "Use string length from DEX instead of recomputing\n\nThis gives around a 2% improvement in startup time overall. Here are results from a selection of\napps:\n\ncom.android.gallery3d/.app.GalleryActivity: 203.2ms → 197.7ms (change: -5.4ms, -2.7%)\ncom.android.messaging/.ui.conversationlist.ConversationListActivity:\n  202.1ms → 199.1ms (change: -3.0ms, -1.5%)\ncom.android.contacts/.activities.PeopleActivity: 277.3ms → 270.7ms (change: -6.6ms, -2.4%)\ncom.android.camera2/com.android.camera.CameraLauncher:\n  351.7ms → 344.1ms (change: -7.7ms, -2.2%)\ncom.android.dialer/.main.impl.MainActivity: 259.5ms → 254.2ms (change: -5.3ms, -2.0%)\ncom.android.settings/.Settings: 189.0ms → 186.5ms (change: -2.4ms, -1.3%)\ncom.android.email/.activity.Welcome: 222.8ms → 219.3ms (change: -3.6ms, -1.6%)\norg.mozilla.firefox/.App: 370.2ms → 358.3ms (change: -11.9ms, -3.2%)\n\nThis is the average of 100 runs on a Pixel 2 XL.\n\nBug: 132691958\nTest: device boots, start app many times\nChange-Id: I93b6eb5105e32788cfc8159c6c21b400a161f86c\n"
    },
    {
      "commit": "0dc93b1ba94460b0ae126dd4db335261165c74b7",
      "tree": "78b3afa099dce52a1eb39d6a9788d610b14a1f6b",
      "parents": [
        "9b81ac36e161fd993eab17b43b93a96e8c63b5cc"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed May 15 10:30:22 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 17 20:40:21 2019 +0000"
      },
      "message": "ART: Run bpfmt over ART\u0027s blueprint files\n\nTest: mmma art\nChange-Id: Ic85df4770c12ec02836c877b243d4aec234aaada\n"
    },
    {
      "commit": "27a47a3c100658797032f443607eb0a62e9e537b",
      "tree": "bce8df6993df72bfe5a8b7cf4ee2dc56ee18fb19",
      "parents": [
        "957c538a4d712066e6d7a309ee07f013c8d2e0cd"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu May 16 13:29:15 2019 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu May 16 13:29:15 2019 -0700"
      },
      "message": "ART: Forward-declare ClassIterator and Signature in dex_file.h (iwyu)\n\nTest: mmma art\nChange-Id: I9385dd02db52ef10bf748cde118c1573733faffb\n"
    },
    {
      "commit": "2f7a55c0370583954239c8b36bf1beb2665d8379",
      "tree": "00550ea6a460b3044b8bea83a150cab0049b6d2b",
      "parents": [
        "3ba32d966cc836b997a9ac595f32504554b958e0"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu May 09 15:46:38 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed May 15 18:37:05 2019 +0000"
      },
      "message": "ART: Forward-declare DexInstructionIterator (iwyu)\n\nTest: mmma art\nChange-Id: I43269f47668eece5204cc0895895346205a274d1\n"
    },
    {
      "commit": "1389dd450eb257bbe48e94b2917c60d64fa10fe7",
      "tree": "da3f8ca00f986719b8e4fb111433244359d06088",
      "parents": [
        "b2a8964f4218c2c52dacf599ebf5cf69f8753bf0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri May 03 22:43:12 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon May 06 23:45:14 2019 +0000"
      },
      "message": "Track libziparchive API change.\n\nBug: http://b/129068177\nTest: treehugger\nChange-Id: I6632e246bf76f535a14de5e521bcdf65481ef544\n"
    },
    {
      "commit": "52fc7ab4d557cfbcd1a7494fd5bf52671c0e122f",
      "tree": "7f8cb1a73ecb9599b2a6687892ea66820d70cca9",
      "parents": [
        "917cfdb915bd7674e27d6fe353274318862e0d8b"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri May 03 11:03:52 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri May 03 13:58:40 2019 +0000"
      },
      "message": "Fix mac build: Enable libdexfile_external (attempt 2)\n\nBug: 131709594\nChange-Id: Id9110adfcb42a94701eccc421ca7d9cceacd4cd2\n"
    },
    {
      "commit": "b74f307cda4b1b186dcbdf6c84f1ee02a50ad3cb",
      "tree": "080b8c9b4317e2b5f4c942d0c7be6dbb18200dfa",
      "parents": [
        "1db789ea17f87415a38d72066ca0baf3f5252474"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed May 01 15:19:00 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu May 02 15:59:33 2019 +0000"
      },
      "message": "ART: IWYU for HiddenApi domain\n\nMake the domain a known char storage and forward-declare in DexFile\nto significantly reduce the list of transitive includes. Fix up\nmissing includes.\n\nTest: mmma art\nChange-Id: I9d43113e982fc0b509fd9a8168c6788e9431500a\n"
    },
    {
      "commit": "1db789ea17f87415a38d72066ca0baf3f5252474",
      "tree": "d4ef1ad7ec5ffcda670efb853481cc1db4326743",
      "parents": [
        "0e5dc3438d52568ce0dc026ac2a00e4c4b20476b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed May 01 14:54:43 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu May 02 15:59:03 2019 +0000"
      },
      "message": "ART: Small iwyu\n\nArtField doesn\u0027t need dex_file_types. This in turn exposes a\nmissing include in modifiers.\n\nTest: mmma art\nChange-Id: I318e2919121f350a0447f6fc0814d81779fd9cc5\n"
    },
    {
      "commit": "d112012197d2a6b4c96a710737b35d50d75098aa",
      "tree": "3d1a97d2d2c20f57969f025006c844687c835a8d",
      "parents": [
        "68fa4ca3138a4950a33c74283488681fb602e85c"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed May 01 00:21:43 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed May 01 00:23:10 2019 +0100"
      },
      "message": "Fix mac build: Enable libdexfile_external\n\nChange-Id: I8d905bc1e2aeec7a5610fac8b60bbcd5c9b1e8aa\n"
    },
    {
      "commit": "7711c35fa603b86d520991c4e97ca297add81881",
      "tree": "ce476e232ecf0176c5c9bed81f1528a1c6801fab",
      "parents": [
        "39239870737e3669ff1f85475458e5f57ed79194"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Apr 10 17:50:12 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Apr 30 08:11:20 2019 +0000"
      },
      "message": "Fix debug/release dependencies on libartbase\n\nWe load both the debug and release build when running tests.\nThe different builds have different layout of some classes,\nwhich can currently result in random native heap corruptions.\n\nFix the build dependencies to avoid the double loading,\nand add runtime check to avoid it in the future again.\n\nTest: test.py -b --host --64\nTest: test.py -r --target -t 001-HelloWorld\nChange-Id: Ie62f91dc06209c91e25ba5f11c9d61243ac7579d\n"
    },
    {
      "commit": "fc8e7598fe013bebff210b48347daf80316ac0a4",
      "tree": "37b6594c1f4e7e40bbdfcee88560a688db868620",
      "parents": [
        "8f88207206fe39f6dcb4e76e24716c81566f26cc"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 09 11:46:11 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 09 20:42:19 2019 +0000"
      },
      "message": "art: remove unnecessary references to external/zlib.\n\nBug: https://issuetracker.google.com/115695768\nTest: builds\nChange-Id: If28672497d5702e084ac033eceaeb31a18eb292e\n"
    },
    {
      "commit": "35a3f6a09931ee631a0377ee3ca98a7fb1f4f61d",
      "tree": "c3bbc93f5d7c5c74b49a03fc9a2609f7a918840e",
      "parents": [
        "3bfc694a4bcc9ef3de19b94a34701c76c6008071"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Mar 04 15:59:06 2019 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Apr 02 19:20:14 2019 +0000"
      },
      "message": "Create vdex file for dex loaded with InMemoryDexClassLoader\n\nPrevious CL introduced a background verification thread for dex bytecode\nloaded with InMemoryDexClassLoader. Extend the logic to collect the\nresults of class verification into an instance of VerifierDeps and dump\nit into a vdex file in the app\u0027s data folder.\n\nThe background thread does not collect full VerifierDeps (e.g.\nassignability dependencies, etc), just a bit vector of whether a class\nwas successfully verified or not.\n\nThe vdex format is extended to include boot classpath checksums and the\nclass loader context it was created for. These are optional and\ncurrently left empty for regular vdex files.\n\nThe generated vdex files are treated as a cache with a limited capacity,\ncurrently capped at 8 files. The least recently used file (in terms of\natime reported by stat()) is unlinked if the cache is full and a new\nvdex is about to be generated.\n\nBug: 72131483\nTest: art/tools/run-libcore-tests.sh\nTest: art/test.py -b -r -t 692 -t 693\nChange-Id: I26080d894d34d8f35f00c7925db569f22f008d2c\n"
    },
    {
      "commit": "d53f60658fb0d28279919cc856a55e4b6504dabe",
      "tree": "2e152d283254df61f7b18738a67e5fbce453c54b",
      "parents": [
        "fe1d952a9912bf597174dc636d0f87db06a8d925"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Mar 22 14:55:21 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Mar 27 15:11:58 2019 +0000"
      },
      "message": "Partially disable building ART for host on Mac.\n\nBuilding ART for host on Mac is not currently needed.\n\nBuilding ART for target on Mac still works.\n\nThe main motivation is remove the custom elf.h from the code base.\n\nBug: 73344075\nTest: \"m -j40\" on Mac.\nChange-Id: I4b6f7aa7b291dcb6d751374ecf8d15f35877bd2e\n"
    },
    {
      "commit": "8982186538943d31b9db0b94e9bf10b5c4a75ae7",
      "tree": "df8f79208eed6bd8801f9e4ec11a1d08e85078a5",
      "parents": [
        "4bb2af5e6163cf68ec65c5497983303302a15a09"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Mar 19 13:57:43 2019 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Mar 22 13:48:56 2019 +0000"
      },
      "message": "Support FDs for class loader context dex files\n\nWhen compiling secondary dex files, dex2oat/dexoptanalyzer must open\nall dex files in the given class loader context. However, these tools\ndo not have the SELinux permission to open app data files and instead\nrely on installd to open them and pass file descriptors via command\nline arguments.\n\nThis patch extends ClassLoaderContext::OpenDexFiles to support opening\ndex files from a provided list of FDs, assuming the order corresponds\nto the flattened class loader context. FDs can be passed to dex2oat/\ndexoptanalyzer using a new \u0027--class-loader-context-fds\u003d\u0027 command line\nargument. The format is a colon-separated list of integers.\n\ndexoptanalyzer is also extended with a separate mode in which\ndexopt-needed analysis is not performed, only the class loader context\nis flattened and list of its dex files is printed to standard output\nas a colon-separated list of paths. This mode is enabled with\n\u0027--flatten-class-loader-context\u0027 and is used by installd to obtain a\nlist of files it should open for dex2oat/dexoptanalyzer.\n\nBug: 126674985\nTest: atest installd_dexopt_test\nChange-Id: I46a671c90d14ad8615508c106a88ac1ee8a4ef28\n"
    },
    {
      "commit": "f1d973dd98e1f95a28718ab25c8452be3639708a",
      "tree": "1d936d4d69790a76822906c7df6ee07630a68ce4",
      "parents": [
        "6c5ed85653345b78c17faacf5e26a8e872b510f0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 19 13:38:34 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 19 16:45:31 2019 +0000"
      },
      "message": "Fix PrintableString() for 4-byte UTF-8 sequences.\n\nTest: Additional test in utf_test.\nBug: 128865240\nChange-Id: I535e028319393abb17ee258086e47593f80f4ed3\n"
    },
    {
      "commit": "a5c3a808020d81447bc19d07a99288e9d28a6e6c",
      "tree": "83a9b1eac0a7209e6e407c0462d0b1ba8f95f62c",
      "parents": [
        "98fb083a30e9b37685f943e2923e65e60e0a0971"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Mar 08 14:59:41 2019 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Mar 14 14:34:20 2019 +0000"
      },
      "message": "hiddenapi domain: Use oat dex file location if available\n\nTo determine the caller and callee domains of a hidden API access check,\nthe logic will test the dex location against several known system\nlocations. However, DexFile instances backed by an OatFile have relative\ndex locations to avoid need to rewrite the .oat file when moving files\nbetween folders. The canonical dex location is stored in the OatDexFile\ninstead.\n\nBecause the OatDexFile data structure is not available in libdexfile,\nmove the domain resolution logic to hidden_api.cc and resolve when dex\nfiles is first registered with the class linker.\n\nTest: m test-art-gtest\nTest: camera does not crash\nBug: 126901248\nBug: 127852529\nChange-Id: Id494b1c47a2199c227dec046174e08320b9cbc3b\n"
    },
    {
      "commit": "35e6caa39e407af25a8ecbadc4994a4f17c639dc",
      "tree": "90cac934587ded4a453d2e9e8e3048c92093ede3",
      "parents": [
        "23a8eb6623cef293dafd0b7be184a1695279525a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Mar 09 00:38:49 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Mar 09 03:20:01 2019 +0000"
      },
      "message": "Check /system/framework first in ArtDexFileLoader::Open.\n\nThis fixes art_dex_file_loader_test. The order was changed in:\nhttps://android-review.googlesource.com/c/platform/art/+/915434\n\nTest: art_dex_file_loader_test\nChange-Id: Ie7c05b8ece43f74948036f9c516e6f87deb370b9\n"
    }
  ],
  "next": "3c83921510c849cd43b90ab6094abce232c8c088"
}
