)]}'
{
  "log": [
    {
      "commit": "b72a0941f6f97f6bbb117634a2a3d7bd5a121732",
      "tree": "cc5a1779c4b799dc6a1e9edfa05e69014d639ae3",
      "parents": [
        "0ae3173a94e56f17d0e3c6738d4296f7a2401fc8"
      ],
      "author": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Thu Mar 12 12:10:39 2020 +0000"
      },
      "committer": {
        "name": "vichang",
        "email": "vichang@google.com",
        "time": "Mon Apr 06 11:18:35 2020 +0000"
      },
      "message": "Remove ART dependency on libicuuc\n\nUse the headers of libandroidicu only.\n\nBug: 138994281\nTest: m droid\nChange-Id: I4af1aa40a5c9ab475fdf31ca6939ad5b54da3a2b\n"
    },
    {
      "commit": "f4ba904ec0ec5e6cefa79c4f598dc0a29b7d4143",
      "tree": "c3a19c1279c73d5d057bb09774b2465f32dc1d6f",
      "parents": [
        "cb62cd8665e8dd432cdc3b5adc8cdf6f36289d44"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Apr 03 09:40:25 2020 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Apr 03 19:21:02 2020 +0000"
      },
      "message": "Fix string deduplication for multi-image extensions.\n\nTest: WITH_TIDY\u003d1 m\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nBug: 153104371\nBug: 152037801\nChange-Id: Ib91e7a13047d7da78deb855a6713a1a5d9044463\n"
    },
    {
      "commit": "9c06d449e5d83f9ab2aaef2e9765c3038abc8ede",
      "tree": "24a9ddee1b9c8be7674925cf6b869a4a7af4026c",
      "parents": [
        "d1f73515701bc64b3a23727b3973da6906f1b167"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 01 14:11:05 2020 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 03 15:08:07 2020 +0000"
      },
      "message": "Avoid creating preresolved strings array for dex files that have no strings\n\nHad exposed a bug in the image writer where having an empty non-null\narray caused an assert failure.\n\nAdded test.\n\n(cherry-picked from commit adbe2b10d3e9d1cba9c313043941ca591ed109f0)\n\nBug: 152809035\nTest: test-art-host\nMerged-In: I0671eef56ae7cbe67bb4ecdbcd72df4e26c8aaa3\nChange-Id: I0671eef56ae7cbe67bb4ecdbcd72df4e26c8aaa3\n"
    },
    {
      "commit": "d1f73515701bc64b3a23727b3973da6906f1b167",
      "tree": "59d789c42edd402ae799caa748939b61aeb00be7",
      "parents": [
        "bda163d9c8313f0b92046abda5ffb1216af1e808"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 02 10:50:35 2020 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Apr 03 13:40:14 2020 +0100"
      },
      "message": "dex2oat: add --updatable-bcp-packages-file argument.\n\nAdd a command line argument specifying a file that contains\nthe list of updatable boot class path packages.\n\nTest: Updated module_exclusion_test\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nBug: 151314205\nChange-Id: Ic6a66ad7e565a9b9b344cc467cb1ed550ab41b3f\n"
    },
    {
      "commit": "bda163d9c8313f0b92046abda5ffb1216af1e808",
      "tree": "cc38503bef37960ee2d43eb0c8343bb60f931cd8",
      "parents": [
        "963c27f6035db91e99c08bb52101c8acfc0af4d3"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Apr 01 17:36:26 2020 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 02 22:56:50 2020 +0000"
      },
      "message": "Additional checks in GetDirectBuffer{Address,Capacity}\n\nAdd checks that the buffer argument is non-null and is a j.n.Buffer\ninstance.\n\nThis matches the behaviour described in the JNI spec for both methods\nbased on RETURNS section commentary. The JNI spec comments for\nparameters seem at odds since they say the buffer must not be null,\n(but not MUST not be null :-).\n\nBug: 122025675\nTest: art/tools/buildbot-build.sh --host \u0026\u0026 jni_internal_test\nChange-Id: Ie74ad2160a7b265e12fe490aa96fccda52379949\n"
    },
    {
      "commit": "963c27f6035db91e99c08bb52101c8acfc0af4d3",
      "tree": "1ed6303e1bd61b9dd0b85ceec2b219c5e89c7de7",
      "parents": [
        "fbf53b5e38fef38a2bfdccb433e61d5d4ee802bc"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed Apr 01 17:35:45 2020 -0700"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Thu Apr 02 18:54:36 2020 +0000"
      },
      "message": "Change default heap-target-utilization to 0.75\n\nOn high-memory devices we often use system properties to explicitly use\nmore relaxed heap-target-utilization. So changing the default value\nto a more conservative one for low-memory devices.\n\nBug: 152837465\nTest: art/test/testrunner/testrunner.py\nChange-Id: I03b6af27fe246683b0282cf1ee136b287dee729d\n"
    },
    {
      "commit": "ca1c39addf4446c8eff3cf0b304112c59b400b18",
      "tree": "cba9fb59cf4126222a50aa40357f8e1f7121336d",
      "parents": [
        "1abd3ec2c338bf3d0c7e68399d94554e468a8e3f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 30 17:57:26 2020 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 31 10:17:58 2020 -0700"
      },
      "message": "Fix race condition in GetPreResolvedStrings\n\nDexCache::VisitReferences had a race condition where a null pointer\ncould be accessed if there was another concurrent caller doing\nClearPreResolvedStrings.\n\nFix is to add an extra null check that prevents the race.\n\nBug: 152716138\nTest: test-art-host\nChange-Id: Ib447ce689e23f7c20d4cda8b457abeb89ade9291\n"
    },
    {
      "commit": "fdd46848364b5fdb7360cb3256bd9482d7ca3c28",
      "tree": "d3e47c9723155f6376e3782cc47658a295c1da1c",
      "parents": [
        "4ac8d96c332b014b72c2480aa1c83762e818daef"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Mar 25 14:57:17 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 31 13:16:12 2020 +0000"
      },
      "message": "Deduplicate interned image strings.\n\nAlso fix a bug in relocation; even for -Xnorelocate we need\nto relocate second and later extension if it\u0027s not compiled\nagainst all previous boot image components.\n\nAlso clean up InternTable includes.\n\nTest: New tests in image_space_test.\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nBug: 152037801\nChange-Id: Ie6ae70721f4ffb48950bd248ffa123dee460bcd7\n"
    },
    {
      "commit": "bc11509d4c3e7f4f28c28f1c07e70e0d2e68add5",
      "tree": "d82985f7ecffca843fd1fb70f44f7355ee94f445",
      "parents": [
        "403384e36986532310a5a600c00dd171b7cee020"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Mar 27 11:25:16 2020 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 27 20:43:45 2020 +0000"
      },
      "message": "Address late comments on go/aog/1269207\n\nAddress a pair of comments on go/aog/1269207. This adds a requested\ncomment clarification and a missing OOM check.\n\nTest: ./test.py --host\nBug: 152339121\nChange-Id: I127dd10db2c01b338171e49ee968ea3593a01c5e\n"
    },
    {
      "commit": "a467a6e81f5c6da589a5fb16fdb85f2604860623",
      "tree": "f40ce22560d4da7457f4d4ffcc9306319030e42d",
      "parents": [
        "e5621f552a1e3e07d2c4a5e29c0d9494b09bbffe"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Mar 23 16:07:29 2020 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Mar 27 17:48:38 2020 +0000"
      },
      "message": "Fix incorrect interface-override linking\n\nWe would incorrectly search all declared methods when searching for\noverrides of super-class interface methods. This could lead to\nincorrect behavior since we could try to override methods with static\nor private methods. This could cause exceptions or other issues.\n\nThis fixes a typo from over 4 years ago in go/aog/185608 and restores\nthe behavior we had prior to N.\n\nBug: 152199517\nTest: ./test.py --host\nChange-Id: Ic6ce51f79d071727316bb39e5bbeabb92cb4aa9a\n"
    },
    {
      "commit": "e4abf13cf6b7cbc50e4e22d7b9fc6f31d0bb0ac3",
      "tree": "9c10bc444d55b777b6aed88588412318e280cd60",
      "parents": [
        "16c08ca97486f535698f1a1b17f0332bfe78e95a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 24 17:12:29 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Mar 27 10:20:55 2020 +0000"
      },
      "message": "ART: Update list of reserved boot class path packages.\n\n(cherry picked from commit 1ade9f4749a052b469aba444fb023452474e33c3)\n\nTest: aosp_taimen-userdebug boots.\nTest: oatdump --instruction-set\u003darm64 \\\n      --oat-file\u003d$ANDROID_PRODUCT_OUT/system/framework/oat/arm64/services.odex \\\n      --dex-file\u003d$ANDROID_PRODUCT_OUT/system/framework/services.jar | \\\n      grep -E \u0027Landroid/net/.*\\(OatClass.*Compiled\\)$\u0027 | \\\n      grep -vE \u0027\\(NotReady\\)\u0027  # Filter out unresolved classes\n      # Empty output. (Many classes without the last grep.)\nBug: 151314205\nMerged-In: I633fe53a3bc2e5ed93e523428d7dec18363971cf\nChange-Id: Ib6c48bb3c729d5d6eae40fd680ca7c392ae89cc7\n"
    },
    {
      "commit": "133987d8e3387395943f33ecc467ba0dbfed77e6",
      "tree": "630e3ced9837304eed5c4a6b53c322b576f82286",
      "parents": [
        "e2cc08b179e665afced11ae8deb3508f0d3814ca"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Mar 26 19:22:12 2020 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 26 23:35:17 2020 +0000"
      },
      "message": "Revert^2 \"Don\u0027t include static or private methods with proxy construction.\"\n\nThis reverts commit 379503d0a12d4e22f0c04b4e7f295bfb9f6349fd.\n\njava.lang.reflect.Proxy classes are meant to only proxy the interface\nmethods of the classes they are proxying. Instead we were creating\n(invalid) class objects that contained any static or private methods\nthe interfaces had in the proxies vtable. This can break assumptions\nabout the layout of classes elsewhere in the runtime.\n\nManually filter out any static/private methods and their throws any of\nthe interfaces contain and not pass them down into the proxy class\ninternals.\n\nReason for revert: Fixed issue where throws array was not filtered\nBug: 152479334\nBug: 152339121\nTest: ./test.py --host\nTest: atest com.android.server.wifi.WifiServiceImplTest#registerSoftApCallbackFailureOnLinkToDeath\n\nChange-Id: I5157529afc733a8422e15e4b74d501c29646cc62\n"
    },
    {
      "commit": "379503d0a12d4e22f0c04b4e7f295bfb9f6349fd",
      "tree": "bcf84338c2d9be451fabbbe6c3112f9fac62032d",
      "parents": [
        "0c0f3026ba429177cfb348256d74f3cf00a39c41"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Mar 26 19:13:29 2020 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Mar 26 19:20:30 2020 +0000"
      },
      "message": "Revert \"Don\u0027t include static or private methods with proxy construction.\"\n\nThis reverts commit 584e5996608a263feb8fd4241b78a83501a46868.\n\nReason for revert: Failed to filter out throws array.\nBug: 152479334\nBug: 152339121\nTest: None, pure revert\n\nChange-Id: I7dfe8ee241905f5dbd863d3e39c731a05fa3a6cb\n"
    },
    {
      "commit": "0c0f3026ba429177cfb348256d74f3cf00a39c41",
      "tree": "dccf8ac4632fd90095f0a6c616a3b9a9b52db871",
      "parents": [
        "f368882656cce265d732cba237fac7bc312934a6"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Feb 13 15:53:01 2020 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 26 18:03:53 2020 +0000"
      },
      "message": "Host gtests: Use the apex boot image instead of core.art.\n\nClosely mirror the behaviour of target tests.\n\nTest: m test-art-host-gtest\nBug: 147817558\nChange-Id: If9a1d34cef022fa93c9c09c8f31adc26ac71afdc\n"
    },
    {
      "commit": "f368882656cce265d732cba237fac7bc312934a6",
      "tree": "157fc1c36079d64f065d2a46d955f3d96ba5e352",
      "parents": [
        "aacb4b84078eacbee31f168676750ca73514217e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 25 15:04:03 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 26 14:20:58 2020 +0000"
      },
      "message": "Add more debugging info around ResolveField.\n\nTo better diagnose the DCHECK that we have hit here:\nhttps://android-build.googleplex.com/builds/git_master-art-host-linux-art-jit/6325844/logs/build.log\n\nTest: test.py\nChange-Id: If160b74055c27cd02bde27e29c7e7f731c458f4d\n"
    },
    {
      "commit": "584e5996608a263feb8fd4241b78a83501a46868",
      "tree": "006b0962f2e7a32985192e44399f0909d228831f",
      "parents": [
        "c1ad13a45ca363f7b5044d66a48853403a993b33"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Mar 25 10:10:34 2020 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 25 22:48:43 2020 +0000"
      },
      "message": "Don\u0027t include static or private methods with proxy construction.\n\njava.lang.reflect.Proxy classes are meant to only proxy the interface\nmethods of the classes they are proxying. Instead we were creating\n(invalid) class objects that contained any static or private methods\nthe interfaces had in the proxies vtable. This can break assumptions\nabout the layout of classes elsewhere in the runtime.\n\nManually filter out any static/private methods any of the interfaces\ncontain and not pass them down into the proxy class internals.\n\nBug: 152339121\nTest: ./art/test.py --host\nChange-Id: I11b86d50575262b47e9ce9626705cd7a9e2ccfc7\n"
    },
    {
      "commit": "c1ad13a45ca363f7b5044d66a48853403a993b33",
      "tree": "39b592c7524e403beeb7ea36c32794151194539d",
      "parents": [
        "55d6f19764876fc2bc16ea27d9f0a5a736bb1519"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Mar 24 11:37:45 2020 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 25 22:48:43 2020 +0000"
      },
      "message": "Add Handle::GetFromGdb function\n\nWhen using a debugger it is normally quite difficult to examine\nmirror objects being held by Handles due to the inlining of the\nvarious accessor functions. This adds a new \u0027GetFromGdb\u0027 function that\nis emitted normally to allow one to decode the handle from gdb. This\nfunction is defined for every Handle type using a macro.\n\nTest: Manual debugging\nChange-Id: I7cb95468b1a14438df4dccdf84b48e2af5ec71b9\n"
    },
    {
      "commit": "41617b18f1c09e3031710d58fdb93c5aa43399ac",
      "tree": "36a0f3e3dc27e97980b96e1150ede718aee775fa",
      "parents": [
        "842555d72ee7511c193a65f34841cc92170a1850"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Mar 18 21:19:06 2020 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Mar 25 14:10:23 2020 +0000"
      },
      "message": "Add more logging and sanity checks for JIT mini-debug-info.\n\nUsed when diagnosing b/151137723. Keep it around.\n\nBug: 151137723\nTest: test.py -r --jit\nChange-Id: I10cc613c7396607e221fdc1f5972d26c1ac03fa8\n"
    },
    {
      "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"
    }
  ],
  "next": "e91e795a77b96d58276f75b1b244a5509ef8c215"
}
