)]}'
{
  "log": [
    {
      "commit": "8d94dddfd60ab8122b0abb1a0d90fb13d752a7b6",
      "tree": "3c9195b1fd8a78ef3d112ed5b5663796946c9629",
      "parents": [
        "65a01a7a751f0ec8c0cbb5650c25724e1df93826"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Dec 18 11:13:03 2019 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 03 22:11:47 2020 +0000"
      },
      "message": "Improve run-test tooling support\n\nA useful thing to do with run-test tests is to run them in parallel to\nreproduce low-probability flakes. We have a tool called\nparallel_run.py to do this. Unfortunately one had to manually create\nthe script that parallel_run.py would execute, making it rather\ndifficult to use. This adds a --create-runner flag to run-test that\nwill cause it to write a script (called $DEX_LOCATION/runit.sh) that\nis compatible with parallel_run.py\n\nTest: % ./test/run-test --host --64 --prebuild 001-HelloWorld\n      ...\n      Runnable test script written to /tmp/allight/test-180018/runit.sh\n      ...\n      % ./tools/parallel_run.py /tmp/allight/test-180018/runit.sh -j80\n\nChange-Id: I18d4ec72b51fb3c868ca4c6fe7f191e74f45b868\n"
    },
    {
      "commit": "65a01a7a751f0ec8c0cbb5650c25724e1df93826",
      "tree": "dbcb8fda4295ed6a99a53b5064193627fccb7a75",
      "parents": [
        "3d52abe40e619497b1b59cfce92c74b5a417add5"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Mon Dec 30 14:07:03 2019 -0800"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Fri Jan 03 21:40:59 2020 +0000"
      },
      "message": "Simplify access_flags_ updates\n\nSimplify the code. Probably also results in trivial performance\nimprovements.\n\nUse memory_order_relaxed consistently. Updates used stronger ordering,\nbut readers didn\u0027t, which made little sense.\n\nTest: Build AOSP and boot.\nChange-Id: I87fe8537b497dd79b8e674b10263ae6b017c9236\n"
    },
    {
      "commit": "3d52abe40e619497b1b59cfce92c74b5a417add5",
      "tree": "50c67eb9a980b1525f78e03d0941605bb9fa3887",
      "parents": [
        "eac38a141a95adc273059ba2f6ad26f073391ed3"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Tue Nov 19 18:49:50 2019 +0000"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Fri Jan 03 19:15:21 2020 +0000"
      },
      "message": "Revert^2 \"Add spin loop to mutex, overhaul monitor\"\n\nThis reverts commit d56f7d1086b16f32c0771a41a4afb376b5fd3076.\n\nReason for revert: PS2 fixes the problems I identified.\n\nPS1 is straight revert^2 of, and thus identical to aosp/1111800.\n\nPS2 in addition:\n- Reduces the size of the test, when not modified to run as benchmark.\n- Disables the test in slow-running configurations, which timed out.\n- Stops using the mutex recursion count, and instead reintroduces\n  one at the monitor level. The plan is to eliminate the one in mutex\n  in a future CL.\n- Avoids modifying various monitor fields in suspended state.\n  MonitorInfo, deflation, etc., may look at the state of a suspended\n  thread and expect not to race. I don\u0027t think the original code had\n  this completely correct either, but PS1 made it worse.\n- Documents some aspects of the code that confused me at times.\n- Avoids dereferencing the monitor owner Thread* unless it holds the\n  thread list lock, and thus knows that the thread won\u0027t go away.\n- Stores a Thread* instead of a thread_id with the monitor owner method\n  and dex pc information used for debugging. This is required to avoid\n  extra thread list lock acquisitions, since we need to dereference the\n  owner to get the thread id.\n- Makes the thread list Contains method public, again in order to\n  support the above. (This ignores C/C++ restrictions on dangling\n  pointer use. We already rely on violating those elsewhere, and\n  the committees are trying to get their story straight about this.)\n- Causes the spin loop to give up immediately if the process is\n  shutting down. This gets us to an actual idle state sooner in that\n  case, and should hopefully mitigate the shutdown issues somewhat.\n  (We tried not spinnning in \"suspended\" state, but that reintroduced\n  some performance issues.)\n- Makes runtime shutdown code more defensive. Clear fields pointing to\n  deallocated objects. Always wait for quiescence AFTER all threads\n  are suspended.\n- Consistently checks for a runtime that\u0027s shutting down or missing\n  after waking up from a futex wait, thus avoiding touching deallocated\n  memory. I believe this was the cause of b/121302864, which PS1\n  managed to aggravate.\n- SleepForever() was a very light sleeper, waking up once a second.\n  Fix that, so the daemon threads we leak on runtime shutdown cost\n  us less.\n- Remove a data race from the \"was the runtime deleted\" logic.\n\nBug: 140590186\nBug: 121302864\nTest: Build and boot AOSP.\nTest: art/test/testrunner/testrunner.py --host -b -t 1932-monitor-events-misc\nTest: art/test/testrunner/testrunner.py --host -b -t 132-daemon-locks-shutdown\nTest: art/test/testrunner/testrunner.py --host -b -t 004-ThreadStress\n\nChange-Id: I6667c61beed2ba68c84cd4c0821fb8e21e188bbc\n"
    },
    {
      "commit": "eac38a141a95adc273059ba2f6ad26f073391ed3",
      "tree": "a6457ecd364192ca9b40f2cffed2b6eb7a2de0a3",
      "parents": [
        "2aa5a78482b4a1aedb35469117dfcc5238f1a1e1"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Fri Jan 03 17:56:33 2020 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Fri Jan 03 18:05:50 2020 +0900"
      },
      "message": "Refactor Android.gtest.mk more\n\nThis change fixes a bug that RUNTIME_TARGET_GTEST_MAKE_TARGETS is\nexpanded with incorrect module names such as \u0027._arch_test\u0027, etc.\nThis was because aosp/1199415 changed the variable to have module names,\nbut didn\u0027t fix the part that still expects that the variable is file\npaths.\n\nThis change also does some refactoring on the namings to prevent the\nsimilar confusion from happening in the future.\n\nBug: 146995717\nTest: run-gtests.sh\nChange-Id: I971c374b6c856848c1e3aaf0996c1812200373f2\n"
    },
    {
      "commit": "2aa5a78482b4a1aedb35469117dfcc5238f1a1e1",
      "tree": "ef9a8dd472c45e2174251eb08c080695eab7d195",
      "parents": [
        "340fb0b49492cc8a0cab6108020793bf6e5fa339"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Dec 18 14:57:59 2019 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 02 19:34:04 2020 +0000"
      },
      "message": "Add comment explaining global\n\nAdd a comment explaining why we use a global at one point in test 912\nas requested.\n\nTest: none\nChange-Id: I0760da74ed66e848b49a6a7f441dc27ff343e81e\n"
    },
    {
      "commit": "340fb0b49492cc8a0cab6108020793bf6e5fa339",
      "tree": "8572f3a9e1da49395756e0b320a9816ba0a6a092",
      "parents": [
        "6079d65f090161f1e851a996b29b71a92f73a4b5"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 30 10:36:22 2019 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Jan 02 16:13:12 2020 +0000"
      },
      "message": "Workaround for building gtest dependencies.\n\nNow that ART tests are not soong \"installable\" (due to go/aog/1193736),\nmanually add all gtests in the Makefile to ensure we build their\ndependencies as listed in the makefile.\n\nAlso remove bitrotted make-based target test invocation.\n\nTest: run-gtests.sh\nBug: 146995717\nChange-Id: I3c680f00b46f2cadb2c0accabcc25e085fef4c88\n"
    },
    {
      "commit": "6079d65f090161f1e851a996b29b71a92f73a4b5",
      "tree": "0f4ccf9c4558807027fbdf1e62eaada4b6334bf1",
      "parents": [
        "dd3b7aa3066673eb95ec46ae8fb9651e52e1ee13"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 30 10:31:04 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 31 11:15:42 2019 +0000"
      },
      "message": "Fix buildbot build script.\n\nGot broken after:\n- https://android-review.googlesource.com/c/platform/art/+/1193736\n  (*-target targets don\u0027t exist anymore)\n- https://android-review.googlesource.com/c/platform/build/+/1146736\n  (remove ld.config.txt as a build target).\n\nTest: tools/buildbot-build.sh\nChange-Id: I99819de2ec6eb44b5e1953dfb94d3a05b59fa167\n"
    },
    {
      "commit": "dd3b7aa3066673eb95ec46ae8fb9651e52e1ee13",
      "tree": "3a0264195095bccad49acd2298bf281cd3018e90",
      "parents": [
        "eeae32ba02c7d3785a8d195e967febfaa0b1113b"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Jul 31 13:47:39 2019 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Dec 30 15:39:19 2019 -0800"
      },
      "message": "Clean up art\u0027s Soong go files\n\nReplace deprecated BaseContext with LoadHookContext.\nUse ctx.Config() instead of ctx.AConfig().\nUse existing ctx.Config() functions instead of wrappers.\nSort imports.\n\nTest: m checkbuild\nChange-Id: Idf30996ef38f4056a93af511c607b2c24678a5fa\n"
    },
    {
      "commit": "eeae32ba02c7d3785a8d195e967febfaa0b1113b",
      "tree": "d7e7a1b09460db0f9b359d582602300a25570a26",
      "parents": [
        "066dd902930582873e7d9372ac0c8483ac700cb9"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Dec 28 00:53:50 2019 +0000"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Dec 28 02:25:26 2019 +0000"
      },
      "message": "Revert \"Add consistency CHECKs around ArtMethod fields.\"\n\nThis reverts commit 382df393c684c6a5f3856365177da715880d7f08.\n\nReason for revert: Fails for test BuzzBeepBlinkTest on x86\n\nBug: 146765723\nChange-Id: If86c07959969a831ab5b24681e70c85d3c59c1fd\nTest: TH\n"
    },
    {
      "commit": "066dd902930582873e7d9372ac0c8483ac700cb9",
      "tree": "f3a0b47419fea78001faea017ba04e630e82fd2e",
      "parents": [
        "fb537087516e34e92e3c030ef2f7fc8b233d7a47"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Dec 19 02:11:59 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Dec 20 01:17:37 2019 +0000"
      },
      "message": "Revert submission 1194828-revert-1191937-art_apex_available-DWXQGTKMAR\n\nReason for revert: relanding with fix\nReverted Changes:\nIc4119368c:Revert submission 1191937-art_apex_available\nIa084976bb:Revert submission 1191937-art_apex_available\nIada86226d:Revert submission 1191937-art_apex_available\nIc76735eac:Revert submission 1191937-art_apex_available\nI1eb30e355:Revert submission 1191937-art_apex_available\nIcaf95d260:Revert submission 1191937-art_apex_available\nIe8bace4be:Revert submission 1191937-art_apex_available\nI8961702cf:Revert submission 1191937-art_apex_available\nI39316f9ef:Revert submission 1191937-art_apex_available\nI522a7e83b:Revert submission 1191937-art_apex_available\nI8b9424976:Revert submission 1191937-art_apex_available\nI48b998629:Revert submission 1191937-art_apex_available\n\nChange-Id: I7a101d39ff63c153675e4e741f9de1a15a778d33\n"
    },
    {
      "commit": "fb537087516e34e92e3c030ef2f7fc8b233d7a47",
      "tree": "f6663f1ee276c23e359acb3fa40904e5cddaa960",
      "parents": [
        "80599a28d1c865de7644a87111f49ee3b30f7c41"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 10 14:38:34 2019 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 19 18:05:52 2019 +0000"
      },
      "message": "Remove class-hierarchy restriction from structural redefinition\n\nPreviously we restricted structural redefinition such that 2 or more\nclasses could not be redefined at the same time if one is a superclass\nof the other and the superclass was undergoing structural\nredefinition. This was done to simplify the creation of new objects.\nThis restriction is now removed by having the superclass take over the\ncreation of new instances for any subclasses, even if they are\nredefined too.\n\nTest: ./test.py --host\nBug: 134162467\nChange-Id: I8ae76e3b1fd17c1cf2a9993d7b82ed21a61503ef\n"
    },
    {
      "commit": "80599a28d1c865de7644a87111f49ee3b30f7c41",
      "tree": "e56dcf999630a752cd955a06c7f4c00b7add290b",
      "parents": [
        "1e88f980a85056165312331746862dc48186bc54"
      ],
      "author": {
        "name": "Joseph Murphy",
        "email": "murj@google.com",
        "time": "Thu Dec 19 01:06:54 2019 +0000"
      },
      "committer": {
        "name": "Joseph Murphy",
        "email": "murj@google.com",
        "time": "Thu Dec 19 01:06:54 2019 +0000"
      },
      "message": "Revert submission 1191937-art_apex_available\n\nOriginal Commit Message:\n\"\"\"\nRename modules that are APEX-only\n\nThe renamed modules are only available for APEXes, but not for the\nplatform. Use the \u003cmodule_name\u003e.\u003capex_name\u003e syntax to correctly install\nthe APEX variant of the modules.\n\"\"\"\n\nReason for revert: Build Cop - Breaks about 15 AOSP targets, with high confidence due to these changes being the only non-robot changes in those builds.\n\nReverted Changes:\nI190ce2d10:Use apex_available property\nI990e0a67e:Use apex_available property\nI0d1295683:Revert \"Avoid duplicated classes for boot dex jars...\nI5fb725403:Find the jar libraries in APEX from the correct pa...\nI322b1efcc:Rename modules that are APEX-only\nIfa2bd0f8f:Use apex_available property\nIac6533177:Use apex_available property\nIe999602c6:Use apex_available property\nI2a3d73397:Use apex_available property\nIc91bcbb9a:Use apex_available property\nIa6c324eed:Use apex_available property\nI964d0125c:Use apex_available property\n\nChange-Id: I1eb30e355cfce316b94cde0dd176002af8d222bb\n"
    },
    {
      "commit": "1e88f980a85056165312331746862dc48186bc54",
      "tree": "0cbeeaf951d6bd637a46f4f51faf80587f3ecc2b",
      "parents": [
        "c9af14e93f6a2691bf8231752d8d7c3e41b14c76"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Mon Dec 02 13:44:06 2019 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Dec 19 00:21:38 2019 +0000"
      },
      "message": "Use apex_available property\n\nUse apex_available property to prevent modules that are only for the ART\napex from being used outside of the APEX.\n\nThis change also fixes the reference to\n$(TARGET_OUT_SHARED_LIBRARIES)/$(lib).so to $(lib).com.android.art.debug\nphony module since the former is never installed to the system partition\ndue to their \u0027apex_available\u0027 settings.\n\nBug: 128708192\nBug: 133140750\nTest: m\nChange-Id: I990e0a67e066d9b1dc221748422a2f44449258da\n"
    },
    {
      "commit": "c9af14e93f6a2691bf8231752d8d7c3e41b14c76",
      "tree": "e56dcf999630a752cd955a06c7f4c00b7add290b",
      "parents": [
        "80777ed308b965175223455d738c890618a008b5"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Dec 12 09:51:38 2019 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Dec 18 23:00:11 2019 +0000"
      },
      "message": "Add comment \u0026 refactor check for Obsolete class in FindFieldFromCode\n\nAdd a comment explaining why we need a check for a class not being an\nobsolete class in FindFieldFromCode. It is needed since if we\nstructurally redefine a class that is in the middle of running its\n\u003cclinit\u003e or \u003cinit\u003e function the classes final fields will be set from\na function with the obsolete class as its declaring-class.\n\nAlso refactor the code a bit to put this logic in ArtField.\n\nTest: None\nChange-Id: I9ebb0c89568b9d8e5a60d44c982584b174370eef\n"
    },
    {
      "commit": "80777ed308b965175223455d738c890618a008b5",
      "tree": "ba8f6f8575f2a2a9d4157db7678328f4572d2458",
      "parents": [
        "c4cc618ad864c1f943daaef26914463d92d46ca0"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 17 17:07:33 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Dec 18 20:05:06 2019 +0000"
      },
      "message": "Revert^2 \"Make sure all runtime threads are in the System thread group.\"\n\nThis reverts commit 9ca8b2bf46978e3a5698f8a27b48aa7eff3514df.\n\nThe test 2005 exposed an ABA race which could cause the test to\nsometimes fail with CHECK failures or GC corruption.\n\nReason for revert: Fixed issue causing ABA race in PreObjectAlloc with\n                   test.\nTest: ./test.py --host --debug-gc\nBug: 146178357\n\nChange-Id: If265f765e0c1e692755904b4c40bbc718d98f065\n"
    },
    {
      "commit": "c4cc618ad864c1f943daaef26914463d92d46ca0",
      "tree": "c711601c3fa8c22086aa00ee812b3526b52fc77a",
      "parents": [
        "d7651b107688bdbee908ea927e054c5796150a67"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 18 16:59:22 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 18 20:00:47 2019 +0000"
      },
      "message": "Handle nterp in IsForcedInterpreterNeededForUpcallImpl.\n\nNterp is an interpreter but can have exit stubs.\n\nTest: 1916-get-set-current-frame\nBug: 112676029\nChange-Id: Ia6f175e0badc572c2f4a03cff99f70bf6649a535\n"
    },
    {
      "commit": "d7651b107688bdbee908ea927e054c5796150a67",
      "tree": "02f9a75b8949448e60ef71a3ef4ac6f09c1c776d",
      "parents": [
        "7ba68ffa031040fe91a923278910297ecf17edbe"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 18 14:57:30 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 18 20:00:28 2019 +0000"
      },
      "message": "Fix StackVisitor::GetVReg for Nterp.\n\nIf the required type is reference, we should look at the reference\narray.\n\nTest: 686-get-this\nBug: 112676029\nChange-Id: Iee786723f67c576878d2f5d56f96694b75699cd1\n"
    },
    {
      "commit": "7ba68ffa031040fe91a923278910297ecf17edbe",
      "tree": "b8c528ef9824188a18f55eafae68de7f114d8d04",
      "parents": [
        "7a6b966d348ee780922e04a8304d3dcc9e297517"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 17 16:15:35 2019 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Dec 18 18:32:05 2019 +0000"
      },
      "message": "Fix ABA bug with PreObjectAlloc event being missed\n\nWe prevent the PreObjectAlloc event from ever being disabled after\nbeing activated for allocation pausing the first time. This is to\nprevent an instance of the ABA problem where a thread can miss the\nfact that the size of the object it\u0027s allocating has changed if it was\nsuspended within the allocation path during the redefinition.\n\nWe need to make sure that every thread gets a chance to see the\nPreObjectAlloc event at least once or else it could miss the fact that\nthe object its allocating had its size changed.\n\nConsider the following 2 threads. T1 is allocating an object of class\nK. It is suspended (by user code) somewhere in the\nAllocObjectWithAllocator function, perhaps while doing a GC to attempt\nto clear space. With that thread suspended on thread T2 we decide to\nstructurally redefine \u0027K\u0027, changing its size. To do this we insert\nthis PreObjectAlloc event to check and update the size of the class\nbeing allocated. This is done successfully. Now imagine if T2 removed\nthe listener event then T1 subsequently resumes. T1 would see there is\nno PreObjectAlloc event and so allocate using the old object size.\nThis leads to it not allocating enough. To prevent this we simply\nforce every allocation after our first pause to go through the\nPreObjectAlloc event.\n\nTest: setup runit.sh to run test 2005.\n      ./art/tools/parallel_run.py -j80 --out art/out.txt ./art/runit.sh\nTest: ./test.py --host\nBug: 146436130\n\nChange-Id: I7cdc1d133a7cbba7784b906b587e565072a453b2\n"
    },
    {
      "commit": "7a6b966d348ee780922e04a8304d3dcc9e297517",
      "tree": "d2267f6e09c0f1d92dbf527eeb499a37044e9be6",
      "parents": [
        "96cbde8221731ac10bf6811ed4c415bbea45656b"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 17 16:45:49 2019 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Dec 18 17:52:56 2019 +0000"
      },
      "message": "Fix reversed compare_exchange check.\n\nWe were incorrectly stopping a retry-loop when compare_exchange_strong\nreturned true instead of false. This could lead to races if multiple\nthreads tried to pause allocations simultaneously.\n\nTest: ./test.py --host\nBug: 146436130\nChange-Id: I46ab86010d24148d640af0c51a5268b3eef0d300\n"
    },
    {
      "commit": "96cbde8221731ac10bf6811ed4c415bbea45656b",
      "tree": "68d52d897e7035770d7d6b01047432e5ae688c69",
      "parents": [
        "219420ea349960863f35b01353356c10a3736e57"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 17 16:28:48 2019 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Dec 18 17:52:47 2019 +0000"
      },
      "message": "Fix alignment bug in PreObjectAlloc\n\nWe were incorrectly setting the byte-count to a potentially unaligned\nvalue. This could cause CHECK failures in rare situations.\n\nTest: ./test.py --host\nBug: 146436130\nChange-Id: Ia8d650b085af875fc45e5408ed7b81f9ce69df1f\n"
    },
    {
      "commit": "219420ea349960863f35b01353356c10a3736e57",
      "tree": "1ccd6c5c8d7e47d61144d8a22a951d9860da9dce",
      "parents": [
        "acd7060266dac5dbbba1698df4ae086754e8a2bf"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Dec 05 10:20:26 2019 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Dec 18 17:11:27 2019 +0000"
      },
      "message": "Run-test: Support using --gdb and --gdbserver with --chroot\n\n--gdb and --gdbserver were unusable with --chroot due to --chroot\nchanging how dnslookup happened on device and differing symbol\ndirectory setup.\n\nThis CL does the basic setup so that gdb can connect to the remote\nprogram and (provided it is configured correctly) be used to debug it.\n\nIn order to get symbols one must set both the `solib-search-path` and\n`solib-absolute-prefix` appropriately. See GDB documentation for more\ninformation.\n\nTest: ./test/run-test --gdbserver --chroot /data/local/art-test-chroot --64 001-HelloWorld\nChange-Id: I598cb7654f5b8b669e1c658e25fb941c3d046666\n"
    },
    {
      "commit": "acd7060266dac5dbbba1698df4ae086754e8a2bf",
      "tree": "b624b4daf68361ecdb08fb113940da6ad4c2cae0",
      "parents": [
        "60d9775f9a56c6c4d18706528f0a31ac3707ea2c"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Thu Dec 05 17:46:25 2019 -0800"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed Dec 18 17:06:09 2019 +0000"
      },
      "message": "Update target footprint on process state switch\n\nTest: Greenday/MPTS test\nBug: 145161943\nChange-Id: I519fda7e15ca1acc68c5958ef67f1aae56c53662\n"
    },
    {
      "commit": "60d9775f9a56c6c4d18706528f0a31ac3707ea2c",
      "tree": "6b4031f59bf66206ac8c250bff7dc8ad958992c2",
      "parents": [
        "145f3c4aa4dc40b0682cac95a93163a79fb54f52"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 18 13:26:49 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 18 16:33:21 2019 +0000"
      },
      "message": "Prevent methods beint tested from being inline.\n\nOtherwise, we may end up never compiling them.\n\nTest: 566-polymorphic-inlining\nBug: 112676029\nChange-Id: Ic39058f55532a98cf689313f474c74fc2b7c1e3a\n"
    },
    {
      "commit": "145f3c4aa4dc40b0682cac95a93163a79fb54f52",
      "tree": "40435e85049c357d44f0b7853f5aaa5c2d683b2d",
      "parents": [
        "bd0ac86f6889e7540853df80b5b499a2151f2a97"
      ],
      "author": {
        "name": "Dan Zimmerman",
        "email": "danzimm@fb.com",
        "time": "Wed Dec 18 04:21:38 2019 -0800"
      },
      "committer": {
        "name": "Dan Zimmerman",
        "email": "danzimm@fb.com",
        "time": "Wed Dec 18 04:26:13 2019 -0800"
      },
      "message": "[art] Yama LSM isn\u0027t mandatory\n\nSome machines building debug builds don\u0027t have YAMA enabled (and it\ndoesn\u0027t seem to be mandatory for running/testing ART debug builds)\n\nTest: ./test/testrunner/testrunner.py -b --host -t 001-HelloWorld\n\nChange-Id: I1aa258380ddbf8c4f59ea22a9d901169ba448ef8\n"
    },
    {
      "commit": "bd0ac86f6889e7540853df80b5b499a2151f2a97",
      "tree": "e8e391ca1f04308f58607e5c97adae9a50326c81",
      "parents": [
        "00391824f4ee89f9fbed178a1ee32bc29fa77b3b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 18 08:16:35 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 18 08:22:03 2019 +0000"
      },
      "message": "Ensure Nterp is also supported in CanRuntimeUseNterp.\n\nBug: 112676029\nTest: test-art-host-gtest\nChange-Id: Ib48724d9c985a970ec023b99282a3b3a123afaec\n"
    },
    {
      "commit": "00391824f4ee89f9fbed178a1ee32bc29fa77b3b",
      "tree": "aea6bc5e49801c5b4816257ab16a97181ef0d911",
      "parents": [
        "001e5b33ba7065dde0b85450830b605733ae1685"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 10 10:17:23 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 18 06:50:39 2019 +0000"
      },
      "message": "Add an implementation of Nterp for x64.\n\nAnd enable it on x64 when runtime and ArtMethod requirements are met\n(see nterp.cc).\n\nTest: test.py\nBug: 112676029\nChange-Id: I772cd20a20fdc0ff99529df7495801d773091584\n"
    },
    {
      "commit": "001e5b33ba7065dde0b85450830b605733ae1685",
      "tree": "0123782401f1bceedf7227d16fa6ce6d20a97f64",
      "parents": [
        "5c0177215ee88a9372b883d06661e25a8f6105de"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 17 15:30:33 2019 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 17 16:36:42 2019 -0800"
      },
      "message": "Remove illegal PreObjectAlloc call\n\nWe were incorrectly calling PreObjectAlloc with\nRoles::uninterruptible_. Due to its location this generally won\u0027t\ncause any issues but the call is not allowed nor needed.\n\nTest: ./test.py --host\nBug: 146436130\nChange-Id: I9672e679f4683eb3151d149aa918ce7fcb482b69\n"
    },
    {
      "commit": "5c0177215ee88a9372b883d06661e25a8f6105de",
      "tree": "94beb530125654c1af9cd91ada6abc5d10bb6a7f",
      "parents": [
        "c99a2310f980bab0211799b47dcf191bc2bf0163"
      ],
      "author": {
        "name": "Luke Huang",
        "email": "huangluke@google.com",
        "time": "Tue Dec 17 10:54:26 2019 +0800"
      },
      "committer": {
        "name": "Luke Huang",
        "email": "huangluke@google.com",
        "time": "Tue Dec 17 15:57:03 2019 +0000"
      },
      "message": "Add public lib of Cronet apex mainline\n\nThis is a workaround since apex module library path is not\nsupported in jni\n\nBug: 139397529\nBug: 145474221\nTest: Build\nTest: manual test with Cronet\nTest: atest CtsJniTestCases\nTest: atest libnativeloader_test\nChange-Id: Ifd8aa85bd78e95131b2ce3eab0ad32c2bb19cee2\n"
    },
    {
      "commit": "c99a2310f980bab0211799b47dcf191bc2bf0163",
      "tree": "70dc2e574bcd35d7a5ac3b6dc156a1bf99fbc970",
      "parents": [
        "796aa2cfcde9c88fa0a3176899e25bab3468ebd2"
      ],
      "author": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Tue Dec 17 11:07:34 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Dec 17 12:36:49 2019 +0000"
      },
      "message": "Add timestamp to perfetto_hprof output\n\nChange-Id: I4e2172c5a4dcab6faa45a404d4b0cf5ac77160d3\n"
    },
    {
      "commit": "796aa2cfcde9c88fa0a3176899e25bab3468ebd2",
      "tree": "9f4be44ef08e5abbdcb16ed6e8d15459bb743222",
      "parents": [
        "57cacb720e6f995aa1a42df6e2e6470a9ec57261"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 17 10:20:05 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 17 11:31:30 2019 +0000"
      },
      "message": "[baseline] Check that the profiling info is not null.\n\nZygote cannot allocate profiling infos.\n\nTest: 689-zygote-jit-deopt\nChange-Id: I85e8b7f16b81ba4de435a5417dbb2588c34414b0\n"
    },
    {
      "commit": "57cacb720e6f995aa1a42df6e2e6470a9ec57261",
      "tree": "bb73a113c94bc397cd7c99a4c64e033bf29b9803",
      "parents": [
        "013d1ee96b928f3bda9031e94d4a69f827133ce6"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sun Dec 08 22:07:08 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 17 09:48:00 2019 +0000"
      },
      "message": "Refactor OSR related code to prepare for \"true\" OSR.\n\n- Make the compiler restore all callee-save registers.\n- Make the compiler return any value in a core register: this simplifies\n  the current stub, and will also avoid having to look at the return\n  type (and reading the shorty) when returning to an nterp frame.\n- Add OsrData and offsets of its members to be used by nterp.\n\nTest: test.py\nBug: 27094810\nChange-Id: Ifa4f4877ab8b1f0c6a96feccea30c909942eb2fa\n"
    },
    {
      "commit": "013d1ee96b928f3bda9031e94d4a69f827133ce6",
      "tree": "4e374c043330f123dc3888922b554fd1291349b4",
      "parents": [
        "9ca8b2bf46978e3a5698f8a27b48aa7eff3514df"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 04 16:18:15 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 17 09:43:08 2019 +0000"
      },
      "message": "Introduce the notion of an nterp frame.\n\nSee comments in nterp_helpers.cc. An nterp frame follows the\ncalling conventions and exception handling of the compiler. There are\nno ManagedStack transitions, and the compiler and interpreter can\njust call each other directly.\n\nFor the stack walker, an nterp frame looks like a compiled frame.\n\nThis CL introduces an nterp frame, another CL will contain an\nimplementation for x64.\n\nBug: 119800099\nTest: test.py\nChange-Id: Ie9b691f58908b7f283b4cd63b84b651526155d27\n"
    },
    {
      "commit": "9ca8b2bf46978e3a5698f8a27b48aa7eff3514df",
      "tree": "4cca6a368f6adaee51360c819156ed4cd2e37e31",
      "parents": [
        "d03f8e63e6167af9148bc2ce374fd579e9a16202"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 17 08:36:45 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 17 08:37:33 2019 +0000"
      },
      "message": "Revert \"Make sure all runtime threads are in the System thread group.\"\n\nThis reverts commit 0e01c8d3f3c2d7cc4ac2cf5cf01ae913a4c6181e.\n\nBug: 146178357\nReason for revert: Breaks on debug-gc\n\nChange-Id: I2a305a271ef50263c2a722114f686a478d931c22\n"
    },
    {
      "commit": "d03f8e63e6167af9148bc2ce374fd579e9a16202",
      "tree": "41ec26974d148b569566c9069806b548e5ce8c26",
      "parents": [
        "0e01c8d3f3c2d7cc4ac2cf5cf01ae913a4c6181e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 13 11:51:58 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 17 07:25:50 2019 +0000"
      },
      "message": "Add a String.init range call.\n\nTest that ART can compile / interpret a range call to String.init.\n\nTest: 723-string-init-range\nChange-Id: If0f9e68978aed91e8e5a9b6a135489cc7bd72120\n"
    },
    {
      "commit": "0e01c8d3f3c2d7cc4ac2cf5cf01ae913a4c6181e",
      "tree": "81d5237a7aed99844527163d4739a64a60a1f96d",
      "parents": [
        "daad67f72f1d26fdb759326e504d540eab1e1392"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Dec 13 14:26:09 2019 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Dec 17 03:25:23 2019 +0000"
      },
      "message": "Make sure all runtime threads are in the System thread group.\n\nWe want to be sure that one can suspend every thread in the \u0027main\u0027\nThreadGroup without affecting the ability of the runtime to perform\nnormal actions. Previously the jit thread-pool created threads in the\n\u0027main\u0027 thread group. Since some debugger actions can wait until all\njit threads are in a known good state, pausing all threads in the main\nthread-group can cause deadlocks.  To fix this we make the ThreadPool\ncreate all threads in the system thread-group.\n\nTo test this we perform structural redefinition with all threads\nexcept the main one suspended. Previously this would deadlock if run\nwith --jit, as we will pause the jit before performing redefinition.\n\nTest: ./test.py --host --jit\nTest: ./test.py --host\nBug: 146178357\nChange-Id: Ifcb0f29613d2fc22ca7913d4868a1e425b0bee5b\n"
    },
    {
      "commit": "daad67f72f1d26fdb759326e504d540eab1e1392",
      "tree": "664a8f08858c2386550b9aa390ae9d21c1276cec",
      "parents": [
        "0cc40277ffb5f59eac672d844723920ad5f12d85"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Dec 16 13:01:46 2019 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Dec 17 02:46:56 2019 +0000"
      },
      "message": "Fix typo FieldNameAndSignature vs MethodNameAndSignature.\n\nWe incorrectly used a FieldNameAndSignature object in a logging\nmessage instead of a MethodNameAndSignature object. This led to a\nconfusing error message since it would print an unrelated field\ninstead of the problematic method.\n\nTest: ./test.py --host\nBug: 146229883\nBug: 145311370\nChange-Id: I862d18bc23d1a3220dea8b2cc1a349a20bffb3c1\n"
    },
    {
      "commit": "0cc40277ffb5f59eac672d844723920ad5f12d85",
      "tree": "a5f0e03a4984052de4efea2e7b8d044f5ad6ca08",
      "parents": [
        "085f7408de57fedac4ec95d5b5e8b4fe809dbeba"
      ],
      "author": {
        "name": "Justin Yun",
        "email": "justinyun@google.com",
        "time": "Mon Dec 16 16:47:40 2019 +0900"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Dec 17 01:40:59 2019 +0000"
      },
      "message": "Read system_ext partition for partner defined public libraries.\n\nLet partners define system libraries in system_ext for their apps.\nThey can list the libraries in\n/system_ext/etc/public.libraries-\u003ccompanyname\u003e.txt for their apps to\nuse.\n\nBug: 134909174\nBug: 134359158\nTest: build and boot\nChange-Id: I4edc6c19c4e23e2fec2d98aca7a1e4fd64fd5f2e\n"
    },
    {
      "commit": "085f7408de57fedac4ec95d5b5e8b4fe809dbeba",
      "tree": "108393c6fc6d2fa0ed27f6b299b993889a43fe40",
      "parents": [
        "0d38e8587c014e600bc6ee916aa15912c0ef190d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 16 16:30:48 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 16 17:53:01 2019 +0000"
      },
      "message": "Re-arrange code to avoid recursive locking of the JIT lock.\n\nCreating a profiling info requires the lock, so don\u0027t hold it before\ncalling ProfilingInfo::Create.\n\nTest: test.py\nChange-Id: Ib217052c09274665cbfa7572540ee391858dd342\n"
    },
    {
      "commit": "0d38e8587c014e600bc6ee916aa15912c0ef190d",
      "tree": "45665cedc42762fe6134ad869e5e9329d1f90495",
      "parents": [
        "a697b477705d52983611ef76e0f74ea41f354e61"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Dec 11 09:37:19 2019 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Dec 16 16:59:31 2019 +0000"
      },
      "message": "Keep the debug_frame for some arm32 art libs.\n\nFor these libs:\n- libart.so\n- libartbase.so\n- libdexfile.so\n- libprofile.so\n\nNewer clangs have become much better at optimizing code, and the\narm exidx unwind information is insufficient to properly unwind. Do not\nremove the debug_frame when stripping. It is not that big in these\nlibraries, and it only adds about 350,000 bytes in total.\n\nBug: 145790995\n\nTest: Ran this with new clang: art/test/run-test --always-clean  --chroot /data/local/art-test-chroot -O --prebuild --compact-dex-level fast --interpreter --no-relocate --runtime-option -Xcheck:jni  137-cfi\nTest: Verified that the shared libraries built for arm64, x86, x86_64 versions\nTest: do not contain a .debug_frame but do contain symbol tables.\nChange-Id: I67c39333dc5fb3c7cb84324852682225ba5ad33e\n"
    },
    {
      "commit": "a697b477705d52983611ef76e0f74ea41f354e61",
      "tree": "56b6193e88aa44c78939a223bce1379be3eb267d",
      "parents": [
        "0bbe28c165f7ec2976b3450adfb38e25e922fbf7"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Dec 12 00:24:35 2019 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Dec 16 13:37:58 2019 +0000"
      },
      "message": "Revert^2 \"Remove unused emulator variable\"\n\nThis reverts commit be416b3155a907d0c3855007795f627a4959e8cc.\n\nTest: Compare output using --dry-run with arguments from buildbots\nChange-Id: Idf714390c0dab598abca523b9f15a5773448bf28\n"
    },
    {
      "commit": "0bbe28c165f7ec2976b3450adfb38e25e922fbf7",
      "tree": "a04135e14edaf08b4cd6a2cb4b8da26676c5aca6",
      "parents": [
        "656dc824edd8064b003d9f2c2fddd48bb9226c80"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Dec 12 00:23:09 2019 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Dec 16 13:37:58 2019 +0000"
      },
      "message": "Revert^2 \"Add jvm mode to run-libcore-tests.sh\"\n\nThis reverts commit 58a7d6c890e5e8b9de55c49a5b23cc518ddaeebe.\n\nTest: art/tools/run-libcore-tests.sh --mode\u003djvm -- libcore.java.lang.invoke\nTest: Compare output using --dry-run with arguments from buildbots.\nChange-Id: Ic051d4c4467c59f5bdc79a6af9923993e7dbaf49\n"
    },
    {
      "commit": "656dc824edd8064b003d9f2c2fddd48bb9226c80",
      "tree": "2ebcd89691f8041f662af4520c204b4d70225f4c",
      "parents": [
        "af6a15cebd233c18ccd2f5e72ed76d273320f667"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Dec 12 00:06:36 2019 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Dec 16 13:37:58 2019 +0000"
      },
      "message": "Revert^2 \"Enable run-libcore-tests.sh to test specific packages\"\n\nThis reverts commit 2a05a9bcd2b4f30d12a925dc96961c3e78d886e2.\n\nTest: art/tools/run-libcore-tests.sh --mode\u003dhost --variant\u003dX64 -- libcore.java.lang.invoke\n\nChange-Id: I05a486db0a33cf89e97da4a5343264e2df561e10\n"
    },
    {
      "commit": "af6a15cebd233c18ccd2f5e72ed76d273320f667",
      "tree": "1b0a2de836c3bcfbcec0ff47eedeb9d1944d318d",
      "parents": [
        "14f30025ca6be19a1754b88b294f1913a108c5f1"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Dec 11 21:48:58 2019 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Dec 16 13:37:58 2019 +0000"
      },
      "message": "Revert^2 \"Add usage to run-libcore-tests.sh\"\n\nThis reverts commit e02ebc05f4d31885b659b1c96b986eb26d324172.\n\n- Fixes default expectations.\n- Fixes appending arbitrary arguments.\n- Preserves order of arguments to simplify checking.\n\nTest: Compare output using --dry-run with arguments from buildbots.\nTest: run-libcore-tests.sh --dry-run --mode\u003ddevice --variant\u003dX32\nTest: run-libcore-tests.sh --dry-run --mode\u003ddevice --variant\u003dX32 --debug\nTest: run-libcore-tests.sh --dry-run --mode\u003ddevice --variant\u003dX32 --vm-arg -Xgc:gcstress\nTest: run-libcore-tests.sh --dry-run --mode\u003ddevice --variant\u003dX64\nTest: run-libcore-tests.sh --dry-run --mode\u003ddevice --variant\u003dX64 --debug\nTest: run-libcore-tests.sh --dry-run --mode\u003ddevice --variant\u003dX64 --vm-arg -Xgc:gcstress\nTest: run-libcore-tests.sh --dry-run --mode\u003dhost --variant\u003dX32\nTest: run-libcore-tests.sh --dry-run --mode\u003dhost --variant\u003dX32 --debug\nTest: run-libcore-tests.sh --dry-run --mode\u003dhost --variant\u003dX32 --debug --vm-arg -Xgc:gcstress\nTest: run-libcore-tests.sh --dry-run --mode\u003dhost --variant\u003dX64\nTest: run-libcore-tests.sh --dry-run --mode\u003dhost --variant\u003dX64 --debug\n\nChange-Id: I4a968f43c8fdc2f3e9b4ba9857e212a881d4f54d\n"
    },
    {
      "commit": "14f30025ca6be19a1754b88b294f1913a108c5f1",
      "tree": "3694808266ff37592430c703d0a020464687d856",
      "parents": [
        "6b98a403ee48e6f40c6a398e0d3b4d9648c7a0cf"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Dec 11 18:54:51 2019 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Dec 16 13:37:58 2019 +0000"
      },
      "message": "Add --dry-run flag to run-libcore-tests.sh\n\nFlag prints vogar command that would be invoked otherwise.\n\nTest: art/tools/run-libcore-tests.sh --host --dry-run\nTest: art/tools/run-libcore-tests.sh --host\nChange-Id: Ie6dba8e8e12c0d3668ac430115c83373f7464720\n"
    },
    {
      "commit": "6b98a403ee48e6f40c6a398e0d3b4d9648c7a0cf",
      "tree": "6a2bfed7e2ba8e22fb3a1cb69aceec3fc80968f5",
      "parents": [
        "b2e6d0fc6f4a7666627ab57e0f281036596d3c7f"
      ],
      "author": {
        "name": "Kiyoung Kim",
        "email": "kiyoungkim@google.com",
        "time": "Mon Dec 16 20:19:58 2019 +0900"
      },
      "committer": {
        "name": "Kiyoung Kim",
        "email": "kiyoungkim@google.com",
        "time": "Mon Dec 16 20:19:58 2019 +0900"
      },
      "message": "Update linker config location\n\nLinker config location has been changed to /linkerconfig recently to\navoid a chroot issue from art test. To fit this in current test, I just\nupdated the path from /dev/linkerconfig to /linkerconfig to make ART\ntest to work with latest code.\n\nBug: 143458513\nTest: m -j passed\nChange-Id: I5326959ce98efefbbb4cdb9308f48f21b465fcb9\n"
    },
    {
      "commit": "b2e6d0fc6f4a7666627ab57e0f281036596d3c7f",
      "tree": "0917e7e98fe735c0377ff7a9ba06818ca97bff77",
      "parents": [
        "4847a071380288033e128986947d445e97827e5e"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Dec 12 17:15:23 2019 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Dec 13 23:15:02 2019 +0000"
      },
      "message": "Fix incorrect DCHECK\n\nWe were incorrectly asserting that the disable_pop_frame_depth field\nalways increased instead of that it never decreased. This meant that\nwe would get DCHECK failures if one caused a recursive ClassPrepare or\nClassLoad event to trigger.\n\nTest: ./test.py --host\nBug: 146170757\nChange-Id: I980a8511033fa88f3fccebb7e654336133cf33bd\n"
    },
    {
      "commit": "4847a071380288033e128986947d445e97827e5e",
      "tree": "6dd09fa436f1be772713f39926701ad266c337e3",
      "parents": [
        "92e99406d1704a14a1969e2909986f590e980010"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Dec 12 16:13:47 2019 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Dec 13 23:15:02 2019 +0000"
      },
      "message": "Fix issue with observing invalid thread state.\n\nThreads have two references to their java.lang.Thread peers,\n\u0027tlsPtr_.opeer\u0027 and \u0027tlsPtr_.jpeer\u0027. The opeer is a direct\nmirror::Object* which is used while the thread is running. The jpeer\nis a global jobject used during early thread startup. As part of\nthread startup the new thread will delete and clear the \u0027jpeer\u0027 and\nonly use \u0027opeer\u0027 from then on. A minor (DCHECK\u0027d) consistency\nguarantee is that only one of these fields can be observed to be set\nat a time. Using JNI function table replacement it is possible to\nexecute JNI functions just before the DeleteGlobalRef of the jpeer. If\none calls other thread functions (such as through GetThreadInfo) these\nfunctions may DCHECK that jpeer is cleared. This would fail since\njpeer wasn\u0027t cleared until after the DeleteGlobalRef returns.\n\nThis fixes the bug by clearing the \u0027jpeer\u0027 field before calling\nDeleteGlobalRef.\n\nTest: ./test.py --host\nBug: 146170834\nChange-Id: I7e7941912a69fad9e75bbb55643eee0fa5d8a47d\n"
    },
    {
      "commit": "92e99406d1704a14a1969e2909986f590e980010",
      "tree": "04591869387a3544414a4af5d8749e3d84bf94bf",
      "parents": [
        "819b3626ad9690611db5113c4509cac1020163bf"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Dec 13 09:28:40 2019 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Dec 13 18:55:35 2019 +0000"
      },
      "message": "Add test 2000 to redefine-stress skips\n\nThe test uses invoke-polymorphic instruction which slicer doesn\u0027t know\nhow to decode.\n\nTest: ./test.py --host --redefine-stress -t 2000\nBug: 37272822\nBug: 146206656\nChange-Id: Id78f6baa03f90480fcdf554408d63e48aa5fd326\n"
    },
    {
      "commit": "819b3626ad9690611db5113c4509cac1020163bf",
      "tree": "1c246478713185b462f0400aff5fd778b66073a0",
      "parents": [
        "b89a92e6fe03c5ef6f373d1138ff20499967fb74"
      ],
      "author": {
        "name": "Ulya Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Thu Dec 12 17:59:10 2019 +0000"
      },
      "committer": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Fri Dec 13 14:28:23 2019 +0000"
      },
      "message": "Use correct pointer size for stack unwinding.\n\nThis fixes a failed DCHECK_ALIGNED followed by a SIGSEGV when\nbuilding the 32-bit framework boot image extension with jacoco\ninstrumentation (the coverage build). The crash did not occur\nfor 64-bit image because kRuntimePointerSize was 64 in both cases,\nwhich happened to be correct for 64-bit image, but not 32-bit one.\n\nThe failed alignment check was caused by assuming incorrect\npointer size in StackWalk when handling exception in dex2oatd.\n\nThe crash can only be reproduced under the following conditions:\n  - boot image extension is used for the framework image\n  - this is a coverage build ( EMMA_INSTRUMENT_FRAMEWORK\u003dtrue)\n  - jacocoagent is added to the primary boot image\n\nThe fix does not resolve the boot problem (under the above conditions\nthe phone still fails boot due to other errors). The fix only removes\nthe build-time crash on 32-bit framework boot image extension.\n\nTest: Manually sync the repos to the state of art that includes\n    boot image extension change (assuming AOSP):\n    I5e417cd2588ae7b88e7b6abf7ae54268d2cce5f8, then:\n\n    $ lunch aosp_walleye-userdebug\n    $ build/soong/soong_ui.bash \\\n        --make-mode \\\n        SKIP_ABI_CHECKS\u003dtrue \\\n        TARGET_PRODUCT\u003daosp_walleye \\\n        TARGET_BUILD_VARIANT\u003duserdebug \\\n        EMMA_INSTRUMENT\u003dtrue \\\n        EMMA_INSTRUMENT_FRAMEWORK\u003dtrue \\\n        NATIVE_COVERAGE\u003dtrue \\\n        SKIP_BOOT_JARS_CHECK\u003dtrue \\\n        droid\n\n    Maybe not all the variables are needed, I used the build command\n    from the failed coverage build.\n\n    Before the patch, the build would fail with a dex2oat crash on\n    out/soong/walleye/dex_bootjars/system/framework/arm/boot.art\n    target. After the patch, the build finishes successfully.\n\nBug: 145749668\n\nChange-Id: Ic3f5459d20b9b30534d60aa2e96a440209b08c50\n"
    },
    {
      "commit": "b89a92e6fe03c5ef6f373d1138ff20499967fb74",
      "tree": "bba9602f9131903fe958f1d884b1a09839e15976",
      "parents": [
        "52506e2a29b172a4e055ea545800e48b2ca508d5"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Dec 13 09:08:25 2019 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Dec 13 10:24:08 2019 +0000"
      },
      "message": "Generalize fugu failure handling in run-libcore-tests.sh\n\nRename libcore_get_no_random_failures.txt to libcore_fugu_failures.txt\nand add failures for memfd_create.\n\nThe command-line flag --no-getrandom continues to choose fugu failures\nas fixing this requires coordination with buildbot scripts in\nchrome-infra.\n\nBug: 146113753\nTest: art/tools/run-libcore-tests.sh --mode\u003ddevice --no-getrandom --verbose\n\nChange-Id: I68999ad25e16f65309e5644256d4d12da8288ab5\n"
    },
    {
      "commit": "52506e2a29b172a4e055ea545800e48b2ca508d5",
      "tree": "23599ea08495d98f6fdc6c9bf8e39719d3ac8632",
      "parents": [
        "90ceea36a9c6ea123a5e1ad6b001230890406e2f"
      ],
      "author": {
        "name": "Evgeny Astigeevich",
        "email": "evgeny.astigeevich@linaro.org",
        "time": "Wed Dec 04 15:59:37 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 13 07:12:02 2019 +0000"
      },
      "message": "Add ImprovedOptimizingUnitTest::CreateParameters for subclasses\n\nSubclasses of ImprovedOptimizingUnitTest might need a different number\nof graph parameters. Currently only a parameter is defined and created.\nThis CL adds ImprovedOptimizingUnitTest::CreateParameters which\nsubclasses can override to create as many parameters as they need. All\ncreated parameters are added to the entry basic block. The default\nimplementation of ImprovedOptimizingUnitTest::CreateParameters does\nnothing.\n\nTest: run-gtests.sh\nChange-Id: I2c6a58232e36d3562fc2bc0cdc289dd739094a73\n"
    },
    {
      "commit": "90ceea36a9c6ea123a5e1ad6b001230890406e2f",
      "tree": "40804c30e2c7e3695ab1df6365e7971b88cc18b2",
      "parents": [
        "3ea6627a74d517a2bd1968111c2d64c2a8227aa2"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Dec 12 14:01:06 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 12 17:28:30 2019 +0000"
      },
      "message": "Disable memfd_create tests on ART test devices.\n\nRequires kernel version \u003e\u003d 3.17.\n\nBug: 146113753\nTest: art/test/run-libcore-tests.sh --mode\u003dhost\n\nChange-Id: Ic2ffcd6457b5ad5f2b958b54fdaa4257defea22b\n"
    },
    {
      "commit": "3ea6627a74d517a2bd1968111c2d64c2a8227aa2",
      "tree": "7e0e9ce90def426c3a2a537731a6de6decd1f04a",
      "parents": [
        "589bf901810eb0259107ae3aa71c7d0d89ad9626"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 12 14:28:50 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 12 14:49:47 2019 +0000"
      },
      "message": "Merge the single-image test to TestExtension.\n\nThis avoids a potential failure where the required address\nrange could be allocated by gtest harness between tests.\n\nThis also reduces the number of \"head\" compilations by one,\nreducing the time taken by ~6s on host; device not measured.\n\nTest: m test-art-host-gtest-dex2oat_image_test\nBug: 146108614\nChange-Id: I54774a877314964d4281412092d46d48e8da236b\n"
    },
    {
      "commit": "589bf901810eb0259107ae3aa71c7d0d89ad9626",
      "tree": "4622def454ceab96640ebc2741fd15045caef263",
      "parents": [
        "fab7208934673a026ecca1799a0ec5a892b38210"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 12 13:19:18 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 12 14:48:10 2019 +0000"
      },
      "message": "Fix clean-oat-host.\n\nOnly clean normal files, avoiding ART module folders\n    com.android.art\nthat end with the same \".art\" suffix as image files.\n\nTest: m \u0026\u0026 m clean-oat-host\nChange-Id: I3ee334cc626fa090a639938c4576f781f458d1fa\n"
    },
    {
      "commit": "fab7208934673a026ecca1799a0ec5a892b38210",
      "tree": "fc27d288c53bb359d0f02791177e3ef3951694f2",
      "parents": [
        "270db1ce48377e3d9ca0c3dcec834ac807ca885b"
      ],
      "author": {
        "name": "atrost",
        "email": "atrost@google.com",
        "time": "Fri Dec 06 13:37:36 2019 +0000"
      },
      "committer": {
        "name": "Anna Trostanetski",
        "email": "atrost@google.com",
        "time": "Thu Dec 12 12:15:16 2019 +0000"
      },
      "message": "Pipe disabled compat changes to runtime through zygote.\n\nTest: device boots\nTest: Logging results of isChangeEnabled are matching state and respect adb overrides.\nBug: 145743810\nChange-Id: I03da331d3d36876fb646c2962e200aeecb5af84b\nMerged-In: I03da331d3d36876fb646c2962e200aeecb5af84b\n"
    },
    {
      "commit": "270db1ce48377e3d9ca0c3dcec834ac807ca885b",
      "tree": "ffc553c6ff1ad37bdc3caca01ad686fa41ca0688",
      "parents": [
        "42b9c19772542457701d5efea26aae4449dec8c7"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 03 12:20:01 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Dec 11 18:46:44 2019 +0000"
      },
      "message": "Revert^4 \"Allow structural redefinition on non-final classes.\"\n\nThis reverts commit 664999a12d6fc8a8ef5c0519b12ec1e8a51bb085.\n\nFixed issues with GC and quickened instructions in parent CLs.\n\nReason for revert: Fixed issues with GC CHECK fail and device SEGVs.\n\nTest: ./test.py --host\nTest: ./test.py --target\nBug: 134162467\nBug: 144168550\nChange-Id: Ibacddaf45beb72184f97d53d5d048bd442578658\n"
    },
    {
      "commit": "42b9c19772542457701d5efea26aae4449dec8c7",
      "tree": "7cbb49181d980deb6335770eeabbb0ff1c4eb5b7",
      "parents": [
        "e02ebc05f4d31885b659b1c96b986eb26d324172"
      ],
      "author": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Wed Dec 11 11:13:02 2019 +0000"
      },
      "committer": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Wed Dec 11 18:28:56 2019 +0000"
      },
      "message": "Revert \"Use framework boot image extension.\"\n\nThe revert is partial: we keep permitted paths to the ART apex\nin the linker config.\n\nThis reverts commit 5c8cc64b5f1580faf510f27527e7e22987174963.\n\nReason for revert: breaks avd/avd_boot_health_check test\n  on cf_x86_phone-userdebug_coverage on branch rvc-release\n  (the device fails to boot).\n\nTest: m\nTest: aosp_walleye-userdebug boots\n\nBug: 145749668\n\nExempt-From-Owner-Approval: revert\n\nChange-Id: I47f3e05a2f6beed9b4c4e9675a7668fbaafc0474\n"
    },
    {
      "commit": "e02ebc05f4d31885b659b1c96b986eb26d324172",
      "tree": "8744c74cec9584915b2f53bf0108e523ed05471b",
      "parents": [
        "2a05a9bcd2b4f30d12a925dc96961c3e78d886e2"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Dec 11 17:26:12 2019 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Dec 11 17:26:12 2019 +0000"
      },
      "message": "Revert \"Add usage to run-libcore-tests.sh\"\n\nReason for revert: breaks ART buildbots.\n\nThis reverts commit 06e908361954fe843cb14a398e8c500bd70ae763.\n"
    },
    {
      "commit": "2a05a9bcd2b4f30d12a925dc96961c3e78d886e2",
      "tree": "7c34ce98628615447f0be7227862fab157450e8a",
      "parents": [
        "58a7d6c890e5e8b9de55c49a5b23cc518ddaeebe"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Dec 11 17:25:47 2019 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Dec 11 17:25:47 2019 +0000"
      },
      "message": "Revert \"Enable run-libcore-tests.sh to test specific packages\"\n\nReason for revert: Breaks ART buildbots.\n\nThis reverts commit 9a1e6aa3db81a01e94e86aef70d09a3877987766.\n"
    },
    {
      "commit": "58a7d6c890e5e8b9de55c49a5b23cc518ddaeebe",
      "tree": "34e5553b5d2c0c9e1f3943d9026abcfa83276f37",
      "parents": [
        "be416b3155a907d0c3855007795f627a4959e8cc"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Dec 11 17:24:42 2019 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Dec 11 17:24:42 2019 +0000"
      },
      "message": "Revert \"Add jvm mode to run-libcore-tests.sh\"\n\nReason for revert: Breaks ART buildbots.\n\nThis reverts commit 938ead39458cb766432932801d4c6ae25286ef87.\n"
    },
    {
      "commit": "be416b3155a907d0c3855007795f627a4959e8cc",
      "tree": "8ac30209b63a2cedcff499731bfd86d5d70d70c5",
      "parents": [
        "a2ba808180e2612f2670840ba327274752e80132"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Dec 11 17:12:37 2019 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Dec 11 17:12:37 2019 +0000"
      },
      "message": "Revert \"Remove unused emulator variable\"\n\nThis reverts commit 4f50139fcbd5ae11dd200f4fd69ea2ca80988733.\n\nReason for commit: Part of series that broke buildbot use.\n"
    },
    {
      "commit": "a2ba808180e2612f2670840ba327274752e80132",
      "tree": "175db5c419006e3c146d92ef278100233dd2a827",
      "parents": [
        "4a0ef9f92e24a4b4398958d6acb10add678b7130"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Dec 11 17:04:24 2019 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Dec 11 17:04:24 2019 +0000"
      },
      "message": "Revert \"Fix missing expectations in run-libcore-tests.sh\"\n\nThis reverts commit 4a0ef9f92e24a4b4398958d6acb10add678b7130.\n\nReason for revert: Fixes local host, but not ART buildbots.\n\nChange-Id: I1357344d085852c855b2be236e94e4ed84369c84\n"
    },
    {
      "commit": "4a0ef9f92e24a4b4398958d6acb10add678b7130",
      "tree": "09382144312f21d464ac2eb9b9949700f8fe10cb",
      "parents": [
        "d0036ac18efcd7774775d521ae11178933041b95"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Dec 11 10:06:29 2019 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Dec 11 10:33:02 2019 +0000"
      },
      "message": "Fix missing expectations in run-libcore-tests.sh\n\nTest: art/tools/run-libcore-tests.sh --mode\u003dhost -- libcore.libcore.net\nChange-Id: I2aacb7a67ab0e04ae8a55bd839ed16f4604c1423\n"
    },
    {
      "commit": "d0036ac18efcd7774775d521ae11178933041b95",
      "tree": "175db5c419006e3c146d92ef278100233dd2a827",
      "parents": [
        "69944683c33a316c9ed325ed686d9f81ad3665dc"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 21 11:47:12 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Dec 11 10:03:05 2019 +0000"
      },
      "message": "Single-image boot image extensions.\n\nAllow boot image extensions to be compiled into a single\nart/oat/vdex triplet for any number of input dex files.\nSupport argument --image-fd so that this can be done with\nfile descriptors. This is intended for creating a boot\nimage extension in memory when starting zygote.\n\nRemove the possibility to specify multiple oat or image\nfiles. It was unused and untested.\n\nTest: New test in dex2oat_image_test\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: I78e5410642a5df14c0891d87f27eefcb02156764\n"
    },
    {
      "commit": "69944683c33a316c9ed325ed686d9f81ad3665dc",
      "tree": "fbb5563f7ccd746ab54f98afc563267e608a5c3e",
      "parents": [
        "abd8f052512fa2bb404f1eb0a42ffe0e5d802b7e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 09 15:16:39 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Dec 11 09:54:53 2019 +0000"
      },
      "message": "Follow-up for \"Use provided dex filenames in oat file.\"\n\nAddress late comments for\n    https://android-review.googlesource.com/1180228 .\n\nTest: m test-art-host-gtest\nChange-Id: Ib242db89a630a70b46d603feadaa1a2f3840a02a\n"
    },
    {
      "commit": "abd8f052512fa2bb404f1eb0a42ffe0e5d802b7e",
      "tree": "28bec78b6866aae9713c9eb471680c7aa4fb746b",
      "parents": [
        "3bdb97798d9a00c498833e00b49927f62b9e7f90"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Dec 06 10:49:17 2019 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 10 22:51:35 2019 +0000"
      },
      "message": "Proactively dequicken on debuggable switch.\n\nPreviously we would generally not really consider dex2dex quickening\nwith debuggable processes. This could cause problems for structural\nredefinition since the -quick opcodes are incompatible with the types\nof changes structural redefinition allows. Furthermore this can cause\nsome unexpected behavior where (for example) check-casts might appear\nto pass even if debugger activity should cause it to fail.\n\nIn order to fix these issues we make the runtime more proactively\ndequicken dex-files when we start or switch to JAVA_DEBUGGABLE mode.\n\nTest: ./test.py --target --host\nTest: adb install -t ~/misc/Bandhook-Kotlin/app/build/outputs/apk/debug/app-debug.apk \u0026\u0026 adb shell monkey -p com.antonioleiva.bandhookkotlin -c android.intent.category.LAUNCHER 1\nBug: 134162467\nBug: 144168550\nChange-Id: I2673c91b72ae7048d2ff71a1cf68cf552d4e8004\n"
    },
    {
      "commit": "3bdb97798d9a00c498833e00b49927f62b9e7f90",
      "tree": "3f69833b5737420a76fef4252eb79f0cb531c129",
      "parents": [
        "4f50139fcbd5ae11dd200f4fd69ea2ca80988733"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Dec 10 11:31:53 2019 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Dec 10 22:41:53 2019 +0000"
      },
      "message": "Document no-strip flag\n\nTest: m\nChange-Id: I69a7e5c1d51089f01557428174779a68eb37ae7e\n"
    },
    {
      "commit": "4f50139fcbd5ae11dd200f4fd69ea2ca80988733",
      "tree": "8cf0b0fbc1b4eafb21f3298b6ea04f4cf9b521ec",
      "parents": [
        "938ead39458cb766432932801d4c6ae25286ef87"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Dec 10 09:29:17 2019 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Dec 10 21:26:14 2019 +0000"
      },
      "message": "Remove unused emulator variable\n\nTest: N/A\nChange-Id: I9ac085a388a3cba2804e3ffdc67b97f217859880\n"
    },
    {
      "commit": "938ead39458cb766432932801d4c6ae25286ef87",
      "tree": "ce1fac6f9cf8ef0a2a238eccdc7794f0bcd11278",
      "parents": [
        "9a1e6aa3db81a01e94e86aef70d09a3877987766"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Dec 10 13:01:40 2019 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Dec 10 21:26:14 2019 +0000"
      },
      "message": "Add jvm mode to run-libcore-tests.sh\n\nTest: art/tools/run-libcore-tests.sh --mode\u003djvm -- libcore.java.lang.invoke\nChange-Id: I998641b292d872ffb77e069d21b180e4bf12734a\n"
    },
    {
      "commit": "9a1e6aa3db81a01e94e86aef70d09a3877987766",
      "tree": "1235a2832aac1e11df8524eab2b397847b122bb8",
      "parents": [
        "06e908361954fe843cb14a398e8c500bd70ae763"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Dec 10 12:59:55 2019 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Dec 10 21:26:14 2019 +0000"
      },
      "message": "Enable run-libcore-tests.sh to test specific packages\n\nTest: art/tools/run-libcore-tests.sh --mode\u003dhost -- libcore.java.lang\nChange-Id: Iacb23abd4575b8c22fbc3119197bdda42a49e980\n"
    },
    {
      "commit": "06e908361954fe843cb14a398e8c500bd70ae763",
      "tree": "211560ad4b686714368d720e4e62e070be3cda0b",
      "parents": [
        "0fce03f02c6aa57eca9dbe83a7f107d548892f1d"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Dec 10 12:53:19 2019 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Dec 10 21:26:14 2019 +0000"
      },
      "message": "Add usage to run-libcore-tests.sh\n\nUpdate command-line parsing to add sanity checks to choice of mode and\nemit usage if an error is found or --help is specified as an argument.\n\nTest: art/tools/run-libcore-tests.sh --mode host\nChange-Id: I93d853fdfb299b65dc0e55be4a22d9a7f7a95d79\n"
    },
    {
      "commit": "0fce03f02c6aa57eca9dbe83a7f107d548892f1d",
      "tree": "a331bca640565c154faaa2960732a45b31d6c089",
      "parents": [
        "542e393976e4875e11b6e291191fbb77941bb524"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Dec 10 08:55:13 2019 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Dec 10 21:18:59 2019 +0000"
      },
      "message": "Add scoped trace to VisitDexCacheArrays\n\nDiagnose how expensive dex cache relocation is.\n\nBug: 116052292\nTest: manual\n\nChange-Id: I032b72de0db61932bc6e6c4da2a910ce9b2d1939\n"
    },
    {
      "commit": "542e393976e4875e11b6e291191fbb77941bb524",
      "tree": "7f125e5ba949934739606bed540fa0c66a9f8549",
      "parents": [
        "46845f6337f6036d9e09a4e84f099d768e9faba9"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Dec 09 19:54:18 2019 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Dec 10 18:15:12 2019 +0000"
      },
      "message": "Do not strip art libs when building for linux-bionic\n\nOtherwise we can\u0027t get any symbols out of crashes...\n\nTest: m\nBug: 144491400\nChange-Id: I7523a05b081ae776e7465a7e726f71e9fd2dc609\n"
    },
    {
      "commit": "46845f6337f6036d9e09a4e84f099d768e9faba9",
      "tree": "61bc5e0fe796940d92c1ddcafac3983ce2739b23",
      "parents": [
        "1707bae46ae11b131478d994d7371241960a8427"
      ],
      "author": {
        "name": "Søren Gjesse",
        "email": "sgjesse@google.com",
        "time": "Tue Dec 10 09:14:16 2019 +0100"
      },
      "committer": {
        "name": "Søren Gjesse",
        "email": "sgjesse@google.com",
        "time": "Tue Dec 10 15:00:21 2019 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Revert \"Remove reference to d8-compat-dx\"\"\"\"\n\nThis reverts commit 9561faf10d2e23f322da03743a30843296971fd0.\n\nTest: art/tools/buildbot-build.sh -j8 --host \u0026\u0026\n    art/tools/run-libcore-tests.sh \u0027--mode\u003dhost\u0027 \u0027--variant\u003dX64\u0027 --debug\nTest: art/test/testrunner/run_build_test_target.py -j80 art-test\n"
    },
    {
      "commit": "1707bae46ae11b131478d994d7371241960a8427",
      "tree": "9b4983b7cf0509660f8c1e36ce0a2938a3fa9f64",
      "parents": [
        "0e33d0e1599e2299d5f1dd6dbc6022fc3df8c53e"
      ],
      "author": {
        "name": "Artur Satayev",
        "email": "satayev@google.com",
        "time": "Tue Dec 10 12:00:02 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Dec 10 13:03:25 2019 +0000"
      },
      "message": "Support new UnsupportedAppUsage in class2greylist.\n\nThis is temporarily needed while we are migrating to the new annotation; the old two annotations will be shortly deleted.\n\nBug: 145132366\nTest: m \u0026\u0026 diff unsupportedappusage_index.csv\nChange-Id: I440f48aeccf0c7c3ae527370be76372334eff8db\n"
    },
    {
      "commit": "0e33d0e1599e2299d5f1dd6dbc6022fc3df8c53e",
      "tree": "716eb153f1a5129dcc507fc24f48ed1dd43b6cde",
      "parents": [
        "9bab2374d3bec7c9396be735f63ce2a1d606e254"
      ],
      "author": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Tue Dec 10 12:29:32 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 10 12:40:17 2019 +0000"
      },
      "message": "Disable memfd_create tests on ART host tests.\n\nmemfd_create only supports bionic-based platforms (see code below). I\nplan to investigate whether it _should_ support host, and whether\nit needs to be added to libcore\u0027s virtualdeviceknownfailures.txt,\nseparately but for now this CL fixes the urgent issue of the test\nbreaking the ART host tests.\n\nTest: Treehugger\nChange-Id: Ibbbcaffd7abd1784f9e5ee51393f1e83ba6b6291\n"
    },
    {
      "commit": "9bab2374d3bec7c9396be735f63ce2a1d606e254",
      "tree": "dfe5dca8f25f41b39f777f06acd85f605d03bf85",
      "parents": [
        "4ca2f4894ced84805c3c1b707cc1db790339a582"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Dec 09 08:52:33 2019 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Dec 09 20:40:18 2019 +0000"
      },
      "message": "Fix overrun bug in MapBootImageMethods\n\nIn the case an ArtMethod spanned across page_end, the logic would\ncorrupt the memory in the next section when calling\nSetEntryPointFromQuickCompiledCode. This cause errors in the boot\nimage profile saving since that\u0027s one of the only places where boot\nimage ArtMethods are unconditionally visited.\n\nBug: 145686711\nBug: 139883463\nTest: reboot the device 10+ times and validate there are no crashes for\nTest: boot image profiling configuration.\n\nChange-Id: I3a459d3b00b17f761ae703313f5c8f0c40ee3662\n"
    },
    {
      "commit": "4ca2f4894ced84805c3c1b707cc1db790339a582",
      "tree": "08ba80b376bf0513589514913b1ba6a63667b0aa",
      "parents": [
        "dd09f7114ccdbe4cefd76c37f2db8b899a991923"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Nov 25 16:07:22 2019 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Dec 09 17:53:44 2019 +0000"
      },
      "message": "Enable JNI ID auto swap on debuggable\n\nMake JNI-ids automatically switch to Indices on debuggable processes.\nThis allows one to make use of structural redefinition in these\nprocesses.\n\nTest: Manual\nTest: listextensions agent\nBug: 134162467\nChange-Id: I097c16f26c9a42ab523b4cb06cdb603f70bb38bb\n"
    },
    {
      "commit": "dd09f7114ccdbe4cefd76c37f2db8b899a991923",
      "tree": "64075014f0a0bee915ff34f4b22284abc61c222c",
      "parents": [
        "9561faf10d2e23f322da03743a30843296971fd0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 06 12:37:10 2019 +0000"
      },
      "committer": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Fri Dec 06 16:55:36 2019 +0000"
      },
      "message": "Fix oatdump for boot image extensions.\n\nFix the ParseCheckBootImage() to check the first component\nof a multi-component boot image parameter.\n\nFix oatdump to fail nicely instead of aborting when it\nfails to load any image.\n\nFix error message for boot image component count mismatch.\n\nTest: m dump-oat (fails; check error message and exit)\nTest: Manually run one of the `m dump-oat` commands with\n      fixed --image argument (adding the primary image).\nChange-Id: I4e143e3415b1239f6afee5fa18899a1724519155\n"
    },
    {
      "commit": "9561faf10d2e23f322da03743a30843296971fd0",
      "tree": "6222d0135f32e9e4dc9b4f1372cd5fd0e88c19c6",
      "parents": [
        "b0a9747b363d1a368ed390fde07c6bfd6fbc78bf"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 06 13:35:59 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 06 16:03:40 2019 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Remove reference to d8-compat-dx\"\"\"\n\nThis reverts commit 64a5d1ae323efa384e317e3b8f2cc413a1ac2680.\n\nReason for revert: Breaks vogar.\n\nChange-Id: I561f577976648c10e5eec55bb8596c55ebd63948\n"
    },
    {
      "commit": "b0a9747b363d1a368ed390fde07c6bfd6fbc78bf",
      "tree": "490bc94c52b5349f6c689d73db37c6ffca264869",
      "parents": [
        "64a5d1ae323efa384e317e3b8f2cc413a1ac2680"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Dec 05 15:17:46 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 06 13:48:12 2019 +0000"
      },
      "message": "Fix go/lem breakages on baseline configs\n\n- Don\u0027t collect profiling info for now, as compiled code reference\n  them directly.\n- Only compile optimized after reaching baseline hotness threshold if\n  tiered JIT is enabled.\n\nTest: test.py, go/lem benchmarks.\nChange-Id: I0d21d5f77825a710588ef5a7c11288a5b9757907\n"
    },
    {
      "commit": "64a5d1ae323efa384e317e3b8f2cc413a1ac2680",
      "tree": "9ccd4683d427b7bc1cfcfb196cbc8414f2f2ff3b",
      "parents": [
        "b7bf843b04046f2758998c019e947611d0208217"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 06 11:06:52 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 06 11:08:16 2019 +0000"
      },
      "message": "Revert \"Revert \"Remove reference to d8-compat-dx\"\"\n\nThis reverts commit 1caa1270a53fa08ab9c6934d5bdd2da79c7bf89e.\n\nReason for revert: The R8 change has relanded.\n\nChange-Id: Ifa4e43410b895f0809860bb21c18142fd85500d3\n"
    },
    {
      "commit": "b7bf843b04046f2758998c019e947611d0208217",
      "tree": "0a6033402ebde2859267c865dc4e14cde9170835",
      "parents": [
        "726e2dd6db60968b36c1d03feab236edc8fa806b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Dec 03 13:18:50 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 06 10:57:08 2019 +0000"
      },
      "message": "Use provided dex filenames in oat file.\n\nRemove OatFile::RemoveRelativeEncodedDexFileLocation() and\nuse the provided `dex_filenames\u0027 (see below) if not empty,\nwithout checking for prefix match or host/target build type.\n\nAlso add extra primary/multi-dex location checking when\nopening an oat file. Since some tests were already creating\noat files from multiple dex files, rewrite the interface to\nbetter support that option, replacing the old argument\n`abs_dex_location` with `dex_filenames` that can provide\npaths to multiple dex files.\n\nTest: m test-art-host\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nChange-Id: I36a9abca72872c41e4c10fdacbeadf551ca740dc\n"
    },
    {
      "commit": "726e2dd6db60968b36c1d03feab236edc8fa806b",
      "tree": "78b379652ed945f44051856a27e1597b6c7a65db",
      "parents": [
        "e3f775bace85f4fe02dfd4042091d2f7d6fcbc25"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Thu Dec 05 11:03:34 2019 -0800"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Thu Dec 05 11:41:39 2019 -0800"
      },
      "message": "Read thread-local mark-stack inside critical section\n\nReading thread-local mark-stack outside mark_stack_lock_\u0027s critical\nsection (CS) and then adding it to pooled_mark_stacks_ vector in the CS\nleads to concurrency issue. A destroying mutator reads its mark-stack\nand then waits on mark_stack_lock_ as concurrently running GC-thread\nrevokes the mutator\u0027s mark-stack. Eventually, when mutator resumes, it\nadds the same mark-stack again to the pooled_mark_stacks_ vector.\n\nTherefore, reading the thread-local mark-stack should also be performed\ninside the mark_stack_lock_\u0027s CS.\n\nTest: art/test/testrunner/testrunner.py\nBug: 140119552\nChange-Id: I1daf7131e380699cd6bfcc8bfe2f2db52b661bd6\n"
    },
    {
      "commit": "e3f775bace85f4fe02dfd4042091d2f7d6fcbc25",
      "tree": "41446ada658dc05abb073edc5c2c134e83802619",
      "parents": [
        "621738039bbca55a2513bddb6ea66d4934fa7089"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 04 14:41:52 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Dec 05 13:34:57 2019 +0000"
      },
      "message": "Address comments from aog/1180224.\n\nMove handling of objects in interpreter cache to weak objects.\n\nBug: 119800099\nTest: test.py\nChange-Id: Ie7b2b2e285607a7c1460fd4f0b4ea690f9a16594\n"
    },
    {
      "commit": "621738039bbca55a2513bddb6ea66d4934fa7089",
      "tree": "ae89c50bb3dc1144bb0742746a170bc1adc1c78e",
      "parents": [
        "43f2f75df04495aa3dfd9bb80cf3180887d3b20e"
      ],
      "author": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Mon Nov 25 13:46:35 2019 +0900"
      },
      "committer": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Thu Dec 05 08:55:28 2019 +0000"
      },
      "message": "Bind-mount individual flattened APEXes\n\nThere are a few directories for builtin APEXes: /system/apex,\n/system_ext/apex, /product/apex, /vendor/apex.\n\nFor devices with ro.apex.updatable\u003dfalse, init should bind-mount\n\"flattened\" apexes from all of above.\n\nInstead of making mount point for \"com.android.art\" at buildtime, init\nprocess creates it before mounting.\n\nBug: 144732372\nTest: OVERRIDE_TARGET_FLATTEN_APEX\u003dtrue m \u0026\u0026 device boot\nChange-Id: I64f0d6bdd1d297ccc0679fb6319103d5bfbfc620\n"
    },
    {
      "commit": "43f2f75df04495aa3dfd9bb80cf3180887d3b20e",
      "tree": "f1faf031608da284924e6ccd75b56307d55d17b1",
      "parents": [
        "9317031cd016e02a26cdeea8045df9925b33ffe2"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Dec 04 17:48:45 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 05 08:13:02 2019 +0000"
      },
      "message": "Revert^4 \"Implement Dot Product Vectorization for x86\"\n\nThis reverts commit 8e895008a3e2f2813bb46cb0c6bc76884e46e9ac.\n\nReason for revert: The test failure seems unrelated.\nBug: 144947842\n\nChange-Id: I7b437f0443d71a5c762e1a8372564ed989971cc9\n"
    },
    {
      "commit": "9317031cd016e02a26cdeea8045df9925b33ffe2",
      "tree": "b1278f6d99c2e4c1375c1d9031d552c9875a4e3c",
      "parents": [
        "a0b4631f73547b44bff5c0c01b605d867cd083cc"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed Dec 04 13:46:11 2019 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 05 01:53:26 2019 +0000"
      },
      "message": "Move thread-local mark-stack revocation outside SOA\n\nRevoking mark-stack inside a ScopedObjectAccess scope could potentially\ncall checkpoints in its destructor, which may trigger read-barrier,\nafter the mark-stack is revoked.\n\nTest: art/test/testrunner/testrunner.py --target\nBug: 140119552\nChange-Id: I90d62cbf5edbaf953de73aeb2b3b59612b6897d3\n"
    },
    {
      "commit": "a0b4631f73547b44bff5c0c01b605d867cd083cc",
      "tree": "c3463a2d168385e9441801002e96d43dd42f30c3",
      "parents": [
        "13e951d2bf4f989b0c561b96eed967e8f84d64ea"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed Dec 04 22:06:48 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 05 00:50:37 2019 +0000"
      },
      "message": "Revert submission\n\nReason for revert: b/140119552 has been fixed. The change no longer needed.\n\nChange-Id: I66c4744d8d72992bf01042a5043bd3dcfbbbe005\n"
    },
    {
      "commit": "13e951d2bf4f989b0c561b96eed967e8f84d64ea",
      "tree": "68edc727335048994abf31fc5cdf5bd5c6743b93",
      "parents": [
        "1caa1270a53fa08ab9c6934d5bdd2da79c7bf89e"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Fri Nov 01 16:48:28 2019 -0700"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Wed Dec 04 23:25:06 2019 +0000"
      },
      "message": "Fix mallinfo result interpretation\n\nWe assumed that mallinfo.hblkhd represents the amount of memory\nin large blocks allocated directly with mmap. That appears to be\nthe intended interpretation for glibc, but not jemalloc.\n\nIn the jemalloc case, remove the attempt to sanity check and repair\nthe uordblks field based on this information. The bug requiring it\nthere was fixed long ago. Based on old notes, the check may still be\nrequired for glibc. Out of an abundance of caution, leave it there for\nnow.\n\nAdd a conditional sanity check of the argument for\nRegisterNativeAllocation().\n\nThis was externally reported through unofficial channels.\n\nTest: Build and boot AOSP.\nChange-Id: I5d10f239057ed3efeb39f28e8c7d87849ee60ff0\n"
    },
    {
      "commit": "1caa1270a53fa08ab9c6934d5bdd2da79c7bf89e",
      "tree": "575686667078218972034ec7d695310c5aa88567",
      "parents": [
        "a142f712dffa675e3cd175bca89f37ff7160a07f"
      ],
      "author": {
        "name": "Jason Lee",
        "email": "jasl@google.com",
        "time": "Wed Dec 04 09:06:41 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 04 19:36:21 2019 +0000"
      },
      "message": "Revert \"Remove reference to d8-compat-dx\"\n\nThis reverts commit 1755ad0062e97d0e358c65600fd5e51b40b85d95.\n\nReason for revert: Potential culprit for Bug 145645482 - verifying through Forrest before revert submission\n\nChange-Id: I56d829b824630b0a5a408c1d8cda75086ebbb89d\n"
    },
    {
      "commit": "a142f712dffa675e3cd175bca89f37ff7160a07f",
      "tree": "d8a830c79b702283f2883573fe630d4e13270b24",
      "parents": [
        "9b5271e53a76cbe3d269d1b70da7f13b9d944db1"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 03 05:52:33 2019 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Dec 04 19:20:50 2019 +0000"
      },
      "message": "Add missing Barriers in ReplaceReferences\n\nWhile replacing references we would incorrectly fail to mark objects\nif their references are accessed through the \u0027VisitRoot\u0027 visitor\nfunction. This occurs with DexCache and ClassLoader objects, hitting\nthe caches and the class table respectively. This could cause problems\nif a root was replaced and the reference was not replaced in any of\nthe other paths. In this case the objects page would not get marked\nand the GC would (correctly) throw an error saying it missed a write.\n\nTest: ./tools/parallel_run.py -j80\nTest: ./art/test/run-test --host 2001\nBug: 134162467\nChange-Id: I9a1ad15fd3986e92dfc39c6f87cebdb031492aab\n"
    },
    {
      "commit": "9b5271e53a76cbe3d269d1b70da7f13b9d944db1",
      "tree": "ff89e3a40d274e812f5727d7ff7930d19d447d35",
      "parents": [
        "a00b54b74bee06c006b8bebfbef85e2801de293c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 04 14:39:46 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 04 14:39:46 2019 +0000"
      },
      "message": "Get the baseline information from the graph.\n\nBaseline could be set by the compiler options or the JIT.\n\nTest: test.py\nBug: 119800099\nChange-Id: I702bd7642dfd3353c9ad99cb6ac425c090e16101\n"
    },
    {
      "commit": "a00b54b74bee06c006b8bebfbef85e2801de293c",
      "tree": "6edb2a96c1f89ae913e6b5f190b117cb290239e8",
      "parents": [
        "e571a283b73fb4621c401811f523503b3266564b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 03 14:36:42 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 04 12:04:36 2019 +0000"
      },
      "message": "Helpers and refactorings to prepare for interpreter optimizations (x64)\n\n- Add data structure offsets that will be used in assembly code.\n- Be explicit about a stack overflow in a fault handler.\n- Move assembly helper code in asm_support so interpreter can use it.\n- Support putting literals in InterpreterCache.\n- Fix artHandleFillArrayDataFromCode for x64.\n\nBug: 119800099\nTest: test.py\nChange-Id: I2729f87fe5d09c04ae2e7081636f0cd89ac14c21\n"
    },
    {
      "commit": "e571a283b73fb4621c401811f523503b3266564b",
      "tree": "3c2959dd9594cdb8efb290b391de227f2458bd96",
      "parents": [
        "1755ad0062e97d0e358c65600fd5e51b40b85d95"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Dec 03 18:36:01 2019 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Dec 04 08:08:13 2019 +0000"
      },
      "message": "Ignore bad profiles when --force-merge is specified\n\nThe ART profiles are cleaned lazily and may stay a long time on an\nobsolete version if the corresponding apps are not used or updated. For\nregular profiles this is not a problem, however for boot image profiles\nthey can trigger unnecessary merge errors. As such, we ignore them when\n--force-merge is specified.\n\nTest: profile tests\nBug: 139884006\nChange-Id: I10d9a325d79b279c8ec4fe8d70696e9335a17099\n"
    },
    {
      "commit": "1755ad0062e97d0e358c65600fd5e51b40b85d95",
      "tree": "e838741fe9ac5530564bc5c0c1d3d0caadc61152",
      "parents": [
        "6c030d4174b9009808c6d72b9ab9955b1115a7fc"
      ],
      "author": {
        "name": "Søren Gjesse",
        "email": "sgjesse@google.com",
        "time": "Tue Dec 03 13:05:47 2019 +0100"
      },
      "committer": {
        "name": "Søren Gjesse",
        "email": "sgjesse@google.com",
        "time": "Wed Dec 04 07:48:48 2019 +0000"
      },
      "message": "Remove reference to d8-compat-dx\n\nTest: ./art/test/testrunner/run_build_test_target.py -j80 art-test\nChange-Id: Ifaf76a5804e6fa77168f319dd8c95ff2ea6fe326\n"
    },
    {
      "commit": "6c030d4174b9009808c6d72b9ab9955b1115a7fc",
      "tree": "158e75ca4828b8bae91e74080072c2c0270d0476",
      "parents": [
        "4f2e0889d10ae930f944c3c3f3d76e920a86c665"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 03 13:56:33 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 03 18:33:10 2019 +0000"
      },
      "message": "Pass a large code cache for test 638-checker-inline-cache-intrinsic.\n\nTest relies on the inline caches not being collected.\n\nTest: 638-checker-inline-cache-intrinsic\nChange-Id: I64b3756cba207d3583a98696051aa47e430fe249\n"
    },
    {
      "commit": "4f2e0889d10ae930f944c3c3f3d76e920a86c665",
      "tree": "f376f84b1c0fa5d64948c35a0340ab5fc5d093c2",
      "parents": [
        "a59af8aeaad8fe7d68d8f8de63eab9cf85b6ab31"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Sun Dec 01 09:57:10 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 03 14:32:35 2019 +0000"
      },
      "message": "ARM64: Move from FPRegister to VRegister based API (continued (2)).\n\nMove newly added occurrences of `vixl::aarch64::FPRegister` to\n`vixl::aarch64::VRegister` in `compiler/optimizing/common_arm64.h`.\n\nTest: mmma art\nBug: 144490441\nChange-Id: Id343d64fa00373994db7bf11f5e737cca3a4f2fd\n"
    },
    {
      "commit": "a59af8aeaad8fe7d68d8f8de63eab9cf85b6ab31",
      "tree": "83195c74b135731cc4555254763a8f449691c1b0",
      "parents": [
        "5c8cc64b5f1580faf510f27527e7e22987174963"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 27 17:42:32 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 03 14:32:09 2019 +0000"
      },
      "message": "JIT baseline: trigger optimized compilation on hotness threshold.\n\n- Add a new hotness count in the ProfilingInfo to not conflict with\ninterpreter hotness which may use it for OSR.\n- Add a baseline flag in the OatQuickMethodHeader to identify baseline\ncompiled methods.\n- Add a -Xusetieredjit flag to experiment and test.\n\nBug: 119800099\nTest: test.py with Xusetieredjit to true\n\nChange-Id: I8512853f869f1312e3edc60bf64413dee9143c52\n"
    },
    {
      "commit": "5c8cc64b5f1580faf510f27527e7e22987174963",
      "tree": "cd1eda12b0278aeaa157f24daa9a9670d43b5b41",
      "parents": [
        "c8315d9134b2f41b9facdf7630b10d5e2e5c527e"
      ],
      "author": {
        "name": "Ulya Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Mon Nov 18 14:48:55 2019 +0000"
      },
      "committer": {
        "name": "Ulya Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Tue Dec 03 10:26:53 2019 +0000"
      },
      "message": "Use framework boot image extension.\n\nTest: m\nTest: ran art tests on device (all passed)\n\nBug: b/119800099\n\nChange-Id: I5e417cd2588ae7b88e7b6abf7ae54268d2cce5f8\n"
    }
  ],
  "next": "c8315d9134b2f41b9facdf7630b10d5e2e5c527e"
}
