)]}'
{
  "log": [
    {
      "commit": "521644beb8f0a100b08a4cfb91c6aafb469925aa",
      "tree": "b316373d4708d8653e6749d5b3a70f4263cf6f94",
      "parents": [
        "7bbbe25f37ae70bebd121e0b4ea9bd53842281fe"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sat Mar 21 13:17:52 2020 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Mar 23 15:19:32 2020 +0000"
      },
      "message": "Call JitCodeCache::FreeAllMethodHeaders under JIT lock.\n\nThis ensures that both ArtMethods and the code are removed\nfrom the JIT atomically (otherwise other thread can interfere).\n\nI am not sure if this is partial issue, but keeping the\nallocated code and methods in sync makes sanity check happier.\n\nBug: 151137723\nTest: test.py -b -r --host --jit --64\nChange-Id: I8580a9112c86b277631c0b2f9dd245fd55a73559\n"
    },
    {
      "commit": "c76232ef401a036a9828fd27f22163619d9c1944",
      "tree": "2abf2af17f530d0328ac5326834647d29c8fe6f1",
      "parents": [
        "80495fdb62d96d68c8648db3236f614d94ac1e6e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 18 11:23:33 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 20 09:45:42 2020 +0000"
      },
      "message": "Fix relation between debuggable / JIT zygote.\n\n- Move the logic to clear precompiled in ClassLinker.\n- Add a null check on entries in ZygoteMap\n- Avoid doing JIT zygote actions (precompile, remapping boot images)\nwhen debuggable.\n\nTest: android.jdwptunnel.cts.JdwpTunnelTest#testAttachDebuggerToProfileableApp\nChange-Id: I9b5e391bb35aa04bbeba01b9b563b33f96395d2e\n"
    },
    {
      "commit": "b68bb7a02ea795fa4defb18b3f9ce31879d66271",
      "tree": "2aa9d13f36a5ae1625f520c397fae62fbcb155e6",
      "parents": [
        "dc9d6a0740982a6b1eab5f3c580d8825cc9ced9c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 17 10:55:25 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Mar 18 09:59:29 2020 +0000"
      },
      "message": "Fix compiling boot image extension with assume-verified.\n\nThe change https://android-review.googlesource.com/1246288\nenabled AOT initialization of classes for the compiler\nfilter \"assume-verified\". However, this was untested and\nbroken because aborted transactions would leave created\narray classes with partially rolled-back state on the heap.\nNote that for other compiler filters, the verification step\ncreates those array classes outside of a transaction.\n\nWe fix this problem by making sure that the initialization\nof an array class does not create any transaction records\nfor the class fields (we are keeping the defined class).\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nTest: adb root \u0026\u0026 \\\n      adb shell stop \u0026\u0026 \\\n      adb shell setprop dalvik.vm.boot-image \\\n          \u0027boot.art:/nonx/boot-framework.art!/system/etc/boot-image.prof\u0027 \u0026\u0026 \\\n      adb shell setprop dalvik.vm.image-dex2oat-filter \\\n          assume-verified \u0026\u0026 \\\n      adb shell start  # Starts correctly.\nTest: Extract the boot image extension compilation command\n      from the verbose log, change compiler filter to\n      \"assume-verified\" and execute with no crashes.\nBug: 119800099\nChange-Id: Id57a01af0a015c75a16eea12fd19599ae76ce49a\n"
    },
    {
      "commit": "dc9d6a0740982a6b1eab5f3c580d8825cc9ced9c",
      "tree": "b83398891eee267e77456e572e3b8302aa64ec86",
      "parents": [
        "4b90b86153819c84f672eeb25f88247f4ce56931"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 17 12:39:02 2020 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 17 12:39:02 2020 -0700"
      },
      "message": "Add more logging to Thread::SetState\n\nIn the case where SetState is used for a runnable state, add more\nlogging the DCHECK.\n\nBug: 151334951\nTest: make\nChange-Id: Ia1a0e60eed0815b459cbc5d1e7b60aed826245af\n"
    },
    {
      "commit": "bf7705509ea10d1f172bd37200ebbb6472a139a3",
      "tree": "32bd810acc8e00b23b0f88257100ac8bdcafc1a1",
      "parents": [
        "03008223bc443c2e7a411d6595671e376dea0a9b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 16 14:02:31 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 17 08:48:28 2020 +0000"
      },
      "message": "Don\u0027t run structural dex file verification in ClassLoaderContext.\n\nClassLoaderContext should only ensure that checksums match, structural\ndex file verification should happen when the runtime or the compiler\nruns a dex file.\n\nTest: boots and no regression\nBug: 150032912\nChange-Id: I23afc92bb01a4ce662c143638b2f2550e6ee6531\n"
    },
    {
      "commit": "e8ed866d391291e80f5d267cce1b5f913dcfc0fe",
      "tree": "ff0a5eb60e729089da76b167c152eff23c7e9d80",
      "parents": [
        "edccd3cc6d0b60bcf87295774b0728fd8755c329"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 13 13:55:44 2020 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 16 14:27:14 2020 +0000"
      },
      "message": "Add MOVE_EXCEPTION to compat throw\n\nIn some apps, move-exception soft fail and be handled like a throw.\nAdd it to compat throw to avoid verifier aborts.\n\nBug: 146178710\nTest: make\nChange-Id: I9068260044fda4508314dab49bfee5215a2d96b0\n"
    },
    {
      "commit": "edccd3cc6d0b60bcf87295774b0728fd8755c329",
      "tree": "b0f4ca89c39f12f495beca2deb0110df5f7a66d5",
      "parents": [
        "444dc1c77068e56b8fbb9789d74d34101f29bffc"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Mar 13 14:54:27 2020 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Mar 16 08:20:30 2020 +0000"
      },
      "message": "Retire VMRuntime.doNotInitializeInAot()\n\nThis was used to delay initialization of UnixChannelFactory.\n\nBug: 109735195\nBug: 144502743\nTest: art/test.py --host --prebuild --64 -r -t 071-dexfile-map-clean\nTest: atest PreloadCheck\nChange-Id: I51102f1241c1a9bf344c8cfeed9f88c625610763\n"
    },
    {
      "commit": "d8fd59974472bcf0bb0ed86778e555bdb09d0b1e",
      "tree": "eee92a307fa0a0405eb5f9302ff4a748e5342544",
      "parents": [
        "e1ee6f97e35c4798e532171213f4e2b50260e525"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 19 22:25:19 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 13 17:03:24 2020 +0000"
      },
      "message": "Reland^2 \"Add consistency CHECKs around ArtMethod fields.\"\n\nThis reverts commit 5945de03b6f6b35bcf6a575b2291e29ae7a2b1ee.\n\nReason for revert: CL can land now after\nhttps://android-review.googlesource.com/c/platform/art/+/1246288\n\nBug: 146765723\nChange-Id: I237b1e171d94d47a39b21ec8b33cffa0b087b285\n"
    },
    {
      "commit": "2e17cf4854138d3a3021fdddc7851215b0eba28b",
      "tree": "da227e647f9a54d90caf88610f3b4e24c8dad76b",
      "parents": [
        "eb070f085df78fc39ad2c06f0638edcf0537e6a3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 12 21:19:46 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 13 12:03:13 2020 +0000"
      },
      "message": "Revert \"ART: Conditionally remove loaded-oat-count check\"\n\nBug: 128688902\nBug: 150032912\nTest: boots\n\nThis reverts commit e912955b98cdc224f2f13455f592b63e96bf5634.\n\n(cherry-picked from commit 3734c2822fe2dc8eaaedbc311f9828ce443b02e6)\n\nMerged-In: I209489f69e4f2b02e7fa93090539575098a28025\nChange-Id: I209489f69e4f2b02e7fa93090539575098a28025\n"
    },
    {
      "commit": "eb070f085df78fc39ad2c06f0638edcf0537e6a3",
      "tree": "8d464c44bf9509d8da2a77b02ab5a84e9a7301bf",
      "parents": [
        "539d1d422776c50fea3b1e725ab2b063c533f911"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Mar 10 14:00:18 2020 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 13 10:59:36 2020 +0000"
      },
      "message": "Reland \"art: Add FileDescriptor fields to native Core Platform API\"\n\nThis reverts commit Ie9fa5a25d5352f214a16e10d5bbbe45da9f3c486.\n\nOriginal commit message:\n\nAdds descriptor and ownerId to whitelisted native Core Platform API.\n\nChange in reland:\n\nAdds a method to VMRuntime to disable the initialization of a class\nduring AOT compilation.\n\nBug: 144502743\nBug: 150680645\n\nTest: art/test/run-test --host 001-HelloWorld\nTest: art/tools/run-libcore-tests.sh --mode\u003dhost --variant\u003dX64\nTest: atest PreloadCheck\nChange-Id: I9facfe3d3fa27cf50a345d24be1e7d7e0d26c848\n"
    },
    {
      "commit": "ee2571618ec960659e1326b540dcd41610f9a277",
      "tree": "a650686a2dbf0b675c5ebff48a823c82a3459ba0",
      "parents": [
        "30fd85157260c91327c6b5a0816d312dd505c0e0"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Feb 28 15:50:13 2020 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 12 16:02:27 2020 +0000"
      },
      "message": "Revert^2 \"Support ART\u0027s target gtests in atest.\"\n\nThis reverts commit 615212399037ea41987282800f077941d7ec9f54.\n\nTest: Run the test locally\nChange-Id: I257b0cb1e4210a1d4ec3060c4470c0f8af2ee45b\n"
    },
    {
      "commit": "30fd85157260c91327c6b5a0816d312dd505c0e0",
      "tree": "355823ab233177d529baa873911cf08bb5b5deec",
      "parents": [
        "80dc7dc20855bf680fa598127f26e6047821bdd0"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Feb 20 20:27:58 2020 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Mar 12 12:10:49 2020 +0000"
      },
      "message": "Refactor RemoveNativeDebugInfoForJit.\n\nThis is partial revert of CL/1099280 (Remove global maps).\n\nIt somewhat resurrects the lazy method removal.\n\nThe original goal was to only remove methods from the GC,\nand do all of them in bulk for simplicity and efficiency.\n\nHowever, this is proving infeasible since we have several\ncorner cases which remove methods outside the GC code path.\n\nThe behaviour for the GC code path is preserved by this CL.\nInstead of passing method array, the methods are individually\nmarked for removal and then repacking is immediately forced.\nThe only difference is that coroner cases are done lazily.\n\nTest: ./art/test.py -b -r --host --jit --64\nChange-Id: I42729545d6b51df788d92f9cf149a6e065b90c68\n"
    },
    {
      "commit": "fc47d6bf37703ba58960a4b25723263a160c5555",
      "tree": "536a80d3d3c19ba1095d42395ba63ceb1dd03e18",
      "parents": [
        "e5c48f75476bc7bac843c862dfeeaeed2b95d94f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 11 15:05:43 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 11 17:00:06 2020 +0000"
      },
      "message": "Adjust JitCodeCache::TransitionToDebuggable.\n\nOnly clear the precompiled flag if the method has it. Also added some\ncomments.\n\nBug: 144947842\nTest: atest CtsJvmtiRunTest1982HostTestCases\nTest: 689-zygote-jit-deopt\nChange-Id: I8b2856823f359076c41240f463902eb57c1f7603\n"
    },
    {
      "commit": "e5c48f75476bc7bac843c862dfeeaeed2b95d94f",
      "tree": "81457b683b6d55148eea0b023ddb264daad9f502",
      "parents": [
        "085f3805cdfde5fdb130e31a2cf83071598ef082"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 11 11:28:43 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 11 15:01:33 2020 +0000"
      },
      "message": "Revert \"ART: Forbid the zygote to load code outside of system\"\n\nThis reverts commit 9ef308da0ea8d1df2edf65d4957599fafcc56aeb.\n\nBug: 150032912\nBug: 129454856\nTest: boots\nChange-Id: I522b1e0e2b9116239ca206aa5c65347976eac7ab\n"
    },
    {
      "commit": "280e6c323419ad08860514ff8c09eefb8fc8e969",
      "tree": "db1d3d73a8c00c5df9cb8809dc3ab53e5ed09af6",
      "parents": [
        "b28e3042b1dcab32c328b356a31f6ea8b50a9f9c"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Mar 03 13:52:07 2020 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 10 18:46:53 2020 +0000"
      },
      "message": "Jit-zygote compiled code isn\u0027t debuggable\n\nWe check the debuggablity of compiled code by checking to see if it\nwas compiled by the JIT. This works since we throw all precompiled\ncode out when transitioning to debuggable. Unfortunately with\njit-zygote the non-debuggable zygote methods can be incorrectly seen\nas debuggable when encountered on the stack. This can lead to\nincorrect deoptimization and other issues. To fix this we explicitly\nexclude jit-zygote code from the check.\n\nBug: 144947842\nTest: ./test.py --host\nChange-Id: I4e953f64f8261b7a16d7c3199cec89998af0c1cf\n"
    },
    {
      "commit": "b28e3042b1dcab32c328b356a31f6ea8b50a9f9c",
      "tree": "4cfe4e2e6800db4ca843dd94a80e54fe97b8cfd7",
      "parents": [
        "b1fe5e18318c3af8d0cedc3f19cb6bc51817b859"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Mar 06 13:02:46 2020 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 10 18:46:53 2020 +0000"
      },
      "message": "Clear PreCompiled when we transition to debuggable after zygote fork\n\nWe were leaving the PreCompiled bits set on method objects. This meant\nthat in some circumstances non-debuggable compiled code could be\nreattached to methods after the switch to debuggable with the zygote\nfork.\n\nBug: 144947842\nTest: atest CtsJvmtiRunTest1982HostTestCases\nChange-Id: I1f642f6da441c4f023ec1cbd873c05914c73dd7e\n"
    },
    {
      "commit": "69828ac1c6de77fadb3660d6f20b52d46440a0a9",
      "tree": "ae0541cff02d6d44cb7326bf04adaf4748416ce9",
      "parents": [
        "e66eeb61946dcaab89ac0fc9a602b96a731ef86c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 09 14:11:02 2020 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 10 14:39:54 2020 +0000"
      },
      "message": "Print oat file location for invalid class status\n\nAim to figure out what oat file is responsible for invalid class\nstatus errors.\n\nBug: 148412019\nTest: make\n\n(cherry-picked from commit 878f7961df1ec867b7dd9f27d382e246ad920d11)\n\nMerged-In: Iff35d478b71c5fcf6b38b8cb0307c9b59521031c\nChange-Id: Iff35d478b71c5fcf6b38b8cb0307c9b59521031c\n"
    },
    {
      "commit": "2db169ce8b992fd4834f5828ee874a650c9304ea",
      "tree": "b01e65e1bbe887b59947082547ee24c763539a78",
      "parents": [
        "1dc987a3ebbbadac4fcbb249f3d099d5a5bf04b9"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Mar 10 12:52:21 2020 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Mar 10 13:17:01 2020 +0000"
      },
      "message": "Revert \"art: Add FileDescriptor fields to native Core Platform API\"\n\nReason for revert: Fails \u0027atest PreloadCheck\u0027\nReverted Changes:\nIfd25daed9:art: Add FileDescriptor fields to native Core Plat...\nI7c65da755:libcore: Remove native calls in FileDescriptor \u003ccl...\n\nChange-Id: Ie9fa5a25d5352f214a16e10d5bbbe45da9f3c486\nExempt-From-Owner-Approval: revert\n\nBug: 150680645\nBug: 151107960\n"
    },
    {
      "commit": "2c2248cf139a99abb560eb9e89ea9a6e7d6f85f3",
      "tree": "82bca302720149f16b202b7489c93345d31acf47",
      "parents": [
        "ba2add1acc0bb4a80f11b9e3c1643cc1baf19698"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 06 14:50:45 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 10 11:01:19 2020 +0000"
      },
      "message": "Reland^3 \"Always put the framework profile in the boot image location.\"\n\nThis reverts commit 9bdba6e5e252de50c5cdd7f1680b84d87c903115.\n\nBug: 143126914\nBug: 119800099\nBug: 149859910\nBug: 150193586\nBug: 150890582\n\nReason for revert: CL not the reason for the regression.\n\nChange-Id: I4d6b2c1dde87930054f15c5a466275f255f81302\n"
    },
    {
      "commit": "47d0c475a11fed0485296f942c0abed8b02efd45",
      "tree": "4ff4447f62c1f306843bc3ef0679efb7ed1202c8",
      "parents": [
        "37d6d77297bf682eed7f9d65be49e8ea61aa3b69"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Mar 05 15:54:54 2020 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Mar 09 11:12:44 2020 +0000"
      },
      "message": "art: Add FileDescriptor fields to native Core Platform API\n\nAdds descriptor and ownerId to whitelisted native Core Platform API.\n\nBug: 144502743\nBug: 150680645\nTest: art/test/run-test --host 001-HelloWorld\nTest: art/tools/run-libcore-tests.sh --mode\u003dhost --variant\u003dX64\nChange-Id: Ifd25daed95516b27eaae4b034fdc45f77ea25a74\n"
    },
    {
      "commit": "23369542f187d97544a27ee31b9ee5cad2146c32",
      "tree": "0fa074dbf7594103012ff4a778cd9d5f8e0653c8",
      "parents": [
        "9bdba6e5e252de50c5cdd7f1680b84d87c903115"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 04 08:24:11 2020 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 05 14:57:29 2020 +0000"
      },
      "message": "Avoid NanoTime in InitializeClass unless stats are enabled\n\nSaves ~0.6% cycles during app startup.\n\nBug: 150720953\nTest: make\nChange-Id: Ia4ca3743582440db0c1e311792c54474dba9b07e\n"
    },
    {
      "commit": "9bdba6e5e252de50c5cdd7f1680b84d87c903115",
      "tree": "c6329df5ca44447b6d1bccab9b97d7f543330c31",
      "parents": [
        "e42876fa5557cf3fe30238f7e7e70cafdbe50001"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 05 10:37:21 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 05 10:38:56 2020 +0000"
      },
      "message": "Revert \"Reland^2 \"Always put the framework profile in the boot image location.\"\"\n\nThis reverts commit ed1f531085b4f81dbe50aba4b01738553920a2eb.\n\nBug: 143126914\nBug: 119800099\nBug: 149859910\nBug: 150193586\n\nReason for revert: Still seeing some regressions, now on both speed-profile and quicken.\n\nChange-Id: Ic0b304ddddfd2db1ae9e6e3ec38a8d157431a69d\n"
    },
    {
      "commit": "e42876fa5557cf3fe30238f7e7e70cafdbe50001",
      "tree": "650fce68339c95874abf6ba278003fb3a5ecf445",
      "parents": [
        "e521eb041875fbaf99eca5e6d2b438e7040b1dd8"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 28 16:43:06 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Mar 05 10:11:51 2020 +0000"
      },
      "message": "Minor improvements in JNI assemblers.\n\nAddress issues identified in\n    https://android-review.googlesource.com/1246286\nand clean up a few other things.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nTest: run-gtests.sh\nTest: testrunner.py --target --optimizing\nBug: 12189621\nChange-Id: I9ee1a9c113ef756d7aa3bd4d3f17ef1aaa4306f5\n"
    },
    {
      "commit": "8a1a0f719e42746840f88aad079711e9d951b797",
      "tree": "2a3b3e1bc30a0b15b679f141a6d17380eded4867",
      "parents": [
        "23f3d80e307bbacfadd2160f0d5b44731e11c6e4"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@fb.com",
        "time": "Tue Mar 03 16:07:45 2020 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 04 21:14:58 2020 +0000"
      },
      "message": "ART: Ensure dex caches keep classloader live\n\nLive dex caches must keep their associated classloader live. Otherwise\nthe classloader may get unloaded, attempting to free DexFiles which\ncannot be unregistered.\n\nTest: art/test/testrunner/testrunner.py -b --host\nTest: m test-art-host-gtest\nChange-Id: I0eed5b3b46ed681c739d6923a57d0878afbba1a7\n"
    },
    {
      "commit": "ed1f531085b4f81dbe50aba4b01738553920a2eb",
      "tree": "88f55fa770b327e4ecec4460feee74e5fe3dff6d",
      "parents": [
        "ab4d2222a206f48a27178c52f0ee31c30170823f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 03 09:56:17 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 04 16:17:33 2020 +0000"
      },
      "message": "Reland^2 \"Always put the framework profile in the boot image location.\"\n\nThis reverts commit acb5c2dfabaf8126e20d17a4d02ac183af2afc26.\n\nAnd adjust dex2oat image location adjusting logic, by removing the\nprofile, but keeping the extension location.\n\nBug: 143126914\nBug: 119800099\nBug: 149859910\nBug: 150193586\n\nReason for revert: Changes in dex2oat.cc fix the performance regression.\n\nChange-Id: I4686d2af029d7185c02d7e798f19d0f5d9328dbc\n"
    },
    {
      "commit": "ab4d2222a206f48a27178c52f0ee31c30170823f",
      "tree": "e6ea43aae99ce58fe6d1e4c03c32a5aa3db93dbf",
      "parents": [
        "735ab4ef26c250510f21fc2070e08d4ae7867916"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 03 16:27:38 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Mar 04 09:38:06 2020 +0000"
      },
      "message": "Fix boot image size check.\n\nTest: aosp_taimen-userdebug boots when built with\n      export DEXPREOPT_USE_ART_IMAGE\u003dtrue\n      and logcat shows no messages about failing to open\n      the app image services.art .\nBug: 150668267\nChange-Id: I800ef2e09e3a61fe4c8418ba4d66f54dd605495e\n"
    },
    {
      "commit": "6fc471e510d6a4e9c31fcab6c0542e2efdf50099",
      "tree": "81e3a310a73380e798a6b26583cb32d642e69468",
      "parents": [
        "9f92d9b512c41c17b19f90cc3afa495952e17474"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Mar 03 16:51:33 2020 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Mar 03 16:53:24 2020 -0800"
      },
      "message": "Check vreg count on debuggable\n\nPreviously we were only performing a check that we got the correct\nnumber of vregs on deoptimization when kIsDebugBuild. Extend this\ncheck to also occur when the runtime is JavaDebuggable.\n\nBug: 144947842\nTest: none\nChange-Id: I7d240008391a1499c159e478b59a509e2362e99f\n"
    },
    {
      "commit": "814b9286540d0db5685aedc04c507d95e729d96b",
      "tree": "02651d535b27e0f660d1db90b05b289665051804",
      "parents": [
        "9f8ead24a13e0471a333f0776a024e970662591c"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Feb 19 16:37:11 2020 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Mar 03 09:13:01 2020 +0000"
      },
      "message": "Manually add java.io.Buffer private fields to the Core Platform API\n\nThis change adds the private fields in java.nio.Buffer to the Core\nPlatform API programmatically.\n\nThese fields are private and there is no way to express them in the\nAPI defintion. Although unfortunate, we are already doing this for\nmethods and fixing the points of use for these fields is a sizeable\ntask.\n\nBug: 124338141\nBug: 144502743\nTest: Boots, no warnings from native Core Platform API methods\nChange-Id: Icd06cae3f2fe523c71b79430009e76b30caf4b94\n"
    },
    {
      "commit": "9f8ead24a13e0471a333f0776a024e970662591c",
      "tree": "853103508567b0db20d034ae8e20dd19975d0b95",
      "parents": [
        "662f12ee2f2b886aebcc22d321b2d752227e0b38"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Feb 19 10:32:17 2020 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Mar 03 09:13:01 2020 +0000"
      },
      "message": "Remove support code for native Core Platform API checks\n\nNative Core Platform API checks rely on the stack unwinder. The\nunwinder instance increases the zygote rss by ~4MB. We need to keep the\nunwinder around to keep checks fast and not churn memory resources.\n\nBug: 124338141\nBug: 144502743\nBug: 149029127\nTest: m \u0026 boot\nChange-Id: Ia306ec6e48d7b2b330efd771348b563767973269\n"
    },
    {
      "commit": "eedca4a5f72b449df035979f31785dd5eaa46e0e",
      "tree": "ca085e49078145359ca0226a17b6a4ce2116c298",
      "parents": [
        "acb5c2dfabaf8126e20d17a4d02ac183af2afc26"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Fri Feb 21 14:09:57 2020 -0800"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Fri Feb 28 23:01:51 2020 +0000"
      },
      "message": "Add more tests, spin before inflating monitors\n\nThis adds some additional tests/benchmarks to 2029-contended-monitors.\n\nModify the monitor inflation logic minimally to try pure spinning\nbefore resorting to sched_yield.\n\nBased on my testing with 2029-contended-monitors, it would be beneficial\nto more aggressively avoid lock inflation. But in the end, I couldn\u0027t\nfigure out how to do that effectively without taking more wall clock\ntime when we actually inflate a lock. That seems like a questionable\ntrade-off, so this is the low-risk alternative that simply avoids the\nclearly dubious choice to immediately spend a microsecond or so on a\nsched_yield call whenever the lock is already held.\n\nThis is somehat similar to aosp/666639, but we still try everything\nwe tried before to avoid inflation. (aosp/666639 with a much higher\nvalue of max_spins would probably be similar. I expect CpuRelax()\nthere doesn\u0027t have much impact either way. We could add it here.)\n\nBug:140590186\nTest: experimentation with 2029-contended-monitors.\nChange-Id: I58349cc2c45dd6ea16c67c3c3bffb791274eb99e\n"
    },
    {
      "commit": "acb5c2dfabaf8126e20d17a4d02ac183af2afc26",
      "tree": "34a6b1e267f84c361436ace562a3e0cc01874dca",
      "parents": [
        "b871d3eba85b150728d8e1f5bea95e3655edbc4a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 28 21:57:19 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 28 21:57:35 2020 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Always put the framework profile in the boot image location.\"\"\"\n\nThis reverts commit ec769b883cf49c742689a195a417345328fa1bf0.\n\nBug: 143126914\nBug: 119800099\nBug: 149859910\nBug: 150193586\n\nReason for revert: First commit was mixed with other regressions. This CL does have a ~20ms impact on app startup of calculator in speed-profile mode. But no regression with \"quicken\".\n\nChange-Id: I16df444fc4edf509a9db815891a1ada6005ebc91\n"
    },
    {
      "commit": "53f9e653ebadfb627db1d3792ad8a1aed04a6264",
      "tree": "779d9ee9f7d302cf72bc5baf17b60e712b579838",
      "parents": [
        "ec769b883cf49c742689a195a417345328fa1bf0"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Feb 26 10:27:05 2020 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Feb 28 13:44:06 2020 +0000"
      },
      "message": "Revert^2 \"art: Extend sun.misc.Unsafe presence in the Core Platform API\"\n\nThis relands 84b1d5539517d6b6fb0a32a3a871971e5120866c and reverts\ncommit 276ed2824da970c04f41bdd4d9c3e20852d32344. Original revert\nwas based on a build that didn\u0027t include libcore component of this\nchange.\n\nBug: 144502743\nTest: boot device \u0026\u0026 adb logcat | grep \"Core platform\"\n\nChange-Id: I1972f2b4e381ba52a0fa0fd511ef8ac5a9825575\n"
    },
    {
      "commit": "ec769b883cf49c742689a195a417345328fa1bf0",
      "tree": "f25dffbcf741fafcdf5ccdb03b85aeb203202d15",
      "parents": [
        "6cf7a9b0ecce7057758a55d8a2a2a5f1ca4653dc"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 25 15:22:04 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 28 10:47:02 2020 +0000"
      },
      "message": "Revert \"Revert \"Always put the framework profile in the boot image location.\"\"\n\nThis reverts commit 2ad7c98dda05b0c8a049895cd68b3d2850156912.\n\nReason for revert: CL wasn\u0027t the culprit for the seen regression.\n\nBug: 143126914\nBug: 119800099\nBug: 149859910\nBug: 150193586\nChange-Id: Ib8796783660ddeae1d1761273f79e779b85aef5c\n"
    },
    {
      "commit": "2dea07964e4902f62f870b003a7b70ab5b77f253",
      "tree": "80afdd2f4a95298e441ada4a8ae439221b94af02",
      "parents": [
        "615212399037ea41987282800f077941d7ec9f54"
      ],
      "author": {
        "name": "atrost",
        "email": "atrost@google.com",
        "time": "Tue Feb 25 20:11:47 2020 +0000"
      },
      "committer": {
        "name": "Anna Trostanetski",
        "email": "atrost@google.com",
        "time": "Thu Feb 27 15:57:52 2020 +0000"
      },
      "message": "Gate access to targetsdk-max-p,q on compat framework\n\nReplace targetSDK checks for those APIs, keep it for greylist-max-o.\nThis will allow toggling access to APIs that are in greylist-max-p and\ngreylist-max-q (two separate toggles).\n\nBug: 149994052\nBug: 149997251\nTest: mma test-art-host-gtest-hidden_api_test64\nChange-Id: I00777bbeefba50a0863a6645b77e60d48e9bb768\n"
    },
    {
      "commit": "615212399037ea41987282800f077941d7ec9f54",
      "tree": "15089323ce0a197c4585f9ad002beb016a247a5a",
      "parents": [
        "69efda0772090bd844ba5200e3be6c0bdf2c8aac"
      ],
      "author": {
        "name": "Paul Trautrim",
        "email": "paultrautrim@google.com",
        "time": "Thu Feb 27 01:58:43 2020 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Feb 27 13:02:06 2020 +0000"
      },
      "message": "Revert \"Support ART\u0027s target gtests in atest.\"\n\nThis reverts commit eac404b341e40bb72f8d79ee1d1a7173862b438e.\n\nReason for revert: Debugging test failures (b/150282462)\n\nChange-Id: I3582eeb1f121d4850209768b3a7ae8a444f0379a\n"
    },
    {
      "commit": "6f5e72942c5b41ca0fad0dfedf8089cdc5221f6e",
      "tree": "1de211b1be8ef420db49b9cfb788255bf1d6c7c4",
      "parents": [
        "03e871678db7585a621740fb1ce65a75fdc44319"
      ],
      "author": {
        "name": "Eric Holk",
        "email": "eholk@google.com",
        "time": "Tue Feb 25 15:10:50 2020 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 26 23:45:02 2020 +0000"
      },
      "message": "Only start timer in IncrementDisableThreadFlip when waiting\n\nIncrementDisableThreadFlip is a hot function in System Server when\nprocessing many binder transactions. There was code to track how much\ntime was spent waiting and log long waits. These days, long waits rarely\nhappen, but we were starting the timer even when we did not have to\nwait. This led to NanoTime() showing up high in profiles.\n\nThis changes moves the first call to NanoTime() until after we know we\nwill spend at least some time waiting. After this change, NanoTime() did\nnot show up in the profile at all.\n\nBug: 150326920\nTest: device boots\nChange-Id: I6dc4cee7d18a3fbd6d2f73281cddba407e481d67\n"
    },
    {
      "commit": "276ed2824da970c04f41bdd4d9c3e20852d32344",
      "tree": "89bd61f7e2953294efcdfb225f814dc331e40ccf",
      "parents": [
        "8f95183e07398b31fd922f132b8ed2f64950dd28"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Feb 25 17:23:18 2020 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Feb 25 17:26:43 2020 +0000"
      },
      "message": "Revert \"art: Extend sun.misc.Unsafe presence in the Core Platfor...\"\n\nRevert submission 1242749-oth-cp-unsafe\n\nReason for revert: breaks build of aosp_walleye-userdebug_RBE-RemoteExec (linux)\nReverted Changes:\nI6b3783f6b:art: Extend sun.misc.Unsafe presence in the Core P...\nI082c66b07:libcore: Extend sun.misc.Unsafe presence in the Co...\n\nChange-Id: I54673aa6db20d5f75991cd4a05754b9da70a5894\nExempt-From-Owner-Approval: revert\n"
    },
    {
      "commit": "eac404b341e40bb72f8d79ee1d1a7173862b438e",
      "tree": "2681b43b60f8eec774e04b7200764f6bb885c8a5",
      "parents": [
        "109039edbdcf1bc9eb0b0ced334041292746526c"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Feb 05 16:27:43 2020 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Feb 25 16:37:33 2020 +0000"
      },
      "message": "Support ART\u0027s target gtests in atest.\n\nThis is first simple approach which relies on installing\nthe ART testing apex on the device and rebooting it.\nThis is not ideal if bugs prevent the device from booting.\n\nThe next goal is to run the tests in chroot without reboot.\nWe should also introduce dedicated ART gtest runner.\n\nTest: atest ArtGtestsTarget --rebuild-module-info\nTest: run on device using forrest\nBug: 147817606\nChange-Id: I3b7f66dc27a665a6971fc688f220103c6b842b57\n"
    },
    {
      "commit": "84b1d5539517d6b6fb0a32a3a871971e5120866c",
      "tree": "1ce43e32c03725bb0839d8813fcc18fa06a50cd1",
      "parents": [
        "b2ffe4b7593c3f07d0891378a4f05785e9db8eed"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Feb 21 13:53:00 2020 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Feb 25 15:24:09 2020 +0000"
      },
      "message": "art: Extend sun.misc.Unsafe presence in the Core Platform API\n\nThese methods are used by platform and generate warnings for which\nno fix is coming any time soon.\n\nBug: 144502743\nTest: art/test.py --host --64\nTest: boot device \u0026\u0026 adb logcat | grep \"Core platform\"\n\nChange-Id: I6b3783f6b96eae90e49b0d0a520138a823416404\n"
    },
    {
      "commit": "de7f878d640003402a0b3a921fa3bf978377bf26",
      "tree": "518ca65ac4508ae0a38c824b2dd5c6ca57e1b315",
      "parents": [
        "ffd067c6e248a602f244c8536fce8177566858bb"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Feb 24 10:14:22 2020 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Feb 24 18:16:02 2020 +0000"
      },
      "message": "Fix minor code-style error\n\nA line was too long and some arguments were misaligned.\n\nTest: None\nChange-Id: I2c35698a88baca35bba4c23b1ade2272c776d56d\n"
    },
    {
      "commit": "725da8fb9665abfb9c9c6aaca147120e46381b2d",
      "tree": "3d9540b88534e6ef8f049cd0935bb8f644362cde",
      "parents": [
        "e3de71cbb21332904316c37f00682e2f03e04783"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Feb 19 14:46:33 2020 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Feb 22 02:35:07 2020 +0000"
      },
      "message": "Fix race between dex-file registration and class-loader deletion\n\nWe keep track of class-loaders by having a list with jweak references\nto the dex-caches. When we register a new dex-file we check that the\ndex-cache hasn\u0027t already been registered with a different\nclass-loader. We decoded the jweak and performed this check this\nwithout any locks however meaning we could race with class-loader\ncleanup. This could cause CHECK failures as we try to decode a deleted\njweak.\n\nBug: 147206162\nTest: ./art/test/run-test --create-runner   --host --prebuild --compact-dex-level fast --optimizing --no-relocate --runtime-option -Xcheck:jni  2001-virtual-structural-multithread\n      ./art/tools/parallel_run.py\nChange-Id: Ibeb12ec3d42f7972d09b155b7c24743266897a54\n"
    },
    {
      "commit": "2ad7c98dda05b0c8a049895cd68b3d2850156912",
      "tree": "57d33c8d60aeabc37bc364b0989b047f09b3c273",
      "parents": [
        "4d125afe9c92bc1d58da74355de80c4c38377eae"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 20 22:40:41 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 20 22:41:05 2020 +0000"
      },
      "message": "Revert \"Always put the framework profile in the boot image location.\"\n\nThis reverts commit 5265419a52ad11cea4771891c1269feaf56d7e40.\n\nBug: 143126914\nBug: 119800099\nBug: 149859910\n\nReason for revert: Odd messages from trace in b/149859910 leading to 20ms regression:\nDex file open from Zip Archive /system/framework/framework.jar\n\nChange-Id: I6f74d384fcd709f91d847a5360eb91498c1fa5fe\n"
    },
    {
      "commit": "4d125afe9c92bc1d58da74355de80c4c38377eae",
      "tree": "1fb6bb01da089787f22f3bdd59d9194d4f003667",
      "parents": [
        "5aa42926cf7728e34399847e81f3886d9cc7616f"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Oct 31 14:51:44 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Feb 20 21:06:03 2020 +0000"
      },
      "message": "JIT mini-debug-info: Insert application entries at the head.\n\nSimpleperf expects that new entries will be added at the head.\nIt is easier to maintain that property than adjust simpleperf.\n\nBug: 143375574\nTest: test.py --host -b -r --jit --64\nChange-Id: Ib7aaa10d79791464b8233cacffd7c40070565f34\n"
    },
    {
      "commit": "5aa42926cf7728e34399847e81f3886d9cc7616f",
      "tree": "8e812a65f2acad56d8a4f52300cc79644d1acd75",
      "parents": [
        "ef46e101be0afb84898a9ac37af1f1f6c1677cf4"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Feb 20 17:20:12 2020 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 20 19:02:13 2020 +0000"
      },
      "message": "Fix iteration in RemoveNativeDebugInfoForJit\n\nGet the next pointer before deletion clears it.\n\nChange-Id: Ic471d88a9a79e6b1b84e063f61c78bd2870eb76c\n"
    },
    {
      "commit": "5945de03b6f6b35bcf6a575b2291e29ae7a2b1ee",
      "tree": "41b6e3ec202b198a2d55aedfd8181b9aa6b0555d",
      "parents": [
        "761ee217562c6c9615af0b73df137ecadcaca303"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 19 16:23:01 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 19 22:06:09 2020 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Add consistency CHECKs around ArtMethod fields.\"\"\"\n\nThis reverts commit f994025d8ebc8ef63d2083436daffc7f94363c80.\n\nReason for revert: Still hitting the failure.\n\nBug: 146765723\nChange-Id: Ie07300e9d2e605cd0281fb313d017680e77e8740\n"
    },
    {
      "commit": "fa458ac21af98b3bdde2c62ed86b9c192b994372",
      "tree": "5fa7543c9fd5edd0e950b19a70412002e10bba47",
      "parents": [
        "99d91d18f9f73427eced2f22642520d50c3c3b83"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 12 14:08:07 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 19 16:08:34 2020 +0000"
      },
      "message": "Allow late lookup for @CriticalNative methods.\n\nTest: Add and enable tests in 178-app-image-native-method\nTest: Add and enable tests in jni_compiler_test\nTest: Manually step through the new stub in GDB and check\n      that backtrace works at various points.\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nTest: run-gtests.sh\nTest: testrunner.py --target --optimizing\nBug: 112189621\nChange-Id: If094e5062acbb99eefa88f2afb4815f93730cb82\n"
    },
    {
      "commit": "99d91d18f9f73427eced2f22642520d50c3c3b83",
      "tree": "e24e45f9e21734cf1fa8de69cc2108f5a44f0765",
      "parents": [
        "5265419a52ad11cea4771891c1269feaf56d7e40"
      ],
      "author": {
        "name": "Greg Kaiser",
        "email": "gkaiser@google.com",
        "time": "Tue Feb 18 07:22:05 2020 -0800"
      },
      "committer": {
        "name": "Greg Kaiser",
        "email": "gkaiser@google.com",
        "time": "Tue Feb 18 07:22:05 2020 -0800"
      },
      "message": "Avoid implementation-defined behavior\n\nOn platforms where \u0027int\u0027 is 32 bits, shifting an \u0027int\u0027 by 31 bits\nis implementation-defined behavior.  While our toolchain is almost\ncertainly doing what we expect here, we switch to shifting an\nunsigned to assure it always does the right thing.\n\nTest: TreeHugger\nChange-Id: Ied2b5c98a27a43e091bf5819d1b37cc7b43b2906\n"
    },
    {
      "commit": "5265419a52ad11cea4771891c1269feaf56d7e40",
      "tree": "dc0da41c345264747c5a78865c4a4c35fad8d09c",
      "parents": [
        "58cc76d2102383b7474415b651a83b7551ab7f39"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 18 10:03:50 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 18 13:39:14 2020 +0000"
      },
      "message": "Always put the framework profile in the boot image location.\n\nThis enables testing an update of the ART module on the device.\n\nThis CL also removes the \"always compile native methods in JIT zygote\nconfiguration\" as it is now expensive to check, and in the future we\nshould get native methods in the profile.\n\nBug: 143126914\nBug: 119800099\n\nTest: boots, adb install com.android.art.apex works\nChange-Id: I6c67344c5081749b4b19d52acddd0d2a196adf4a\n"
    },
    {
      "commit": "58cc76d2102383b7474415b651a83b7551ab7f39",
      "tree": "e96515725411cfef116f73dad0b152763e24d6f1",
      "parents": [
        "641f155fa4433e2ec5b63be33bf4d7efdd6f1188"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 18 10:18:54 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 18 13:37:03 2020 +0000"
      },
      "message": "Fix braino in Jit::PostZygoteFork.\n\nThe logic for mapping boot image methods after fork is for a child\nzygote, so we should check as such (just as the comment mentions).\n\nNot doing the check leads to a race for a forked process with a child\nzygote, which if the boot image methods are not yet mapped, it would try\nto map them twice.\n\nTest: boots and no crashes in webview forked processes.\nBug: 119800099\nChange-Id: I19767d8e3b992e51274e232b41e10a0fe363f284\n"
    },
    {
      "commit": "f994025d8ebc8ef63d2083436daffc7f94363c80",
      "tree": "e91c8b1beb52459d933bef97a2bef76587dcd3f8",
      "parents": [
        "2925311f957f50bbec2b034c98877d22f702ee76"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 06 16:23:15 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Feb 17 15:31:37 2020 +0000"
      },
      "message": "Revert \"Revert \"Add consistency CHECKs around ArtMethod fields.\"\"\n\nThis reverts commit eeae32ba02c7d3785a8d195e967febfaa0b1113b.\n\nBug: 146765723\n\nReason for revert: Change can now land after:\nhttps://android-review.googlesource.com/c/platform/art/+/1236946\n\nChange-Id: I082c1cd20b8af4f83a5c7bb7853badcbe2ecb38b\n"
    },
    {
      "commit": "2925311f957f50bbec2b034c98877d22f702ee76",
      "tree": "31c6bd25134b287622c9998e016606ab2d84607b",
      "parents": [
        "f8f51c9697b1f2a41ea750703087e98c46402f08"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Feb 17 09:40:14 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Feb 17 14:09:02 2020 +0000"
      },
      "message": "Prevent entering IMT conflict trampoline with j.l.Object methods.\n\nThis ensures that only interface methods enter the trampoline.\n\nTest: 725-imt-conflict-object\nChange-Id: Id730d921f213ee0f6d927dea5df69d57be431df0\n"
    },
    {
      "commit": "0a5cad39cd1dbbfd6f335c5ff6f307a903bc5bf7",
      "tree": "940aa8d886fed28e76d0af813d75fe4df49b8cdc",
      "parents": [
        "8aa6a82003ce7ece4511996341021e7084d40b3a"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Feb 14 20:29:26 2020 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Sat Feb 15 01:18:01 2020 +0000"
      },
      "message": "Revert \"Revert \"Make class loader context fail for unknown class loaders\"\"\n\nThis reverts commit e9818ddd70565d52cc1cc93d6991d7e7ec2bc275.\n\nMake class loader context fail for unknown class loaders\n\nUpdate OatFileAssistant to fail the class loader check when getting an\nunknown (null) class loader. The code is only use in GetDexoptNeeded paths\nand does not affect the runtime behaviour.\n\nThis will enable dexoptanalyzer to provide the right answer for dex files\nwhose class loader changes often.\n\nTest: test-art-host\nBug: 147208643\n\nChange-Id: I2f8229fc25c018436c17439bdc9ac0899af25758\n"
    },
    {
      "commit": "e9818ddd70565d52cc1cc93d6991d7e7ec2bc275",
      "tree": "c2deb578605ebfa0511532b8d7ca908fa4c71092",
      "parents": [
        "1d852c36ad84e6f32132b215af079546300bfc28"
      ],
      "author": {
        "name": "Stefania Halac",
        "email": "shalac@google.com",
        "time": "Fri Feb 14 17:58:26 2020 +0000"
      },
      "committer": {
        "name": "Stefania Halac",
        "email": "shalac@google.com",
        "time": "Fri Feb 14 19:36:44 2020 +0000"
      },
      "message": "Revert \"Make class loader context fail for unknown class loaders\"\n\nThis reverts commit 2d3de3a40015af07f7645a298f77b398af0c6c2c.\n\nReason for revert: 8s regression in boot time b/149517940\n\nChange-Id: I81365d1bd63c691d715b8f970dac9da64ab419ff\n"
    },
    {
      "commit": "41b605c5ad4b06ea127ac56c6e3a4c92e8913efd",
      "tree": "f7b28eb11051f3faada99c11dc594cccd34a5786",
      "parents": [
        "30b38f8d01cdb4c80092638f23c61d73e0d287f4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 12 10:52:22 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 14 12:01:58 2020 +0000"
      },
      "message": "Remove MIPS support from runtime/.\n\nTest: aosp_taimen-userdebug boots.\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 147346243\nChange-Id: If1fc8be94caa69f734438d7a1f4c715addfd8876\n"
    },
    {
      "commit": "30b38f8d01cdb4c80092638f23c61d73e0d287f4",
      "tree": "c1c37ea305aabd3a81cff52d76eda386724288de",
      "parents": [
        "013e208bddd2ea316390429113ca1f43b3924ac2"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Feb 13 15:17:32 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 14 11:29:23 2020 +0000"
      },
      "message": "Remove MIPS mterp.\n\nTest: aosp_taimen-userdebug boots\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 147346243\nChange-Id: Ie2509fd87f302bb370d759db0ee205a6dd3ac54f\n"
    },
    {
      "commit": "2d3de3a40015af07f7645a298f77b398af0c6c2c",
      "tree": "360b130e574af9a5e837ebd9d2585de29db34f65",
      "parents": [
        "c55032774cfec4b5222b362a81a3b8b69e133710"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Feb 11 16:49:47 2020 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Feb 12 19:22:17 2020 +0000"
      },
      "message": "Make class loader context fail for unknown class loaders\n\nUpdate OatFileAssistant to fail the class loader check when getting an\nunknown (null) class loader. The code is only use in GetDexoptNeeded paths\nand does not affect the runtime behaviour.\n\nThis will enable dexoptanalyzer to provide the right answer for dex files\nwhose class loader changes often.\n\nTest: test-art-host\nBug: 147208643\nChange-Id: I869109e669e68afe094e7703ed574575b98d7cc6\n"
    },
    {
      "commit": "c55032774cfec4b5222b362a81a3b8b69e133710",
      "tree": "f925d517eec0d7c00a8d4a421fd6c83818cec155",
      "parents": [
        "e0ac2f36724e15f3e328ede92877fb9e512d3fc6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 11 10:01:18 2020 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Feb 12 19:15:04 2020 +0000"
      },
      "message": "Use stack for first scope in VariableSizedHandleScope\n\nVariableSizedHandleScope commonly doesn\u0027t have that many handles,\navoid doing an allocation for those cases.\n\nTest: test-art-host\nChange-Id: Iaf6c502723a239b1a2e861152efa37f4ef66431b\n"
    },
    {
      "commit": "6e043bbc1d9abd1d1d3247040f6cdc82a79f47be",
      "tree": "02470465a0426e02d15525e171c6b3bbef3d60a6",
      "parents": [
        "ac5ae3cf5dc4c5f87293c45a1d6999f8d1515b39"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 10 16:56:54 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 12 13:21:28 2020 +0000"
      },
      "message": "Rewrite GenericJNI frame setup.\n\nMove the handle scope out of the managed frame, move the\nregister values to load to the bottom of the reserved area\nand pass the hidden argument to @CriticalNative methods to\nprepare for implementing late lookup.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing --interp-ac\nTest: aosp_taimen-userdebug boots.\nTest: run-gtests.sh\nTest: testrunner.py --target --optimizing --interp-ac\nBug: 112189621\nChange-Id: I4672176f9627bcbebafebb3dda0d02b8108e1329\n"
    },
    {
      "commit": "af322429596b744d611aeebe3bbaa1003ff64717",
      "tree": "5fee634834ffda7f35396270f09be8768744cb62",
      "parents": [
        "e6e634e98e03af93ee367bbdf6cfaf3673d94d14"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Feb 11 13:45:53 2020 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Feb 12 00:50:07 2020 +0000"
      },
      "message": "Do not check for collision if we only extracted the apk\n\nThere is no need to check for collisions or verify the class loader\ncontext if the verification is not enabled for the oat file.\n\nThis prevents the collision checks or dex2oat reruns when we only\nextracted the dex files from apk and fixes.\n\nTest: test-art-host\nBug: 147208643\nChange-Id: I84e77baa89fe36705cc650ff21f95b244e7941d4\n"
    },
    {
      "commit": "5e251ead219d8e9f4bb1e8c53f222f91d798d653",
      "tree": "6f7c571e468f07de198f5a8021f702ee40010c45",
      "parents": [
        "8206ae846173c98b386d56ff3f290ad74a30b291"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jan 09 10:55:49 2020 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 11 23:39:56 2020 +0000"
      },
      "message": "Change j.l.r.Field to use ArtField index instead of dexFileIndex\n\nUsing the dexFileIndex to determine the ArtField a\njava.lang.reflect.Field object points to requires us to use a\ndex-cache and to update all existing Field objects if this index\nchanges (for example due to class redefinition). This could be rather\nslow. This replaces the dex-file index with the index into the\ndeclaring class\u0027s SFields/IFields arrays where the specified ArtMethod\nis stored.\n\nBug: 149236640\nTest: ./test.py --host\n\nChange-Id: I9a7d69903ece0ea94e3b3e93b4c8a872ac4073e8\n"
    },
    {
      "commit": "8206ae846173c98b386d56ff3f290ad74a30b291",
      "tree": "85c8ab98f5ec81addce43be6b3fd7f4297a35c9c",
      "parents": [
        "98cf82f227fa8fab694674e72a9a2ca95face4b5"
      ],
      "author": {
        "name": "satayev",
        "email": "satayev@google.com",
        "time": "Tue Feb 11 02:33:31 2020 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 11 22:11:46 2020 +0000"
      },
      "message": "Revert \"Fix Core Platform API JNI check\"\n\nThis reverts commit 6c56db31b8a6424680ad3836022a1d81e83dc4a9.\n\nReason for revert: potential culprit b/149238651\n\nBug: 144502743\nBug: 149238651\n\nChange-Id: I719ecaff2c9486776b165918607a2df2ee23d56d\n"
    },
    {
      "commit": "18dc023800c1c3f751bb5a11208d176a6d9a7c78",
      "tree": "1acde77854f4bd510970167bae4570f65b5a1df3",
      "parents": [
        "8c8f148bdde5eeb799dd802d861149b3e0f538c5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 10 14:29:45 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 10 16:40:02 2020 +0000"
      },
      "message": "Remove obsolete CHECKs for image dex file location.\n\nThese checks are not valid for --single-image extensions or\nfor extensions after boot class path components without\ncorresponding images. Instead of updating these checks,\nrely on the checks done by the ImageSpace::LoadBootImage().\n\nTest: aosp_taimen-userdebug boots when built with\n      `DEXPREOPT_USE_ART_IMAGE\u003dtrue`. Then\n      adb root \u0026\u0026 \\\n      adb shell setprop persist.sys.dalvik.vm.lib.2 libartd.so \u0026\u0026 \\\n      adb reboot  # Starts correctly.\nTest: adb root \u0026\u0026 \\\n      adb shell stop \u0026\u0026 \\\n      adb shell setprop dalvik.vm.boot-image \\\n          \u0027boot.art:/nonx/boot-framework.art!/system/etc/boot-image.prof\u0027 \u0026\u0026\n      adb shell start  # Starts correctly; no tombstones.\nBug: 119800099\nChange-Id: Id6615a8ac6b423c5f0784f3c0f621bcc016073b7\n"
    },
    {
      "commit": "8c8f148bdde5eeb799dd802d861149b3e0f538c5",
      "tree": "c060009c0ee265f196c7b39edc2f2a6aa2696dab",
      "parents": [
        "5c33d35bf3bd0d824e94784312fe3ddb823028d1"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Feb 05 20:17:10 2020 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Feb 10 16:05:59 2020 +0000"
      },
      "message": "Add blueprint modules to generate jar files for gtests.\n\nThis will be needed to run gtests under atest.\nThe output is unused for now.\n\nSome of the tests in makefile were renamed for consistency.\n\nTest: m test-art-host-gtest\nBug: 147819342\nBug: 147817606\nChange-Id: I96db24406881a2adeeec7889f04681ae18352b16\n"
    },
    {
      "commit": "5c33d35bf3bd0d824e94784312fe3ddb823028d1",
      "tree": "a6056e5f6a9009da93355dd00fd73caf66f1f6fc",
      "parents": [
        "b5a78564d66c903c0073e429d71241be60f51bdf"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 10 12:29:13 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 10 15:48:15 2020 +0000"
      },
      "message": "Reinstate exception check in GenericJni stubs.\n\nThe error check was erroneously removed in\n    https://android-review.googlesource.com/1178884\nwhere we removed the native method lookup from the\nartQuickGenericJniTrampoline(). As the locking is now the\nonly remaining operation that can fail, update the comment\nfor the check. Regression test would be rather difficult to\nadd as we would need to force OOME during lock inflation.\n\nAlso clean up unlocking code in GenericJniMethodEnd().\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nBug: 112189621\nChange-Id: I598d5f86a58c0b6171f0b2528504aba495f1b6d8\n"
    },
    {
      "commit": "c9fa770b6eedcf0cfe05b2449423f5494eecfce0",
      "tree": "684657b011f8980da10cbdc89ca6288d933a2734",
      "parents": [
        "a7d98b9560166eddaeb78d0f19402ee80ec9df06"
      ],
      "author": {
        "name": "Dan Zimmerman",
        "email": "danzimm@fb.com",
        "time": "Fri Jan 31 13:35:12 2020 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Sat Feb 08 02:41:12 2020 +0000"
      },
      "message": "Introduce VMRuntime.isValidClassLoaderContext\n\nIn the PackageManager server we need to validate class loader contexts\nthat we receive from an untrusted process. In order to keep class loader\ncontext parsing logic centralized within the runtime let\u0027s create an API\nwhich returns whether or not the runtime can parse the encoded class\nloader context.\n\nTest: Build system image, open app using secondary dex\nTest: atest atest com.android.server.pm.dex.DexManagerTests\nTest: m test-art-host-gtest-class_loader_context_test\nChange-Id: Ied676e3239f70a8ab9d066df79f377b7036b28b7\n"
    },
    {
      "commit": "b682ea4d1f9f88ef41589007f385398033d61b65",
      "tree": "b843077f05e2fe37ce5f566dfc823552f289f562",
      "parents": [
        "77aa6807053a830fe5c951c7cb700813d7e2e27b"
      ],
      "author": {
        "name": "Dan Zimmerman",
        "email": "danzimm@fb.com",
        "time": "Mon Dec 23 06:59:06 2019 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Sat Feb 08 00:01:36 2020 +0000"
      },
      "message": "Introduce BaseDexClassLoader.computeClassLoaderContextsNative\n\nThis will be used to compute the contexts that should be sent over to\nthe dex load reporter. See associated changes in libcore \u0026\nframeworks/base.\n\nMotivation: At the moment of committing there are two classloader\ncontext encoders- one in ART and one in the package manager. The\nduplicate logic is susceptible to divergences. For example at the moment\nif a package uses shared libraries and has secondary dex files then the\ncontext encoded for secondary dex files will be incorrect[1]. In order to\neliminate this bug and future possible bugs lets centralize where all\nclassloader context computation is done.\n\n[1]: The context will be incorrect because it doesn\u0027t take into account\nthe shared libraries that are loaded at runtime.\n\nTest: m test-art-host-gtest-class_loader_context_test\nTest: m test-art-host-gtest\nTest: ./test/testrunner/testrunner.py --host -b\nTest: Introduced a set of tests for the new API(s)\nTest: See tests in associated libcore \u0026 framework/base commits\n\nBug: 148494302\nChange-Id: Id39293a2e1d3d05194f2864f4febb3e652bce075\n"
    },
    {
      "commit": "4cbb51a0c057249a500ca7fe3947401978f165d2",
      "tree": "af626569243ce560c45fe5c653ca61fae0cd6a0b",
      "parents": [
        "5d24c3d43152b36181fbf9819bfbe5589572f16b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 07 11:25:54 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 07 18:21:11 2020 +0000"
      },
      "message": "Fix ART code around JIT zygote.\n\n- The right image location for it now ends with a profile\n- Add profile locations to image spaces, so the JIT knows what to\n  compile\n- Remove now deprecated ApexImage related code.\n\nBug:119800099\nTest: boots, methods from framework gets compiled by zygote\nChange-Id: Ie31b62d0a25f1b50e266c1537c43307d7b29e138\n"
    },
    {
      "commit": "8c41a0b9bcf6ab95d92bed4976ee15f2c54e2d74",
      "tree": "d9b45049d12fbe4dcc29576bbc625c667d233edb",
      "parents": [
        "99c19ca707391f0908313c7cee2ef315d2b5cb3c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 06 16:52:11 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 07 09:39:46 2020 +0000"
      },
      "message": "Handle interpreter / access-checks mode in the runtime.\n\nStop requiring multiple image kinds for run tests, and have the runtime\nadjust method flags and entrypoints when it is running interpreter-only\nor with soft fail verification.\n\nTest: test.py\nChange-Id: I813fe17e49d2b07545577ecf4ce7b6af62e3bef9\n"
    },
    {
      "commit": "cf0c6ef642517fba3bc9a211acaed742ff39b86d",
      "tree": "045be891d40e7671edf55444d84bb371d1347c04",
      "parents": [
        "7c2f69e42e5347820ada07c88de5a79f355c61be"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Feb 05 16:25:36 2020 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Feb 07 00:34:58 2020 +0000"
      },
      "message": "Device gtests: Use boot.art instead of core.art.\n\nThey are essentially the same. We can use boot.art to run gtests\nsince it is already part of the apex, including the jar files.\n\nThis will make it easier to run the tests in atest, since we\nwill not have to worry about copying core.art to the device.\n\nThe long-term goal is to avoid generating core.art altogether.\n\nCouple of tests also require \"alternate\" image which has no\ncompiled code. The tests now generate it on-demand in code.\n\nThe host gtests still use core.art for now (as there is no\nboot.art on host). The plan is to add it in future CLs.\n\nTest: m test-art-host-gtest\nTest: ./art/tools/run-gtests.sh\nBug: 147817606\nChange-Id: I3a750bb8e60eea0b4a7df1491285feffd5a0161c\n"
    },
    {
      "commit": "f6afcc9bd7f9b82df5e93d96d89c4c8da898e6f0",
      "tree": "e1f1e826dd510fb05c175f456e0b17671517bed2",
      "parents": [
        "8adb3258b902306d7ba2933e20f7435aa384d85e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 05 10:10:03 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Feb 06 10:32:22 2020 +0000"
      },
      "message": "Update boot image extension compilation args.\n\nAnd in dex2oat check for boot image location with profile\nspecification. For app compilation, trim such boot image\nlocation to the leading components without profile spec.\nFor boot image extension, such location is currently an\nerror because it expects all dependencies to be satisfied\nfrom boot images; this may be relaxed in future.\n\nTest: aosp_taimen-userdebug boots.\nTest: adb root \u0026\u0026 \\\n      adb shell stop \u0026\u0026 \\\n      adb shell setprop dalvik.vm.boot-image \\\n          \u0027boot.art:/nonx/boot-framework.art!/system/etc/boot-image.prof\u0027 \u0026\u0026\n      adb shell start  # Starts correctly.\n      # Check /proc/\u003czygote64-pid\u003e/maps, see\n      #   \u003clarge\u003e rw-p ... [anon:dalvik-/nonx/boot-framework.art]\n      #   \u003csmall\u003e r--p ... /memfd:/nonx/arm64/boot-framework.oat (deleted)\n      #   \u003csmall\u003e r--p ... /memfd:/nonx/arm64/boot-framework.vdex (deleted)\n      #   \u003csmall\u003e r--p ... /memfd:/nonx/arm64/boot-framework.oat (deleted)\n      #   \u003csmall\u003e rw-p ... /memfd:/nonx/arm64/boot-framework.oat (deleted)\n      # (No r.xp as we did not compile anything.)\nBug: 119800099\nChange-Id: Ie338a54d45967c790d08cbd1e53ecbcd2b217081\n"
    },
    {
      "commit": "8adb3258b902306d7ba2933e20f7435aa384d85e",
      "tree": "4779de2b13aa4663cb40132fed9d149fb46325d8",
      "parents": [
        "871ce22a54f258e49aaf41c9ca2145afbc7451ea"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 05 16:51:54 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 06 08:36:32 2020 +0000"
      },
      "message": "Move code from quick_entry_points_arm64.S to asm_support_arm64.S\n\nSo it can be shared, and be used by nterp.\n\nTest: test.py\nBug: 112676029\nChange-Id: Ic188f02910d8c8279a1ce79c93f05de5c3771451\n"
    },
    {
      "commit": "dc77ca3d54bd83faee98591474728a5e3ecfc551",
      "tree": "f8f1fb9444b9ceed31a5c24f4408920bb30c56ab",
      "parents": [
        "948f0624554f3811020daadc5413f87dace964c3"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Fri Jan 31 16:29:35 2020 -0800"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Feb 06 00:00:30 2020 +0000"
      },
      "message": "Wait sooner for non-daemon threads\n\nWhen the main thread returns, we attempt to shut down the runtime.\nSometime during that process we always waited for non-daemon threads\nto complete as required. But previously we only did so after\nthe runtime was partially shut down, potentially causing the\nremaining threads to deadlock.\n\nThis explicitly waits before we start destroying the runtime.\n\nAdd test to make sure that a long running child thread finishes\nproperly.\n\nBug: 148126377\nBug: 147619421\nTest: New test fails without waiting call, passes with.\nChange-Id: Ic60d695c8a03543b51d8532156f19fff00a58edc\n"
    },
    {
      "commit": "51ad7fe2ecfb731d5d23e08ec3c58909825d0beb",
      "tree": "3382516c2f1cd52ae3dbb5ecec2b48149de5a630",
      "parents": [
        "89b85ebb4a0daf390701f1b395d1cd01239a75a1"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 04 12:46:47 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 05 17:11:49 2020 +0000"
      },
      "message": "Code cleanup around exception handling and stack walking.\n\n- Remove unused code setting the method and dex pc below an upcall.\n- Clear cur_oat_quick_method_header when stack walking to be consistent\n  in having a runtime method and a null oat method header.\n\nTest: test.py\nChange-Id: I87672d193eb2e62add3ae7b8a42f2202e8eb927c\n"
    },
    {
      "commit": "89b85ebb4a0daf390701f1b395d1cd01239a75a1",
      "tree": "86d2a4dd300945e463040ceab48cffc20c6c57f7",
      "parents": [
        "198cf41c904b1368a3f745ce4bc57dfe2080b14d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 04 15:51:44 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 05 15:41:12 2020 +0000"
      },
      "message": "dex2oat: default to speed-profile if we have a profile.\n\nAnd move the check for /system/etc/boot-image.prof from\nAndroidRuntime.cpp to the deprecated GenerateImage() in\nart/runtime/gc/space/image_space.cc . If it\u0027s not found,\njust report the error and compile with the \"speed\" filter.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nBug: 119800099\nBug: 148928928\nChange-Id: I536ed7e6d7ebaa562cba3448a37c5d873bc0a682\n"
    },
    {
      "commit": "2ad3f8ebf88f46b8f8a04ce81ed3bc5fd0f314de",
      "tree": "5ebdbea69aff25b89176564012f25c12faf4c211",
      "parents": [
        "8feb7eb99360e88e7083be82ac7a63e4a9a28552"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 04 19:03:23 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 05 09:56:12 2020 +0000"
      },
      "message": "Do suspend check and hotness increment in entry of Nterp.\n\nThere is code for doing it when doing nterp to nterp transitions, but\nnot when entering directly from the entrypoint.\n\nTest: 638-checker-inline-cache-intrinsic\nBug: 147094528\n\nChange-Id: I5197997d34982b2217f82ad026671e84fdf97248\n"
    },
    {
      "commit": "8feb7eb99360e88e7083be82ac7a63e4a9a28552",
      "tree": "9800853684da751524d239da0c9229abcfe8372e",
      "parents": [
        "002eac6f818dc89c75487ba928fbe5901e4f82e8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 04 09:21:33 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 04 15:18:58 2020 +0000"
      },
      "message": "Adjust CHECK on instrumentation stack.\n\nWhen installing the instrumentation stack, it may be that we hit a\nresolution stub at the bottom of the call stack. This means the\ninstrumentation stack will have an instrumentation frame with a runtime\nmethod, when the actual stack will replace this method with the actual\nArtMethod being called.\n\nAdjust CHECK in stack walking to not assume methods match with the\ninstrumentation stack when seeing a runtime method.\n\nBug: 72608560\nTest: ./art/test/run-test --host --dev --runtime-option -verbose:deopt,plugin --prebuild --compact-dex-level fast --jit --no-relocate --create-runner --runtime-option -Xjitthreshold:0 --no-relocate --gcstress --runtime-option -Xcheck:jni  2001-virtual-structural-multithread\nTest: art/tools/parallel_run.py -j80 /tmp/path/runit.sh --out failure.txt\n\nChange-Id: Ic208fa52f4d8b14838b21022744e048e3ca7d093\n"
    },
    {
      "commit": "6c56db31b8a6424680ad3836022a1d81e83dc4a9",
      "tree": "ac3d7f1631de86192b116561eeb5909c88279815",
      "parents": [
        "f9dfd77182296cd9161784bc0b9babf4f22a90c7"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Nov 21 10:56:28 2019 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Feb 03 22:43:47 2020 +0000"
      },
      "message": "Fix Core Platform API JNI check\n\nFix an inverted flag around kIsTargetBuild that broke check.\n\nSimplify SharedObjectKind\u0027s so there are only values - part of the ART\nmodule and other. Being part of the module is equivalent to\nDexDomain::CorePlatform.\n\nAdd a test for Core Platform API checks for native code. The test is\nderived from 674-hiddenapi, and separate because the existing test is\nalready complex.\n\nAdd 2030-core-platform-api-jni to the same knownfailures as\n674-hiddenapi since the newer test likely to have the same failures.\n\nBug: 128517070\nBug: 144502743\nTest: art/test/run-test --host 2030\nTest: art/test/run-test 2030\nTest: erroneous warnings gone from master\nChange-Id: I1a365a28b89bd46b3e403f6deb736f350c4baf10\n"
    },
    {
      "commit": "f9dfd77182296cd9161784bc0b9babf4f22a90c7",
      "tree": "8abbce5a0fc5cf7b46979cb6d47a19a6106d0297",
      "parents": [
        "c70b84e7680663c3a41a119570ecd5f708ce4d76"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jan 30 13:56:13 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 03 16:40:25 2020 +0000"
      },
      "message": "Update VMRuntime.isBootClassPathOnDisk()...\n\n... for the new boot image location specification.\nIn particular, use only the first component and, if there is\nno path, use path from the first boot class path component.\n\nTest: aosp_taimen-userdebug boots\nTest: adb root \u0026\u0026 \\\n      adb shell stop \u0026\u0026 \\\n      adb shell setprop dalvik.vm.boot-image \\\n          \u0027boot.art:boot-framework.art\u0027 \u0026\u0026\n      adb shell start  # Starts correctly.\nTest: adb root \u0026\u0026 \\\n      adb shell stop \u0026\u0026 \\\n      adb shell setprop dalvik.vm.boot-image \\\n          \u0027boot.art:/system/framework/boot-framework.art\u0027 \u0026\u0026\n      adb shell start  # Starts correctly.\nBug: 119868597\nChange-Id: Ifae2a005b7c6b8625d744eca2df763e3f6f5d0fb\n"
    },
    {
      "commit": "c70b84e7680663c3a41a119570ecd5f708ce4d76",
      "tree": "edff6bcd18d92ecaf8a6cac63736bb3a5ac2ac7e",
      "parents": [
        "066dd906fc8ae3576a1ef53485e80b1c851ba327"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Jan 23 01:40:08 2020 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Feb 03 12:37:54 2020 +0000"
      },
      "message": "Revert \"Disable bitstring tests.\"\n\nThis reverts commit 2c5b48da62da3259a17cf9fab260e2e7f91c8d27.\n\nReason for revert: b/148125232 was fixed\nBug: 148125232\n\nChange-Id: I36ba22ffe018503f5556e47646703ff0cd35b68f\n"
    },
    {
      "commit": "ecd9502601d713fdb5477f7142f05f329b469166",
      "tree": "5a14017950e9502f296c92b0a9446c6c5289c278",
      "parents": [
        "f69c189716c0b7edbf87b744f24cccdf941f9df0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 27 09:35:10 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Feb 01 13:20:47 2020 +0000"
      },
      "message": "[jitzygote] Don\u0027t spawn a thread in child zygotes.\n\nThis prevents forking the zygote until the thread dies. Instead,\ncheck whether the main zygote has finished compiling post-fork\n(assuming this happens reasonably soon after compilation is done).\n\nTest: boots with jitzygote config, fork a webview process (settings -\u003e about \u003e license)\nBug: 145973776\nChange-Id: Ia854e894cf5c951696d2c4f042607e0edc9ea6c4\n"
    },
    {
      "commit": "c0e0e5e6334f7804c41e3a0436536161754dbb1c",
      "tree": "e84506016937e10438916fde9a91708a7d9ed093",
      "parents": [
        "e4207a7bf5b008df97b76b6df7a9930524c4c1cb"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jan 23 17:43:05 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jan 31 09:28:51 2020 +0000"
      },
      "message": "Compile boot image extensions in memory.\n\nAllow boot image location components for extensions to\nspecify a profile. If such extension is not found on disk,\nor the on-disk version fails validation (presumably because\nit\u0027s out of date), compile the extension in memory, passing\nmemfd file descriptors as output arguments to dex2oat.\n\nAlso fix GetPrimaryImageLocation() to check for the \u0027/\u0027 in\nthe first component instead of the full boot image location.\n\nTest: Additional tests in dex2oat_image_test\nTest: m test-art-host-gtest\nBug: 119800099\nChange-Id: I4d3c178defe311bf51153d4beb386eba208d75a5\n"
    },
    {
      "commit": "e4207a7bf5b008df97b76b6df7a9930524c4c1cb",
      "tree": "e8ebf130a1ced48fd228d8e9f80ceb1e137fd9e0",
      "parents": [
        "299141a330adc3bff3fdfaa54baf9e6d681507aa"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jan 24 14:42:03 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jan 31 09:20:45 2020 +0000"
      },
      "message": "Use consistent storage type in bit structs.\n\nPropagate the storage type from the enclosing union to each\nindividual field when it is defined by provided macros.\n\nTest: m test-art-host-gtest\nBug: 148125232\nChange-Id: I6976c4e7668d62f500ee1a413a30e02bc8b68cea\n"
    },
    {
      "commit": "e91e795a77b96d58276f75b1b244a5509ef8c215",
      "tree": "d34f8164bb7adb8ed46e3c989877012555e194c3",
      "parents": [
        "aa6f6f1c86705fe3cedf929bd30d1e6f51524594"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 23 10:15:56 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 31 08:20:57 2020 +0000"
      },
      "message": "Replace instrumention id with stack pointers.\n\nReplace instrumentation ids for instrumentation frames, which are\ninherently broken (see b/72608560), and use stack addresses instead\nto properly identify which frames to pop / unwind.\n\nBug: 72608560\nBug: 148166031\n\nTest: ./art/test/testrunner/testrunner.py --trace --debuggable --ndebuggable --optimizing --interpreter --jit --debug --ndebug -j32\nTest: run-libjdwp-tests.sh\nTest: 2011-stack-walk-concurrent-instrument\nTest: ./art/test/run-test --host --dev --runtime-option -verbose:deopt,plugin --prebuild --compact-dex-level fast --jit --no-relocate --create-runner --runtime-option -Xcheck:jni 1965-get-set-local-primitive-no-tables\n      art/tools/parallel_run.py -j80 /tmp/path/to/runit.sh --out failure.txt\n\nChange-Id: I71f6e55b9da608796cd3142b147f7b50bbd292ec\n"
    },
    {
      "commit": "fc58809f7b932d86234130be15487017dc37b0cf",
      "tree": "d003dedec73d77473aff6b2039860bc76a69d898",
      "parents": [
        "d00f129f1b7148f01efe6e9283a72d6ec8f0edd3"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jan 23 15:39:08 2020 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 29 23:31:10 2020 +0000"
      },
      "message": "Remove old JDWP implementation from ART\n\nThe old \u0027internal\u0027 JDWP implementation hasn\u0027t been used for a few\nreleases and it\u0027s a lot of code that\u0027s barely being tested and is at\nrisk of bit-rot. To simplify the runtime and remove potentially buggy\ncode this removes it.\n\nWe also needed to rewrite the DdmThreadNotification code since it\nrelied on the suspension functionality from the old debugger and was\ngenerally unsafe.\n\nTest: ./test.py --host\nTest: atest --test-mapping cts/tests/jdwp/TEST_MAPPING\nTest: atest --test-mapping cts/hostsidetests/jdwptunnel/TEST_MAPPING\nTest: Manual ddms\n\nBug: 119034743\n\nChange-Id: I775f310a009141296b730e4a6c2503506a329481\n"
    },
    {
      "commit": "d2ac307e505f71a2d439c264cb7c5eab9bd07e13",
      "tree": "94baf5a9a19b46a28f211e40f9cfef0d7a6a0462",
      "parents": [
        "aea71ae52a6f846b39f89a3c395663f40b2f4184"
      ],
      "author": {
        "name": "Evgeny Astigeevich",
        "email": "evgeny.astigeevich@linaro.org",
        "time": "Wed Jan 29 11:51:40 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jan 29 14:31:58 2020 +0000"
      },
      "message": "Disable Dex2oatSwapUseTest.CheckSwapUsage for x86_64\n\nDex2oatSwapUseTest.CheckSwapUsage disabled for all targets\nwas changed to be disabled only for x86. However the test\nfrequently fails on x86_64 as well.\n\nThis CL disables the test for x86_64.\n\nTest: test.py --host --gtest\nTest: dex2oat_test\nTest: run-gtests.sh\nBug: 29259363\n\nChange-Id: I88a8bf735d2702c914ba952bdcc2431a85dbf761\n"
    },
    {
      "commit": "3f0dca119df45ef2a7fdfc26c070677953cfcce4",
      "tree": "ced5a8170092b728b038d1e581f061b27b315735",
      "parents": [
        "f365affd27933d1d0771d0d5064101db18c19cc2"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Jan 27 17:20:28 2020 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 28 21:27:20 2020 +0000"
      },
      "message": "Ensure IsStructurallyRedefinable takes into account subtypes\n\nStructural-redefinition changes the addresses of the ArtFields and\nArtMethods of the class being redefined and all of its subclasses. For\nthis reason if there are JNI-ids that are pointers to these anywhere\nwe cannot allow structural redefinition of the class, even if the\npointers are for subtypes. Previously we didn\u0027t check the\nredefinability of sub-types so we could incorrectly invalidate jmethod\nor jfield IDs.\n\nTest: ./test.py --host\nBug: 148414638\nChange-Id: I8fc809a43e16d5e7938b90b00c531573a2edca00\n"
    },
    {
      "commit": "f365affd27933d1d0771d0d5064101db18c19cc2",
      "tree": "b94a643c08f62a4355d3e7de143aa5e4f7b2d2e2",
      "parents": [
        "d71f1dc15e264f9d2122c427a4d99d49b525bfd3"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Jan 27 13:43:01 2020 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 28 18:39:37 2020 +0000"
      },
      "message": "Remove isDebuggerActive native implementation.\n\nThis function is identical to VMDebug#isDebuggerConnected and always\nhas been in ART (on dalvik there was a distinction between the two).\nSimply implement this function in java to reduce the number of places\nthe debugger needs to overwrite native functions.\n\nTest: build\n\nBug: 148401311\nChange-Id: I56448e5c437900cb072aa39ee784a25efad260b0\n"
    },
    {
      "commit": "caafd621eb33863630380818db918a2c93c9054e",
      "tree": "4bb0ac5b32984509242944f692e79b2f616d083d",
      "parents": [
        "6d41e574616bd84a355c55dc25485ecd7f7b3eeb"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 27 13:08:45 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jan 28 14:47:02 2020 +0000"
      },
      "message": "Implement GetVRegLong for nterp.\n\nTest: 543-env-long-ref\nBug: 112676029\nChange-Id: I17c1573fbe892b5aa219d804f11b69961bc150d5\n"
    },
    {
      "commit": "775f6817d7d22827b858be5f5d9713137372622d",
      "tree": "255f2de772706ffe12936c42cedee3aa170c6be9",
      "parents": [
        "5c7f367987080488fdb4e52a13dd92a4cafd798f"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Fri Jan 24 11:58:41 2020 -0800"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Tue Jan 28 03:51:42 2020 +0000"
      },
      "message": "JIT debugger_interface: add simpleperf presumit check.\n\nBug: none\nTest: run `atest --test-mapping art/runtime/jit`.\nChange-Id: Ie22eba78cda83395b2c146435f509578e4f24620\n"
    },
    {
      "commit": "7e2c963b572dff7aded82d5524b5ece81f7e0210",
      "tree": "9e04ff456950cde421ae71d37ac0dbd9e6f79c5b",
      "parents": [
        "73ffa57c7fbeaa131ba34777aa1622ee1896eb01"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 09 13:41:10 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 27 17:17:58 2020 +0000"
      },
      "message": "Update interpreter entrypoints in an image to nterp when supported.\n\nAlso put the resolution stub instead of the interpreter entrypoint\nwhen a class is not initialized, to ensure nterp gets executed after\nthe resolution stub.\n\nTest: test.py\nBug: 112676029\nChange-Id: I27b4a3647eea22f44b9cccce41284ebf7166b313\n"
    },
    {
      "commit": "4d7e1a8251c991828121043982d8b4bf0a9dd027",
      "tree": "510a0f306472254d580a3442b697dbf601de1e3e",
      "parents": [
        "c1cd1330c65e8b9b13bcd93bd9634eed6453c5dc"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sun Jan 26 19:57:02 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 27 13:41:47 2020 +0000"
      },
      "message": "nterp: Don\u0027t compile baseline if a process cannot allocate profiling infos.\n\nThe zygote cannot allocate profiling infos. Found in b/148219586\n\nBug:148219586\nTest: Use libartd on an x64 emulator\nTest: gcar_emu_x86_64-userdebug boots.\nChange-Id: Ic8c12c924dfc93498198a6619724f0015f674944\n"
    },
    {
      "commit": "f0e90bacbfcd36fed615dd82c689f872437fa5ef",
      "tree": "4a30d66708fa83184bd7fc3207c34d0994be9336",
      "parents": [
        "13fcc3e2ba4b2887907ef9b89b09a9499bbfdc16"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Jan 17 15:38:24 2020 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Jan 24 14:38:38 2020 +0000"
      },
      "message": "Revert^2 \"Enable JIT dual data mapping.\"\n\nWe use it for zygote.  Enable it for other cases\nas well for consistency, security and testing.\n\nThis reverts commit 014c16c3e1ccedbea025111bc79f0a0351ba52d0.\n\nReason for revert: Reland https://r.android.com/1105362\n\nTest: testrunner.py --host\nChange-Id: I147365634ce196c4acc298e36966936f54e181aa\n"
    },
    {
      "commit": "13fcc3e2ba4b2887907ef9b89b09a9499bbfdc16",
      "tree": "d14472a2920ea5e9211f3868abbeeebb6efd163f",
      "parents": [
        "469016b2ba86f46fd0d3b4a9b7d42591dbc1d91f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jan 24 12:40:56 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jan 24 14:23:17 2020 +0000"
      },
      "message": "Remove some dead code from OatFile.\n\nTest: m\nChange-Id: Id1e354df39b8c9e190c27edd52dc9340cc0fcd1c\n"
    },
    {
      "commit": "469016b2ba86f46fd0d3b4a9b7d42591dbc1d91f",
      "tree": "4561f438aa6f3ef8f8443386a6ed8e9306b23963",
      "parents": [
        "b78f919c658563a613bf0e2204bade5ad5058330"
      ],
      "author": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Wed Jan 22 17:50:41 2020 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 23 16:31:31 2020 +0000"
      },
      "message": "Don\u0027t pattern-init an unused variable that overallocates the stack\n\nART is intentionally walking to the stack top (lowest address), but the\npattern initialization is accidentally triggering a sanitizer failure\nfor an overflow. Removing the pattern initialization from that unused\n(and uninitialized) variable restores the original functionality of\naccessing every page of the available stack.\n\nFixes: 148125929\nBug: 131390872\n\nTest: m checkbuild ASAN_OPTIONS\u003ddetect_leaks\u003d0 SANITIZE_HOST\u003daddress\nChange-Id: I2b1e8bdc44044e8165a14a8e7b36dd8616d4a5b3\n"
    },
    {
      "commit": "e0c6d439271c94feb3fb38728d1b4743a7ed0b9e",
      "tree": "c7f9176cacb9e362d0dd3bbeabeca8b42e42d184",
      "parents": [
        "721e40283793649b4750c05da4fe972bd372f7f9"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jan 22 22:04:20 2020 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jan 22 22:04:20 2020 +0000"
      },
      "message": "Revert \"Fix stack-walking race\"\n\nThis reverts commit 721e40283793649b4750c05da4fe972bd372f7f9.\n\nReason for revert: Wanted more discussion.\n\nTest: none\n\nBug: 72608560\nBug: 29259363\nBug: 148166031\nChange-Id: Id0fb201018a0d0bdca11d51ec156a41d6d7fe4ae\n"
    },
    {
      "commit": "721e40283793649b4750c05da4fe972bd372f7f9",
      "tree": "9af2c2c583900e9a35c6adf7fef277d0221c0571",
      "parents": [
        "df7e5b836e78ab38101dde45399c8de51df4042e"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jan 14 14:45:40 2020 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 22 21:56:30 2020 +0000"
      },
      "message": "Fix stack-walking race\n\nDuring stack walking it was possible for a walking thread to race with\nthe InstrumentationInstallStack. In this case the stack changes made\nby InstrumentationInstallStack could cause the other thread to\nincorrectly parse the stack data-structures, leading to\nfailures/crashes.\n\nTo fix this we increment an ID whenever instrumentation changes the\ninstrumentation stack. Other stack-walkers then check this id and\nrestart whenever it changes. Note that although the stack-walk\nrestarts we keep track of how many java frames we\u0027ve visited already\nand refrain from calling VisitFrame until we are at the same position\nagain. This means that as far as the Visitor writers are concerned the\nstack-walk is only done once, just like always.\n\nAdded a test (2011) that forces the race to occur.\n\nAlso Disabled Dex2oatSwapUseTest#CheckSwapUsage. It seems that the\nincrease in Thread* size has caused it to fail. Disable while we\ninvestigate. See b/29259363\n\nBug: 72608560\nBug: 29259363\nBug: 148166031\nTest: ./test.py --host\nTest: ./test/run-test --host --dev --runtime-option -verbose:deopt,plugin --prebuild --compact-dex-level fast --jit --no-relocate --create-runner --runtime-option -Xcheck:jni 1965-get-set-local-primitive-no-tables\n      parallel_run.py\nChange-Id: I77349dfc6fa860b7f007dee485e9fea1d8658090\n"
    },
    {
      "commit": "2f78a9cbfab14126c21430f1abad40d32ad92156",
      "tree": "57bddd01249e03d96326499babe4231275ed7bf5",
      "parents": [
        "2c5b48da62da3259a17cf9fab260e2e7f91c8d27"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Jan 17 15:53:42 2020 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jan 22 13:46:22 2020 +0000"
      },
      "message": "Revert^2 \"Improve stack unwinding during gcstress tests.\"\n\nThis reverts commit 47d2947967e301b7a1f9d3d01ad8953cea8a52c7.\n\nReason for revert: Reland after timeout issues disappeared.\n\nBug: 142039427\nChange-Id: Id563c79b4a9e58b5bcfeafc35ef807b173af54e3\n"
    },
    {
      "commit": "2c5b48da62da3259a17cf9fab260e2e7f91c8d27",
      "tree": "05c7f3b38a8102f52eca5cd5c73230e635e4ef1f",
      "parents": [
        "8404f348c96c929981b157b8240d55bc81222003"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 22 11:56:20 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 22 11:57:34 2020 +0000"
      },
      "message": "Disable bitstring tests.\n\nTest: subtype_check_test\nBug:148125232\nChange-Id: I2314443e56a3192c6dcf69b4a2d36ec0c7c51b83\n"
    },
    {
      "commit": "e8bd0a90be7be25961efd204b8f404e180cdd13f",
      "tree": "56fe6b003251018cc3b0e7a83d8526e908c10232",
      "parents": [
        "2f544c2b7afdcb03c9fe97931424f31afe831f23"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Tue Jan 21 18:14:07 2020 -0800"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Tue Jan 21 18:28:26 2020 -0800"
      },
      "message": "Correctly initialize monitors for 32-bit\n\nFully initialize lock_owner... fields. The only one that\u0027s critical\nhere is the lock_owner_ field itself, but let\u0027s be consistent.\n\nA randomly set lock_owner_ field can cause GetLockOwnerInfo() to\nspin indefinitely.\n\nBug: 148094637\nTest: TreeHugger\nChange-Id: I50cab5ba412a2a8113e44c5f05c2990c5d7d101f\n"
    },
    {
      "commit": "abafbe759a354dd6c6d81d4aba3f0aec9aca3d5b",
      "tree": "abd0c540ee97708916450c07bc37d4cd5229a902",
      "parents": [
        "7ec3e60dd656509f4346fc94968f9de22cedcaaf"
      ],
      "author": {
        "name": "Lev Rumyantsev",
        "email": "levarum@google.com",
        "time": "Fri Dec 13 15:49:37 2019 -0800"
      },
      "committer": {
        "name": "Lev Rumyantsev",
        "email": "levarum@google.com",
        "time": "Tue Jan 21 23:09:34 2020 +0000"
      },
      "message": "nativebridge: Add PreZygoteFork callback\n\nIt\u0027s required to clean-up the emulated enviroment (e.g. close file\ndescriptors) after emulated execution in doPreload() in app-zygote.\n\nTest: NativeBridge6PreZygoteFork_test\nTest: CtsSeccompHostTestCases\nandroid.seccomp.cts.SeccompHostJUnit4DeviceTest\ntestAppZygoteSyscalls\nboth for Q.sdk_gphone_x86_arm.armeabi-v7a\nBug: 146904103\n\nChange-Id: Id192a1647c2f405570bf196daf65b3f2a9faca42\n"
    }
  ],
  "next": "7ec3e60dd656509f4346fc94968f9de22cedcaaf"
}
