)]}'
{
  "log": [
    {
      "commit": "0984e483c1b8033250a32b11f112ae3e65eef39b",
      "tree": "267b4f59818e5080dff726adf25e5b5710111377",
      "parents": [
        "621c8807f38fedab56ea701370a18df123177f67"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Mar 27 16:41:41 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Mar 28 09:22:07 2019 +0000"
      },
      "message": "Style cleanup for ObjPtr\u003c\u003e-ify changes.\n\nReplace \"ObjPtr\u003c.\u003e const\" with \"const ObjPtr\u003c.\u003e\".\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 31113334\nChange-Id: I5a1c080bc88b091e15ee9eb0bb1ef6f6f290701c\n"
    },
    {
      "commit": "0eefb9bad0b098e892f977694ad1207f3ef42c90",
      "tree": "9c1abc5959eaf2d6a3a420369ba642381febca04",
      "parents": [
        "5aead700219d9c9fc05524d5d72dc32cb1807c61"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Mar 27 15:04:31 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Mar 28 09:22:07 2019 +0000"
      },
      "message": "ObjPtr\u003c\u003e-ify mirror::Field and mirror::Executable.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 31113334\nChange-Id: Ib536df95543cb7240a5816bef019391bb90e6369\n"
    },
    {
      "commit": "34857b5fd3be5ee8cf1935bd1fbaad37a8e42768",
      "tree": "eabdd26615030bde559d939eb861f02290851c9e",
      "parents": [
        "3b45890cf987c0b57965acd78958cd8eca487b8e"
      ],
      "author": {
        "name": "Koji Fukui",
        "email": "Koji.Fukui@sony.com",
        "time": "Wed Mar 20 19:13:00 2019 +0900"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 27 12:12:13 2019 +0000"
      },
      "message": "Revert \"Revert \"Change state to waiting during aborting the VM\"\"\n\nThis reverts commit ebb481d070e3fdbb7950580e6f6886c3231a1ad9.\n\nDex2oatWatchdogTest.TestWatchdogTrigger passed.\nApply the change again.\n\nTest: ART_HEAP_POISONING\u003dtrue make test-art-host-gtest-dex2oat_test64\nBug: 127875380\nChange-Id: If4326990cd612815ffe1511490712ca8babfec55\n"
    },
    {
      "commit": "423bebb17f15c3867a52315f0ae421f08f14544f",
      "tree": "97bdf50c7144ae21e6abfe8bdc26858a6a10f94d",
      "parents": [
        "93d99f3665cbd890509f4c707e1a62c5f26d320e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 26 15:17:21 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Mar 27 09:45:20 2019 +0000"
      },
      "message": "ObjPtr\u003c\u003e-ify mirror::ObjectArray.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 31113334\nChange-Id: I611b3e49d3feed306f6cd35d2b662a1e727e24c6\n"
    },
    {
      "commit": "179b7c61ea6769b99f70c80a7a89cbb212423ec2",
      "tree": "06130898bfb2d8c3f71f4fe181277f20e1942726",
      "parents": [
        "c8b7d445e02b752a68d824e2bc69658dfb76288a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Mar 22 13:38:57 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Mar 25 16:54:37 2019 +0000"
      },
      "message": "ObjPtr\u003c\u003e-ify String allocations, fix stale refs.\n\nObjPtr\u003c\u003e-ify String allocation functions and related code\nand remove some unnecessary calls to ObjPtr\u003c\u003e::Ptr(). Fix\nstale reference uses in reference_table_test and stub_test.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 31113334\nChange-Id: I42927fb8b7240e5132188f73318b2ccb218748fd\n"
    },
    {
      "commit": "7458291cbaf549c4a9739b444e314f40f58a5520",
      "tree": "9f01f691b50a230690b4c9869787fa44a460bc6b",
      "parents": [
        "c2109c6803a5b7c23b0d59f67d13d58f97111e5b"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Mar 01 11:18:19 2019 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Mar 21 14:34:50 2019 +0000"
      },
      "message": "Open in-memory dex files into a single DexFile object\n\nRefactor the logic of opening dex from ByteBuffers so that all buffers\nare opened at once into the same DexFile/Element object. This effectively\nenables multidex in InMemoryDexClassLoader and will make it possible to\ngenerate a single vdex file for the whole class loader instead of one\nvdex per dex ByteBuffer.\n\nBug: 72131483\nTest: art/tools/run-libcore-tests.sh\nChange-Id: I5fb939072812745a2df0f323c502a1cf92069ed5\n"
    },
    {
      "commit": "f57f7d4cac1d54a54737252e1cf20bee1aace958",
      "tree": "f79d0eece6b4bfc78eb10e8add75de8cf6c0b7b8",
      "parents": [
        "2faab0064bccdf06a454ba5fc37f2cfeceab78bc"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Mar 14 17:49:26 2019 -0700"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Wed Mar 20 15:26:54 2019 +0000"
      },
      "message": "Change registerNativeAllocation to long argument\n\nBug: 128423826\nTest: AOSP boot and TreeHugger\nChange-Id: I460b4e692604a433e145e3b243ae6453bdec3fc6\n"
    },
    {
      "commit": "3383f9c81211ebb4185c861d8acb3d9de0df78ee",
      "tree": "994deadcdb15334dcbe54aed80c28ff98077c2fb",
      "parents": [
        "7286ad6c340b11f28240a049cf3225a3d58ebc67"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 15 11:46:08 2019 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Mar 19 21:37:36 2019 +0000"
      },
      "message": "ART: Conditionally remove loaded-oat-count check\n\nIn the case of the system server, oat files may be loaded before the\ncheck applies.\n\nBug: 128688902\nTest: m\nTest: manual\nMerged-In: I1c12463e905115e858cc0c52711dd82a4f06425d\nChange-Id: I1c12463e905115e858cc0c52711dd82a4f06425d\n"
    },
    {
      "commit": "ebb481d070e3fdbb7950580e6f6886c3231a1ad9",
      "tree": "af6986daab73dcd17dca5f4bab68024c12c40c83",
      "parents": [
        "a1e5b97b4bb4c47c2ab51d8a7d5dd1500d496c4d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 19 09:30:35 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 19 12:33:11 2019 +0000"
      },
      "message": "Revert \"Change state to waiting during aborting the VM\"\n\nThis reverts commit 97b964960123d5f215a1cebbce548c8a5322c307.\n\nBug: 127875380\n\nReason for revert: Broke Dex2oatWatchdogTest.TestWatchdogTrigger on host x86_64 and heap poisoning.\n\nChange-Id: Iaebfc4a03543bff4e7239d711dd7ad8c7f880d52\n"
    },
    {
      "commit": "97b964960123d5f215a1cebbce548c8a5322c307",
      "tree": "04239f8bc25ce6f22bda774bbae37755ed8acb27",
      "parents": [
        "26a5dd6fd1d65de29ba85e4bb61d9267dd428238"
      ],
      "author": {
        "name": "Koji Fukui",
        "email": "koji.fukui@sony.com",
        "time": "Tue Mar 05 12:22:57 2019 +0900"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 18 17:19:04 2019 +0000"
      },
      "message": "Change state to waiting during aborting the VM\n\nSymptom:\nProcess freeze when multiple runtime error happen on runnable threads.\n\nRoot cause:\nWhen multiple runtime error happen, only one thread locks abort_lock_\nand other threads are blocked even if they are runnable state.\nIf an other thread tries to suspend blocked threads at the same time,\nblocked threads can\u0027t be suspended until abort_lock_ is unlocked from\nowner thread. But owner thread can be suspended even if it locks\nabort_lock_. Thus, these threads causes dead lock.\n\nSolution:\nChange state to waiting when locking abort_lock_.\n\nBug: 127875380\nChange-Id: I7e914924690bb30d6d0490cf5f8afdb1c3cd4e4a\n"
    },
    {
      "commit": "e095c9135a6b28c3e8059a9a55d4c479f3e2c7f3",
      "tree": "1cc69dbb19fc52285ea19fa6b72e46fa17d2f7ff",
      "parents": [
        "b214694e13890559ae587263f93eb3cfdd63eaa1"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Mar 14 13:38:49 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 15 02:01:41 2019 +0000"
      },
      "message": "ART: Cache Runtime* in nativePostForkChild\n\nPreparation for future change.\n\nBug: 125474642\nTest: m test-art-host\nTest: Device boots\nChange-Id: I69018b9afe2063ca6ba8dd9f70f3b996888611a4\n"
    },
    {
      "commit": "8682354d448e1c3c355dbcac07b77e9c40e35987",
      "tree": "a8e99b9b44617c6d9f52501069d44db773d0df47",
      "parents": [
        "1f146b7db14c976987033224caf90831bbf11b10"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Feb 25 09:38:49 2019 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Mar 13 18:19:00 2019 +0000"
      },
      "message": "ART: Allow to change boot image pickup order\n\nAllow to change the pickup order of boot image files between\nsystem-first and data-first.\n\nBug: 126307038\nTest: m test-art-host\nTest: Boot device with image in /data/dalvik-cache\nChange-Id: Id80cfc06aeb023559e1a3706833e57ba4880f43b\n"
    },
    {
      "commit": "175ce3dea89a40e68a685d7f873e8b9f082c45a6",
      "tree": "f4ba53dc33aca3ae71fd006b282a55dc926e53c9",
      "parents": [
        "cc292c611af7cdea6a2d9196fc347468b9233f71"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 06 16:54:24 2019 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 08 01:22:42 2019 +0000"
      },
      "message": "Add callback for notifying that startup is completed\n\nAdd a callback that can be called to denote that application startup\nis completed. This may affect how the profile is collected and how\nstartup related caches are managed.\n\nBug: 123377072\nBug: 120671223\nTest: test-art-host\nChange-Id: If7eb8909cc5e99082a2243b5029380244b46174d\n"
    },
    {
      "commit": "de1b2a2113b9e2c44b90c441177060142c7abbfd",
      "tree": "1e710fb3c5fdf8c11858a6a2418a53a5ad1ab1d8",
      "parents": [
        "ffe26cc54fac4f1997e5dbf6991da9e95ce49e31"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 27 09:10:57 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 27 12:44:48 2019 +0000"
      },
      "message": "Revert \"Revert \"Add support for booting with a boot classpath not fully AOTed.\"\"\n\nThis reverts commit 14bfeddf2e434954f0ca36687ac0fc5dc6412bd3.\n\nReason for revert: Removes obsolete DCHECK\nBug: 119800099\n\nChange-Id: Ia984f95300c6b96165f0179bfc2f66b012bf5dbe\n"
    },
    {
      "commit": "14bfeddf2e434954f0ca36687ac0fc5dc6412bd3",
      "tree": "59b23768c4d886e99bd81968e0eaf26ff2160a37",
      "parents": [
        "e55ea985ab4f77ca9557e33a2d29dc1a1f0ac078"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Feb 26 22:16:07 2019 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Feb 26 23:59:26 2019 +0000"
      },
      "message": "Revert \"Add support for booting with a boot classpath not fully AOTed.\"\n\nThis reverts commit 7417ce97c4dcabbd7423d46ff9b7cdaf95c1e0f9.\n\nReason for revert: Breaks debug mode\n\nBug: 119800099\nBug: 126239181\nChange-Id: I2d4a79f957a020cc6404a130536a416daebc94e3\n"
    },
    {
      "commit": "7417ce97c4dcabbd7423d46ff9b7cdaf95c1e0f9",
      "tree": "3e84a40b0da5f826cbfd5ff4fb93c0b3dd4355e3",
      "parents": [
        "794350fd0e21aa9e259b6c45394494871e7fdb13"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 01 10:52:42 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 19 17:59:31 2019 +0000"
      },
      "message": "Add support for booting with a boot classpath not fully AOTed.\n\nBug: 119800099\nTest: adb shell setprop dalvik.vm.boot-image \"/system/framework/nonexistent.art\"\n\nChange-Id: I6641399f43c24702f19f4d976c6054d77186799e\n"
    },
    {
      "commit": "a88abfa91af92e87b806529813a1787568fdb032",
      "tree": "632ae56a03fb3178f093e9722eccfe9c24a5fc1a",
      "parents": [
        "2f34e59c10c30ea24fa5f4bc4e3d5a9dc6469c34"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Feb 04 11:08:29 2019 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Feb 06 12:21:04 2019 -0800"
      },
      "message": "Add feature flag for loading app image startup cache\n\nPassed from the zygote.\n\nIf false, app image string intern tables and preresolved strings are not\nloaded. This means the intern strings are generated by walking the image\ninstead of looking at the app image intern table directly.\n\nBug: 123524494\nBug: 116059983\nTest: test-art-host\nTest: adb shell device_config put runtime_native use_app_image_startup_cache true\n\n(cherry picked from commit 5153419cba1cdfb6d5e5baba3e45fcf703c9daec)\n\nMerged-In: I6f800d1d989fd5e5b23166a115b1b241efac7ad2\nChange-Id: I119948efd25c039a057f283c19b23431093659f4\n"
    },
    {
      "commit": "4bcd65753c1e49ceba2c41983f26af81ae319670",
      "tree": "3fc7bd53d37448621726dc508f173490807af9c7",
      "parents": [
        "2da3cbb4af20a64108e474c0bbbe0cc5d3af2aa2"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Sat Feb 02 20:08:44 2019 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Feb 04 15:00:20 2019 +0000"
      },
      "message": "Take hidden API into account during getDeclaredMethod()\n\nGenerics make it possible for two methods to have the same name and list\nof parameters but differ in their return type. Class.getDeclaredMethod()\ndoes not allow callers to specify the type, so either of the matching\nmethods can be returned (ART will prefer the non-synthetic one).\n\nHowever, Class::GetDeclaredMethodInternal() did not use to take hidden API\ninto account and could return a hidden method, despite a non-hidden one\nbeing available. The reflective call would then reject the method and\nthrow NoSuchMethodException.\n\nThis patch modifies Class:GetDeclaredMethodInternal() to consider:\n(a) hidden/non-hidden\n(b) virtual/direct\n(c) synthetic/non-synthetic\nin that decreasing order of importance and pick the best matching\nmethod. The hiddenness checks are performed with AccessMethod::kNone\nso as to not trigger warnings. A hidden method may still be returned and\nthe caller should do the access check again with the appropriate\nAccessMethod.\n\nBug: 122291025\nTest: art/test.py -r -t 690-hiddenapi-same-name-methods\nChange-Id: Iaee780c1e87f5587f51e24b517b2b37101c729e3\n"
    },
    {
      "commit": "1a041486850aa462de5ed16c54f028ad97a8eb6e",
      "tree": "38d8fdf2848203fae31372447328f3f7b143f064",
      "parents": [
        "26e2eb689f595e2f1d3cd436198bc1233c4179db"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Dec 18 17:55:08 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Jan 24 13:27:07 2019 +0000"
      },
      "message": "Fix bug in InMemoryDexClassLoader loading\n\nInMemoryDexClassLoader can load dex files from both direct and indirect\nByteBuffers but it only respects the buffer\u0027s current position for the\nlatter and assumes the position is zero for the former.\n\nBug: 123337866\nTest: art/tools/run-libcore-tests.sh\n\nChange-Id: Id294814c68f7e9e859d67c12fe1f62e52e84c45e\n"
    },
    {
      "commit": "e7681823f8259c8c04ce0c361746216606784e69",
      "tree": "8bd248fc6be126d7d4e55bb4072ed24b2851ebbd",
      "parents": [
        "90faceb71e25748172ba6369209f8a2a66735394"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Dec 14 16:25:33 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Jan 21 10:22:27 2019 +0000"
      },
      "message": "hiddenapi: Print warnings for @CorePlatformApi violations\n\nWhen accessing a method/field at runtime, determine the context of both\nthe caller and the callee, and add new logic for the case\n\"platform -\u003e core-platform\" which used to be always allowed.\n\nIf the callee is marked with kAccCorePlatformApi, access is allowed.\nIf not, a warning is printed into logcat.\n\nBug: 119068555\nTest: 674-hiddenapi\nChange-Id: I64839596bf6eb06d7a169fd59b18fd82c140ce6e\n"
    },
    {
      "commit": "fe2886de2a9f06f286fe905ce8417981b9089c5c",
      "tree": "060025813c4ab6d3bfd98aaafa54a97be342a0c0",
      "parents": [
        "d7d3f6fa1870b9e9b8f58ab7854e5eeee071ba2e",
        "226805d9b81ba442251d0e2c4baedc36fcda6592"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 10 14:22:23 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 10 14:22:23 2019 +0000"
      },
      "message": "Merge \"Deoptimize zygote compiled methods in DeoptimizeBootImage.\""
    },
    {
      "commit": "3f1dcd39e134d994ac88dcc4f30ec8cabcd8decf",
      "tree": "365d20ad6b68ff1dbd4903764b63880324136e4d",
      "parents": [
        "0f0a4e40667c87fbd4ae5480eddbfd701bfabfa2"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Dec 28 09:39:56 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 02 10:32:25 2019 -0800"
      },
      "message": "ART: Move dex structs into own header\n\nSeparating out the structs from DexFile allows them to be forward-\ndeclared, which reduces the need to include the dex_file header.\n\nBug: 119869270\nTest: m\nChange-Id: I32dde5a632884bca7435cd584b4a81883de2e7b4\n"
    },
    {
      "commit": "226805d9b81ba442251d0e2c4baedc36fcda6592",
      "tree": "3a256b1d36894d8d43ec9650f2a3f55c90c4730c",
      "parents": [
        "96453b7d6aa445c6609aa465df5d66ae0beb7956"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 14 10:59:02 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 19 09:22:01 2018 +0000"
      },
      "message": "Deoptimize zygote compiled methods in DeoptimizeBootImage.\n\nThose methods don\u0027t get compiled with the \"debuggable\" flag,\nso we need to deoptimize them.\n\nAlso fix a bug revealed by the new test where a concurrent\nJIT collection happens when trying to disable it.\n\nAlso make DeoptimizeBootImage truly mutator lock exclusive.\n\nTest: 689-zygote-jit-deopt\nChange-Id: I00607dbe100350c5328293c35c87946fa97924b8\n"
    },
    {
      "commit": "4eebb0edb078b4e474e6bb9527c4778571025516",
      "tree": "c0f395c607f46e17c8a5f21162cdce5668a17957",
      "parents": [
        "777cb01e3cdebbb5a578d67b631c34c9e4a517da"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 18 18:09:02 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 18 18:09:02 2018 +0000"
      },
      "message": "Remove Trace.Pause/Resume.\n\nResume was never wired up anywhere, and the zygote-tracing functionality is untested.\n\nTest: build\nChange-Id: I5ae0a8132ebffcbdcfde77caee5bcab415d6f063\n"
    },
    {
      "commit": "c220f981809d655fb061c92a581fd6fc4df4da5c",
      "tree": "77f494f865e9b3c24340b5761a5d762408eb3a78",
      "parents": [
        "5de31a1dd5ac6e12b37517550a609b9c0576f685"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Fri Oct 12 16:15:45 2018 -0700"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Wed Dec 12 21:03:14 2018 -0800"
      },
      "message": "Change GC triggering to use mallinfo()\n\nRevise the test of whether we should collect based on native allocation\nto be based on mallinfo.\n\nMake the GC triggering threshold for native allocations grow somewhat\nwith the Java heap size to account for the added cost of Java\ncollection. We currently compromise between that goal and a\ndesire to avoid drastic changes that might provoke new heap\ngrowth issues. It does now take more native allocations to\ntrigger a GC earlier in the normal Java GC cycle than later in the\ncycle, as it should.\n\nAdd the notifyNativeAllocations() interface to replace\nregisterNativeAllocation() in the common case in which native memory\nis completely allocated via malloc(), and thus no longer needs to be\naccounted for separately. Arrange for it to be called much more\nrarely, since its cost is higher, and we can save time by not going\nthrough JNI on every allocation.\n\nAdd 175-alloc-bignums test.\n\nCleanups/fixes:\n\nFix race in IsOutOfMemoryOnAllocation.\n\nRename max_allowed_footprint_ to avoid suggesting it\u0027s a hard limit.\nIt wasn\u0027t and it isn\u0027t. Make it atomic, since it\u0027s concurrently\nmodified.\n\nFix a few cases in which unsigned counters could become negative.\nI think the only bad consequences of this were weird log messages.\n\nFix integer sizes/signedness around GrowForUtilization.\nUse uint64_t only when we can exceed address space size, and\nsize_t otherwise. Improve overflow checking.\n\nMake allocator or collector tests check the important kinds first, since\nthey\u0027re not always known at compile time.\n\nBug: 111447610\n\nTest: Built and booted AOSP. Ran 175-alloc-big-bignums.\n\nChange-Id: I55deac86622019fb85bbd569c3ae8afab2d13d9a\n"
    },
    {
      "commit": "afc60cd6ddcd15353698bb453716313dea241ef8",
      "tree": "708bbf11e425ddb7a75874f27d272fd5484d0bf1",
      "parents": [
        "58431a7cf863b2eb7fe25eff6a28ec376f2f151d"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Dec 05 11:59:31 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Dec 11 11:32:37 2018 +0000"
      },
      "message": "Cleanup native debug interface api.\n\nStrongly type the DEX file arguments.\n\nRemove the need for callers to worry about locks.\n\nUse std::map instead of std::unordered_map internally.\n\nTest: ./art/test.py -b -r -t 137\nChange-Id: I8bd79b796b5c7da265afc43a07ed227f550116c7\n"
    },
    {
      "commit": "a9a0973ff03ce2c2d1ec65695ad0f4cd8ed170a7",
      "tree": "9f00efead2c694b2a590f8c4890a9052571bbcff",
      "parents": [
        "260a50cb43618dfdd325e7c89745d8bc38b20292",
        "d19085141ad9c71eae1b0ff585999ac8e27dadd4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 07 07:51:00 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 07 07:51:00 2018 +0000"
      },
      "message": "Merge \"Pass boot class path to ImageSpace::LoadBootImage.\""
    },
    {
      "commit": "d19085141ad9c71eae1b0ff585999ac8e27dadd4",
      "tree": "24284e84f5df4601bacc2a97c56af1bc5950c253",
      "parents": [
        "523940b40f9701504d6e007dd2af48f315038dc1"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 22 14:57:28 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 06 14:43:07 2018 +0000"
      },
      "message": "Pass boot class path to ImageSpace::LoadBootImage.\n\nWhen loading the boot image by ImageSpace, do not rely on\nthe boot class path (BCP) recorded in the primary boot image\noat file. Instead, check the BCP from image against the BCP\nprovided by the Runtime, i.e. from -Xbootclasspath:_ or the\nenvironment variable BOOTCLASSPATH. For now, allow Runtime\nto extract the BCP from the primary boot image oat file when\nwe have -Ximage:_ but no BCP.\n\nAlso pass the boot class path components down to the OatFile\nso that we can open and use the original dex files when we\ndo not have copies in the vdex files. This allows compiling\napp prebuilts when the boot dex files are uncompressed and\naligned in the original jars.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: Pixel 2 XL boots.\nTest: m test-art-target-gtest\nTest: testrunner.py --target --optimizing\nTest: run-libcore-tests.sh --mode\u003ddevice --variant\u003dX64\nTest: Manually create boot image jars with uncompressed and\n      aligned dex files, compile a boot image with dex files\n      not copied into vdex files and use this boot image for\n      compiling a prebuilt services.{art,vdex,odex}.\nBug: 119868597\nChange-Id: If9411ddbecf6bb90bfa9233040931c5e833f6aee\n"
    },
    {
      "commit": "ce9ed3669d041d9eb2f5489596f133248d90f497",
      "tree": "f95fc9d6fc78119686fe91db5c2aaabd31b6abb1",
      "parents": [
        "69431d3ba1c560f0b23bd2ad6257949deb679aa7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 29 03:19:28 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Dec 06 14:12:34 2018 +0000"
      },
      "message": "Enable JIT in zygote.\n\nbug: 119800099\nTest: boot test\nChange-Id: I92dc59adeaf1202a984d363b1420ef26e53ebe84\n"
    },
    {
      "commit": "8b751c59ed5331551648309bde6a19ec833fc46e",
      "tree": "7092b4556be47a205e469c20ae30737a4ff26260",
      "parents": [
        "94d4f5fa020561a1f828828dce1edf8fb5d4ab5c"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Dec 05 12:25:31 2018 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Dec 05 12:25:31 2018 +0000"
      },
      "message": "ART: Move EnableDebugger to frameworks\n\nBug: 120485385\nTest: cts\nChange-Id: Ied6ef5e846417fa264d0f5c009780d22219d14e5\n"
    },
    {
      "commit": "c9de61cf9477e221e0dcc6470de9bf73c0559cf0",
      "tree": "db42f9c3b26d7543b7c378397debfc0595925ba6",
      "parents": [
        "763cd98161424cf19af2f113a6802f04860dcd6e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 27 17:34:31 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 27 18:01:19 2018 +0000"
      },
      "message": "Revert^2 \"Refactor code around JIT creation.\"\n\nThis reverts commit 763cd98161424cf19af2f113a6802f04860dcd6e.\n\nBug: 119800099\n\nReason for revert: Updated the DCHECKo take into account current state\nof zygote not having a thread pool.\n\nChange-Id: I1181ff85e7aebd062ee892548b80ab3de06a5ac7\n"
    },
    {
      "commit": "763cd98161424cf19af2f113a6802f04860dcd6e",
      "tree": "bfb50d986ad25030ecfde9b3a4e1ffd8983e30f6",
      "parents": [
        "7a2c7c2f7062d9fef21b72ff9c10ca8ef863eb8b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 26 18:21:45 2018 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 26 18:21:45 2018 +0000"
      },
      "message": "Revert \"Refactor code around JIT creation.\"\n\nThis reverts commit 7a2c7c2f7062d9fef21b72ff9c10ca8ef863eb8b.\n\nReason for revert: Breaks boot in debug mode\n\nBug: 119800099\nChange-Id: I6d015b04c480f76824ead936238cbf49b164b7e3\nTest: N/A\n"
    },
    {
      "commit": "7a2c7c2f7062d9fef21b72ff9c10ca8ef863eb8b",
      "tree": "909d18e31d319313a0729019258418980c810d79",
      "parents": [
        "c754cc8e1c2dbcb1331ec2bed3ea0787bdd2b5c3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 20 10:03:13 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 21 11:09:49 2018 +0000"
      },
      "message": "Refactor code around JIT creation.\n\n- Create the JIT early on.\n- Have dedicated zygote spaces, that get assign after the fork.\n- Re-parse compiler options after fork to take into account customization\n  of debug flags by the child.\n\nCurrently, we only create the thread pool in the child, so the zygote\nisn\u0027t jitting yet.\n\nBug: 119800099\nTest: test.py, device boots\nChange-Id: I591ce933ebf54a67937ab1d05206534f55ef2f65\n"
    },
    {
      "commit": "54c7da9c50ee85ade636605cd6ea18b4c2bc69fa",
      "tree": "57e1a23dcc0beba8e98841b8cf063f6153b08c9b",
      "parents": [
        "d94653399e2f9f06bbdf629f2affbf9a4fa73b8f",
        "2bb2fbd2879d0a6d9ebf7acff817079dde89b417"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Nov 16 14:21:47 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 16 14:21:47 2018 +0000"
      },
      "message": "Merge changes Idc6e518c,Ia1cc0506\n\n* changes:\n  Create SdkVersion enum, migrate users to it\n  Runtime flags only for fast/slow hiddenapi path\n"
    },
    {
      "commit": "bf86464506dce85a7b67ea1c4eb3e1f4f1d2085f",
      "tree": "92627875da9819cfafe2b6f69b2f74961da6b350",
      "parents": [
        "4c8cf12c4d7a55566054c24e3067672213502ee0",
        "2b6b3e5317c2159e97e56173fa559479f757980e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 16 13:04:52 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 16 13:04:52 2018 +0000"
      },
      "message": "Merge \"EnableDebugger: handle the case when hard RLIMIT_CORE is \u003cinf.\""
    },
    {
      "commit": "2bb2fbd2879d0a6d9ebf7acff817079dde89b417",
      "tree": "d607aa6bfb2ea55fbfd875237b37c79f3cfed5f6",
      "parents": [
        "85865697ff9fabede3d64ff64cde72727c3fc4c1"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Nov 13 18:24:26 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Nov 16 11:11:20 2018 +0000"
      },
      "message": "Create SdkVersion enum, migrate users to it\n\nCreates a new SdkVersion enum with integer codes of known\nAndroid SDK versions, together with helper functions for common\npredicates. Also converts target_sdk_version_ in Runtime to\nuint32_t and cleans up its uses.\n\nTest: m test-art\nChange-Id: Idc6e518c8675068bf952d0256686c88bb0eb833e\n"
    },
    {
      "commit": "2b6b3e5317c2159e97e56173fa559479f757980e",
      "tree": "8addc71e8a406db574017764b6cc4ed71b39bd7d",
      "parents": [
        "23d3ed8c124f239d26a583f9d096b22f7f6677d1"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Mon Nov 05 17:03:43 2018 -0800"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Thu Nov 15 13:23:59 2018 -0800"
      },
      "message": "EnableDebugger: handle the case when hard RLIMIT_CORE is \u003cinf.\n\nASan and HWASan set rlim_cur \u003d rlim_max \u003d 0 for RLIMIT_CORE.\n\nBug: 112438058\nTest: SANITIZE_TARGET\u003dhwaddress, no RLIMIT_CORE warnings in logcat\n\nChange-Id: I8839705673c371b9b393eca36c7519a1ea73d7be\n"
    },
    {
      "commit": "f50ac103426588d9f7c014ef2d2b9c766f8dc25e",
      "tree": "bac6537c3cd63cc382e24d9b94f0eb64f18ab0a4",
      "parents": [
        "b56e8353020acda1a8285daa11c69f57060cd015"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Oct 17 18:00:06 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Nov 14 16:49:40 2018 +0000"
      },
      "message": "Simplify hidden_api.h logic\n\nRefactor GetMemberAction to return a boolean whether access to a class\nmember should be denied. This also moves StrictMode consumer\nnotification into hidden_api.cc and removes notifications for toasts.\nTests are changed accordingly.\n\nTest: phone boots\nTest: m test-art\nMerged-In: I02902143de0ff91d402ba79c83f28226b1822a6f\nChange-Id: I02902143de0ff91d402ba79c83f28226b1822a6f\n(cherry picked from commit 51995f90adaa0e5047dee56d22f15e4225e70517)\n"
    },
    {
      "commit": "104883b04617a850adf11f05e57c2fd29e09c83c",
      "tree": "51d436588505a3ead506d633bdf97c9b4c934ae0",
      "parents": [
        "00e96d054e2b656d4d0f99fc141d1701af4dba23"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 09 17:12:23 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 12 15:26:21 2018 +0000"
      },
      "message": "Clean up primitive array helpers in Object.\n\nRefactor these helpers and avoid read barriers. Remove\nClass::Is{Int,Long}ArrayClass() and use the Object helpers\ninstead.\n\nRemove the AsByteSizedArray() and AsShortSizedArray()\nhelpers that essentially break the type system and rewrite\ntheir users, adding appropriate notes. {Float,Double}Array\nuses in Unsafe would have previously failed a DCHECK().\n\nTest: Additional test in 004-UnsafeTest.\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: I88b7e3df7de883f64cfc5eb437a40646f2884685\n"
    },
    {
      "commit": "c2cab4b11b95147dd9dadb3378e10a891ee64ad6",
      "tree": "8595e62d3aa3dad700c3deec7765afacc6a9b963",
      "parents": [
        "b70c999fcc3ff4d4988e0214f4d18783ff35edf7",
        "9186b182c0e0e5d57dc15a03e4f8d0f2951f3a96"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 07 10:07:29 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 07 10:07:29 2018 +0000"
      },
      "message": "Merge \"Refactor ClassLinker::FindPrimitiveClass().\""
    },
    {
      "commit": "9186b182c0e0e5d57dc15a03e4f8d0f2951f3a96",
      "tree": "e230bdce1f86d411c50ded9efc588590e98df261",
      "parents": [
        "a5175541c197e7bf9b03651ea5da4e64a2ac2d27"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 06 14:55:54 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 07 10:06:43 2018 +0000"
      },
      "message": "Refactor ClassLinker::FindPrimitiveClass().\n\nIntroduce ClassLinker::LookupPrimitiveClass() that never\nthrows an exception and use it to clean up callers that\nare not supposed to cause thread suspension.\n\nTest: m test-art-host-gtest\nBug: 118909457\nChange-Id: Ibfee8b7991c4a0d1fa636c85f14437c9865d1658\n"
    },
    {
      "commit": "aa31f4944936cabb8cc307890de9fa54ceda6de8",
      "tree": "7485bb1d985244ca54cba25f56585f0ac4e30039",
      "parents": [
        "ae5d77d323c8456343e30571c0f67e40b15c7af1"
      ],
      "author": {
        "name": "Charles Munger",
        "email": "clm@google.com",
        "time": "Thu Nov 01 18:57:38 2018 +0000"
      },
      "committer": {
        "name": "Charles Munger",
        "email": "clm@google.com",
        "time": "Mon Nov 05 11:01:51 2018 -0800"
      },
      "message": "Revert^4 \"Implement LockSupport.park with a futex\"\n\nThis reverts commit 13f4d9631db981ae5008073db4df9c6a934fc9f3.\n\nReason for revert: Fixing ThreadStress timeouts.\n\nChange-Id: I9f8c3f56eccfadc3751049731e8d427873cc7841\n"
    },
    {
      "commit": "63a2365ee9920208b6e53347cccb085295a6471a",
      "tree": "52bc2f5043c7c8cccb7cc8cfdf5c6bf50f7b5189",
      "parents": [
        "ca3c63a9ed2257718dc67248696965cf1835512d",
        "7f226244e8adbda8019024bcf010ef3f0a8a3b0c"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Nov 02 10:17:28 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 02 10:17:28 2018 +0000"
      },
      "message": "Merge \"Remove VMRuntime.hasUsedHiddenApi()\""
    },
    {
      "commit": "7f226244e8adbda8019024bcf010ef3f0a8a3b0c",
      "tree": "a79f4d38979f0885d31bb0b7a201f02b8d11dc0e",
      "parents": [
        "0708fc0c096fb4126c2029d0172830cf0c8e159b"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Nov 01 18:36:46 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Nov 01 18:38:13 2018 +0000"
      },
      "message": "Remove VMRuntime.hasUsedHiddenApi()\n\nNot needed with removal of the UI toast.\n\nTest: m, phone boots\nChange-Id: I8a99b264b66d8e9f2096b5531ad4294012a7b010\n"
    },
    {
      "commit": "13f4d9631db981ae5008073db4df9c6a934fc9f3",
      "tree": "928c363c96854ac8db404a0ddd11adf8c66ea1c0",
      "parents": [
        "4e7077d795ab94d40c76ae7b9245fd5dcbb7716c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 01 11:34:29 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 01 11:34:29 2018 +0000"
      },
      "message": "Revert \"Revert^2 \"Implement LockSupport.park with a futex\"\"\n\nThis reverts commit 4e7077d795ab94d40c76ae7b9245fd5dcbb7716c.\n\nBug: 28845097\n\nReason for revert: ThreadStress flakes.\n\nChange-Id: Ibe29c2f679a642ccffea51c2fcf7dfaaed2dc305\n"
    },
    {
      "commit": "4e7077d795ab94d40c76ae7b9245fd5dcbb7716c",
      "tree": "df6ab853427ab64353933b50637bffb584938274",
      "parents": [
        "97d40f9c7b1157783d09861ce76d3a0b3da73cbe"
      ],
      "author": {
        "name": "Charles Munger",
        "email": "clm@google.com",
        "time": "Thu Oct 18 13:34:39 2018 -0700"
      },
      "committer": {
        "name": "Charles Munger",
        "email": "clm@google.com",
        "time": "Wed Oct 31 17:19:19 2018 +0000"
      },
      "message": "Revert^2 \"Implement LockSupport.park with a futex\"\n\nReason for revert: Fixed unused-argument compile error on mac\n\nThis resolves a contention issue where a thread unparking a higher\npriority thread would see a bunch of repeated wakeups. It also resolves\nan issue where LockSupport.parkUntil would not return on time if the\nsystem clock changed while the thread was parked.\n\nBug: 28845097\nTested: ./test.py -b --host --verbose -j20\nChange-Id: Iff71a0e23d0a9fbe072a092bec40a39192c195eb\n"
    },
    {
      "commit": "97d40f9c7b1157783d09861ce76d3a0b3da73cbe",
      "tree": "928c363c96854ac8db404a0ddd11adf8c66ea1c0",
      "parents": [
        "41271dd3dfc2ff75702ae3b709eb8afa9464a49f",
        "5485371cf3894d71e0d0fe2bdf639fde478012ca"
      ],
      "author": {
        "name": "Filip Pavlis",
        "email": "pavlis@google.com",
        "time": "Wed Oct 31 16:16:08 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 31 16:16:08 2018 +0000"
      },
      "message": "Merge \"Revert \"Implement LockSupport.park with a futex\"\""
    },
    {
      "commit": "5485371cf3894d71e0d0fe2bdf639fde478012ca",
      "tree": "3b8f742544db21dbd4994ec204c19eaf613a9b10",
      "parents": [
        "5e1a75c1d12ea47bdc0f73d378b5fa25326829f4"
      ],
      "author": {
        "name": "Filip Pavlis",
        "email": "pavlis@google.com",
        "time": "Wed Oct 31 12:43:13 2018 +0000"
      },
      "committer": {
        "name": "Filip Pavlis",
        "email": "pavlis@google.com",
        "time": "Wed Oct 31 12:43:13 2018 +0000"
      },
      "message": "Revert \"Implement LockSupport.park with a futex\"\n\nThis reverts commit 5e1a75c1d12ea47bdc0f73d378b5fa25326829f4.\n\nReason for revert: This CL unfortunately breaks:\nsdk_gphone_x86-sdk_addon_mac\nsdk_mac\n\nFollowing error:\nart/runtime/thread.cc:370:4: warning: \"LockSupport.park/unpark implemented as noops without FUTEX support.\" [-W#warnings]\n#warning \"LockSupport.park/unpark implemented as noops without FUTEX support.\"\n^\nart/runtime/thread.cc:295:24: error: unused parameter \u0027is_absolute\u0027 [-Werror,-Wunused-parameter]\nvoid Thread::Park(bool is_absolute, int64_t time) {\n^\nart/runtime/thread.cc:295:45: error: unused parameter \u0027time\u0027 [-Werror,-Wunused-parameter]\nvoid Thread::Park(bool is_absolute, int64_t time) {\n^\n1 warning and 2 errors generated.\n\nChange-Id: Iae41cce7cd5fc38f605173519931491a019f7c80\n"
    },
    {
      "commit": "ad28f5e02b3adc8ee7fec2f323eeb42bc96d596a",
      "tree": "53722e481afd203846ec45bf3d65ef3e32b5d419",
      "parents": [
        "fe79b5939696c87f66d9d39540fe0f38369c5158"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Oct 17 09:08:17 2018 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Oct 31 06:32:12 2018 +0000"
      },
      "message": "ART: add hook for framework to set SELinux context\n\nAdds a new zygote hook for system server, nativePostForkSystemServer,\nso the process can transition between the system_server_startup and\nsystem_server SELinux domains.\n\nMemory resources for the JIT are allocated in the hook as setting the\nSELinux domain with setcon() requires that the process is still single\nthreaded.\n\nBug: 66095511\nTest: device boots\nTest: art/test.py --host --64\nChange-Id: Ic840634c5c59906b8d344c2edffafeb9b13a409f\n"
    },
    {
      "commit": "fe79b5939696c87f66d9d39540fe0f38369c5158",
      "tree": "7b44d07b2fceec22534c7441ba04133f26b7363f",
      "parents": [
        "ed0d82201a3853b31588fa1f9e0c902e3f09902e",
        "5e1a75c1d12ea47bdc0f73d378b5fa25326829f4"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 31 02:54:08 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 31 02:54:08 2018 +0000"
      },
      "message": "Merge \"Implement LockSupport.park with a futex\""
    },
    {
      "commit": "fd63bbf88147e19c32c21678b90d8cc450496fc3",
      "tree": "d78f12fbfd72bf29b16e13a7f3fabfca5f1d3f88",
      "parents": [
        "0ee508253edcdee41a80fcbf1511234ca176233d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Oct 29 12:55:35 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Oct 30 10:57:42 2018 -0700"
      },
      "message": "ART: Add string-alloc-inl.h\n\nIn an effort to reduce the (transitive) proliferation of heap-inl\nadd a specific inline header for string allocation.\n\nBug: 118385392\nTest: mmma art\nTest: m test-art-host\nChange-Id: I68d3bcf2b3615d12231010940d0a24a1dbc03826\n"
    },
    {
      "commit": "5e1a75c1d12ea47bdc0f73d378b5fa25326829f4",
      "tree": "3a69bbfecee2527a0584cb7bc30fbf434f20c47d",
      "parents": [
        "f4fd65e393fe60f17e22ee7823f8dce4594c053d"
      ],
      "author": {
        "name": "Charles Munger",
        "email": "clm@google.com",
        "time": "Thu Oct 18 13:34:39 2018 -0700"
      },
      "committer": {
        "name": "Charles Munger",
        "email": "clm@google.com",
        "time": "Tue Oct 30 09:43:57 2018 -0700"
      },
      "message": "Implement LockSupport.park with a futex\n\nThis resolves a contention issue where a thread unparking a higher\npriority thread would see a bunch of repeated wakeups. It also resolves\nan issue where LockSupport.parkUntil would not return on time if the\nsystem clock changed while the thread was parked.\n\nBug: 28845097\nTested: ./test.py -b --host --verbose -j20\nChange-Id: I75458afc481b7a5860e67f8a421109308ce5ebc6\n"
    },
    {
      "commit": "0ee508253edcdee41a80fcbf1511234ca176233d",
      "tree": "4c1471226b650c30a21aabb525392c2cebfa337a",
      "parents": [
        "eead626e0567d11ed0402e9586a99ca4a1d023eb",
        "1130659b0d948806e7ca974ead8ad2bcc1951d13"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 30 15:27:28 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 30 15:27:28 2018 +0000"
      },
      "message": "Merge \"Refactor MemMap::MapAnonymous().\""
    },
    {
      "commit": "1130659b0d948806e7ca974ead8ad2bcc1951d13",
      "tree": "9046a016fafc7f9bff4e34732aa8f89ed81ad46c",
      "parents": [
        "1c1442a498fd3f9ddc5d2bb04baa7ccd2d3539c4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Oct 26 14:22:59 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 30 10:20:32 2018 +0000"
      },
      "message": "Refactor MemMap::MapAnonymous().\n\nRemove the address argument from the shortcut overload and\nintroduce one more shortcut overload. This makes it easier\nto find all uses where we pass non-null address hint.\n\nRemove `requested_begin` parameter from some constructors\nwhere we were always passing null. Rewrite some tests to\nuse the reservation API.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 118408378\nChange-Id: Ibbbb96667e7cc11cf7fea119892463d8dbc9a8b5\n"
    },
    {
      "commit": "e8d4509d83929244507eec499c99b0374bcb7555",
      "tree": "44ce73248a37de06e19009d4c84d3c637de976d8",
      "parents": [
        "bec5b298422f681d67f8deee08a2f85c828e3f11",
        "e15b9b189a0898b5554002d9c86da7c17f2eb7ae"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Oct 29 23:29:09 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 29 23:29:09 2018 +0000"
      },
      "message": "Merge \"ART: Do some include-what-you-use\""
    },
    {
      "commit": "e15b9b189a0898b5554002d9c86da7c17f2eb7ae",
      "tree": "b9d484bb6aed03f8d1435d52c6ae1cfbf3702368",
      "parents": [
        "72d3493a6b9fde2fc3c1abb9ee6afff4451ec291"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Oct 29 12:54:27 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Oct 29 13:05:18 2018 -0700"
      },
      "message": "ART: Do some include-what-you-use\n\nHelp with transitive includes. In preparation for new\nspecialized headers reducing transitivity.\n\nBug: 118385392\nTest: mmma art\nChange-Id: Ie79afda4e09191428c2b4c2f20a7e3352c01c1e9\n"
    },
    {
      "commit": "cb4f09e050ec2ef98b7b0b359f36fbb9d36a6e10",
      "tree": "1057f31fea9bb05eaa35bc27f9c2b08b55043f80",
      "parents": [
        "ce2a00daa92670a4fc01ef59fdbc3769a846f69c"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sun Oct 21 08:45:22 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Oct 29 14:52:09 2018 +0000"
      },
      "message": "Move some fast invoke checks to CanUseMterp\n\nThis speeds up arm64 golem interpreter benchmarks by 1.5%.\n\nTest: test.py -b -r --interpreter --host\nChange-Id: Ia9d7c885cd488de56c6b726373072070b509bdf1\n"
    },
    {
      "commit": "70f5fd0770adbef645950895309a2a63c3bde7c0",
      "tree": "d9794484e83858cf7e33551eb8a108e07f46b18c",
      "parents": [
        "52ecb65ae9e1ad6fe7f58beecc88cdc08e08f0c4"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Oct 24 19:58:37 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 26 08:44:12 2018 -0700"
      },
      "message": "ART: Add class-alloc-inl.h\n\nIn an effort to reduce the (transitive) proliferation of heap-inl\nadd a specific inline header for class instance allocation.\n\nBug: 118385392\nTest: mmma art\nTest: m test-art-host\nChange-Id: I32529f0221a836452c58687330a91ac0d5fde162\n"
    },
    {
      "commit": "52ecb65ae9e1ad6fe7f58beecc88cdc08e08f0c4",
      "tree": "7a8ee84cad0df34ab33bdcb0115fc0c79d6c83be",
      "parents": [
        "c2099b0b0c052dd61137b9cf5f9f8b30bab1a7a8"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Oct 24 15:18:21 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 26 08:44:12 2018 -0700"
      },
      "message": "ART: Add object-array-alloc-inl.h\n\nIn an effort to reduce the (transitive) proliferation of heap-inl\nadd a specific inline header for object array allocation.\n\nBug: 118385392\nTest: mmma art\nTest: m test-art-host\nChange-Id: I0d7c40ed53708d4c759190961b40f0cac3fe696d\n"
    },
    {
      "commit": "8e0f04319c7c3ddee60c505376b31768533b0dd5",
      "tree": "b9d215de61b3a16895695e52ff4ee5ecbd985f14",
      "parents": [
        "88dbad33ae92167a89a5d5469f39f41624535dbf"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Oct 24 13:38:03 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 25 09:52:37 2018 -0700"
      },
      "message": "ART: Add array-alloc-inl.h\n\nIn an effort to reduce the (transitive) proliferation of heap-inl\nadd a specific inline header for array allocation.\n\nBug: 118385392\nTest: mmma art\nTest: m test-art-host\nChange-Id: Id3378f40c52fa7ef4297af08cb7509e0c04b94d1\n"
    },
    {
      "commit": "88dbad33ae92167a89a5d5469f39f41624535dbf",
      "tree": "b3b0c864c12c246117143954f16df054309852c6",
      "parents": [
        "c58dca3941459b4375a53925f3471373584eab5e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jun 26 19:54:12 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 25 09:52:28 2018 -0700"
      },
      "message": "ART: Do some include-what-you-use\n\nHelp with transitive includes. In preparation for new\nspecialized headers reducing transitivity.\n\nBug: 118385392\nTest: mmma art\nChange-Id: Ib465ecceec3331ea81588fb4a43eb65e766b6904\n"
    },
    {
      "commit": "98ea9d9d82ab078ca10fa7f8e02eddda94cf1d98",
      "tree": "a848b7e41ff227a2d3d4d6795ec11089f39cb6ca",
      "parents": [
        "02338775e33b553be51d44ff60bb1ef8e527bd94"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 19 14:06:15 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Oct 23 15:19:55 2018 -0700"
      },
      "message": "ART: Refactor for bugprone-argument-comment\n\nHandles runtime.\n\nBug: 116054210\nTest: WITH_TIDY\u003d1 mmma art\nChange-Id: Ibc0d5086809d647f0ce4df5452eb84442d27ecf0\n"
    },
    {
      "commit": "dfcd82c09e8ce4562ed39e006d4b1c8163b4e25e",
      "tree": "d9bfd3e043a95b3c8e302769cef23c13a89df3c5",
      "parents": [
        "4f570a43146c1456071f2ffe6590ab96e723051a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Oct 16 20:22:37 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 19 13:06:33 2018 -0700"
      },
      "message": "ART: Fix android-cloexec warnings\n\nUse the DupCloexec helper wherever possible. Add O_CLOEXEC to open\nand fopen calls.\n\nBug: 32619234\nTest: WITH_TIDY\u003d1 mmma art\nChange-Id: I0afb1beea53ab8f68ab85d1762aff999903060fe\n"
    },
    {
      "commit": "afaf7f8198fe5ffc054278da6800f81dd83f272c",
      "tree": "3ebdec9fca813351d178709743121fa66815a7a0",
      "parents": [
        "6ca8ec7809f87ccac8d9d66d267f2379bdfdfe66"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Oct 16 11:32:38 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 18 08:20:09 2018 -0700"
      },
      "message": "ART: Enable bugprone-unused-return-value\n\nEnable bugprone-unused-return-value as an error. This is on top of\nthe compiler warning for attribute((warn_unused)).\n\nMark the current occurrences (all unique_ptr.release()) with NOLINT\nto signal that we know what we\u0027re doing.\n\nBug: 32619234\nBug: 117926937\nTest: WITH_TIDY\u003d1 mmma art\nChange-Id: I36659722335eef36acfa5845289104257a393874\n"
    },
    {
      "commit": "8db807252e1d4d0bab7785be231e20a1e5fd8e74",
      "tree": "b3ab6a96ddc9ef3e0dfbbc2422321f73ef50c4c9",
      "parents": [
        "e7019db7f0dce1bbad836396710c792fd39593fc",
        "78baed5ec51a6e2d113e8b29aafa5c6203b46845"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Oct 15 08:25:50 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 15 08:25:50 2018 +0000"
      },
      "message": "Merge \"ART: Use reinterpret_cast{32,64}\u003c\u003e when appropriate.\""
    },
    {
      "commit": "78baed5ec51a6e2d113e8b29aafa5c6203b46845",
      "tree": "57ca544020f309e3529e33300ad4867ca4579c1e",
      "parents": [
        "a48eb7e0690187618d2824a7d9b5601e7f5cdf80"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Oct 11 10:44:58 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Oct 12 17:53:50 2018 +0100"
      },
      "message": "ART: Use reinterpret_cast{32,64}\u003c\u003e when appropriate.\n\nAnd fix UnstartedRuntime checking for null arguments in all\nfunctions where we now use reinterpret_cast32\u003c\u003e.\n\nThis is a follow-up to\n    https://android-review.googlesource.com/783607 .\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: Pixel 2 XL boots.\nTest: m test-art-target-gtest\nTest: testrunner.py --target --optimizing\nBug: 117427174\nChange-Id: I58f8ad59f70e3fbb1d06aef419cd26555706fa65\n"
    },
    {
      "commit": "08dfdf96f7885f92821fe34e8a45f1930fcb4e82",
      "tree": "e463f6a5f0a9cbbf0c8fb47edf6e86155bd3d1f9",
      "parents": [
        "1f0133bc00f96316224a7547bbe4ecc6b406c46e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Oct 09 10:40:25 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Oct 09 11:24:22 2018 -0700"
      },
      "message": "ART: Add VMRuntime.hasBootImageSpaces implementation\n\nExpose to the system whether ART is using a boot image.\n\nTest: m\nTest: system boots\nChange-Id: I087c269dd1e95eeeab5db4250133f9c61e9399c7\n"
    },
    {
      "commit": "62741139ea636682568237417c3bda84dfd1606b",
      "tree": "1f28174b81ccc6f271dccfe3bae9b0f7e59b38a1",
      "parents": [
        "334c154f9b4ba288a1fec54fef98fcf71223bae6",
        "912f36c954a91bdc7d9801a111ba089ec2a23681"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Sep 27 14:34:51 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 27 14:34:51 2018 +0000"
      },
      "message": "Merge \"Add small thread-local cache for use by the interpreter.\""
    },
    {
      "commit": "912f36c954a91bdc7d9801a111ba089ec2a23681",
      "tree": "87e576e86867140c478d6959ce20a261daaad60a",
      "parents": [
        "26f048f48cdb1e884aab2b6fddf26d58346d29ad"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sat Sep 08 12:22:58 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Sep 27 15:16:09 2018 +0100"
      },
      "message": "Add small thread-local cache for use by the interpreter.\n\nSmall (one page) cache which can be used on the hottest paths\nin the interpreter and which does not require synchronisation.\nThis CL adds the code but it does not use it for anything yet.\n\nTest: test-art-host-gtest\nChange-Id: I41d4e7a86a0f62f7a4efc165b8934232b4e766c7\n"
    },
    {
      "commit": "c55bb390d88b8eb62a50932f7f9b47c2a3733f16",
      "tree": "ec2e74f3f8404dffcb9bfde4e7ffa3416a35543d",
      "parents": [
        "89468aeaa6a67ae4025b30d427391186306d6522"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 21 00:02:02 2018 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 20 18:37:12 2018 -0700"
      },
      "message": "Revert^2 \"ART: Refactor typedef to using\"\n\nThis reverts commit ee07743e03042c2ca36e0c9513847a9e7d2509f1.\n\nReason for revert: fixed attributes.\n\nBug: 32619234\nTest: m test-art-host\nTest: m test-art-target-gtest-unstarted_runtime_test\nChange-Id: I6f0a775adfdf6ecd132b470f7c5446e949872e20\n"
    },
    {
      "commit": "ee07743e03042c2ca36e0c9513847a9e7d2509f1",
      "tree": "66867d7443a3798f6d882ef2715ddeb7baf3e771",
      "parents": [
        "9a20ff06f7ccee08a742c315ec6d351ab56ba1cd"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 20 15:05:17 2018 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 20 15:05:17 2018 +0000"
      },
      "message": "Revert \"ART: Refactor typedef to using\"\n\nThis reverts commit 9a20ff06f7ccee08a742c315ec6d351ab56ba1cd.\n\nReason for revert: Attributes on the wrong side.\n\nBug: 32619234\nChange-Id: I8fd2abef619b22c02ccfbf5ae629339f1a60918b\n"
    },
    {
      "commit": "9a20ff06f7ccee08a742c315ec6d351ab56ba1cd",
      "tree": "7e55557e118eb5fffe03ad3456e00d8469a36232",
      "parents": [
        "70dfb6983492aff1c52cc1b52044258aef51f47f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 19 10:58:18 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 19 21:56:32 2018 -0700"
      },
      "message": "ART: Refactor typedef to using\n\nAdd clang-tidy\u0027s modernize-use-using.\n\nBug: 32619234\nTest: WITH_TIDY\u003d1 mmma art\nChange-Id: If50d37b5152af4270784e3cde7951292a9e19033\n"
    },
    {
      "commit": "fa6a1b0a1d9d186a0ad9bb413a4e49f1ffd187d8",
      "tree": "6d3bef945030868d7e78162dc3f4f35a07ce410a",
      "parents": [
        "a0878aa9f4f4102e56a6381b28a8d7c38dec80b9"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 07 08:11:55 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 07 09:13:50 2018 -0700"
      },
      "message": "ART: Continue adding override annotations\n\nUse Clang-tidy\u0027s modernize-use-override to add more annotations. Ignore\ninferred annotations on destructors.\n\nBug: 32619234\nTest: mmma art\nChange-Id: Ic432c928e398d44df9171e42db04ee19946e6887\n"
    },
    {
      "commit": "bbc6e7edb5fca4a61ac53dd9bce79cb4f0bb3403",
      "tree": "0fbce767bc383358cf4cd65aafc74140e1850982",
      "parents": [
        "19379b58bd433da91230e4fe6cd96e7416d16adc"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Aug 24 16:58:47 2018 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Aug 28 11:06:07 2018 +0100"
      },
      "message": "Use \u0027final\u0027 and \u0027override\u0027 specifiers directly in ART.\n\nRemove all uses of macros \u0027FINAL\u0027 and \u0027OVERRIDE\u0027 and replace them with\n\u0027final\u0027 and \u0027override\u0027 specifiers. Remove all definitions of these\nmacros as well, which were located in these files:\n- libartbase/base/macros.h\n- test/913-heaps/heaps.cc\n- test/ti-agent/ti_macros.h\n\nART is now using C++14; the \u0027final\u0027 and \u0027override\u0027 specifiers have\nbeen introduced in C++11.\n\nTest: mmma art\nChange-Id: I256c7758155a71a2940ef2574925a44076feeebf\n"
    },
    {
      "commit": "f6985bd84b27b25e2c2ae1b865a4f28a0ccd578b",
      "tree": "5ec94a773e2c7e19842b1f2de02baf4343aff6c9",
      "parents": [
        "19759b28bc9dad1581c207d76227eb74fc8eebcb"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Aug 24 09:02:28 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Aug 24 09:40:56 2018 +0100"
      },
      "message": "Add an overload for MemMap::MapAnonymous().\n\nAdd an overload that does not take `reuse` or `use_ashmem`\nparameters but uses default values (`reuse \u003d false` and\n`use_ashmem \u003d true`) to simplify callers.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: Iaa44f770dee7e043c3a1d6867dfb0416dec83b25\n"
    },
    {
      "commit": "c34bebf39410f5571d3d5813157b61f274d435c3",
      "tree": "73909d3b34a2908e9de44cc60c4a2ff74eabefd7",
      "parents": [
        "f345404c725330914b8313d2c1af17226c5b92ca"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Aug 16 16:12:49 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Aug 21 13:51:00 2018 +0100"
      },
      "message": "Remove unnecessary indirection from MemMap.\n\nAvoid plain MemMap pointers being passed around by changing\nthe MemMap to moveable and return MemMap objects by value.\nPreviously we could have a valid zero-size MemMap but this\nis now forbidden.\n\nMemMap::RemapAtEnd() is changed to avoid the explicit call\nto munmap(); mmap() with MAP_FIXED automatically removes\nold mappings for overlapping regions.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: Pixel 2 XL boots.\nTest: m test-art-target-gtest\nTest: testrunner.py --target --optimizing\nChange-Id: I12bd453c26a396edc20eb141bfd4dad20923f170\n"
    },
    {
      "commit": "0549663b1cdf8c6386685c7c2e3d3ec27c8c0bc6",
      "tree": "65e68a8114afee103e98016dbe1bd6c402a698a6",
      "parents": [
        "017d63c144081b8977d63ecf3f67a7677ba77593"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Aug 03 12:52:21 2018 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Aug 15 18:47:29 2018 +0100"
      },
      "message": "Rename Thread native methods to match OpenJDK 8u121-b13\n\nRenames the following native methods:\n* nativeSetPriority -\u003e setPriority0\n* nativeSetName -\u003e setNativeName\n* nativeInterrupt -\u003e interrupt0\n\nTested using:\n  make checkbuild, flash and CtsLibcoreTestCases\n  art/test/testrunner/run_build_test_target.py -j80 art-test\n\nBug: 80180276\nTest: see above\nChange-Id: I83ac240dfc108a2bf7f6c33895c9046b74707072\n"
    },
    {
      "commit": "2ae301f49c350dc02a0dabee6cb8c3a4e9dc481e",
      "tree": "f94323b83faf060c8758b82ba1f566709962ab5f",
      "parents": [
        "4075f08db80c7c0475f583caae2aa625d53e1a48",
        "f1d82dd087e0c4e3027fdee089aeb44cef805663"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Tue Aug 07 16:51:27 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 07 16:51:27 2018 +0000"
      },
      "message": "Merge \"Merge Android Pie into master\""
    },
    {
      "commit": "4b22b34c698db8aa59343d0a5af89fc737532bce",
      "tree": "985c0e28dcdf5a497737690b50d31c4eb7bbda85",
      "parents": [
        "9e53f5f19167848d043f91e6d20436e9b568b55a"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Thu Aug 02 14:43:21 2018 -0700"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Thu Aug 02 14:43:21 2018 -0700"
      },
      "message": "Modernize codebase by replacing NULL with nullptr\n\nFixes -Wzero-as-null-pointer-constant warning.\n\nTest: m\nBug: 68236239\nChange-Id: Id869744db54b5b366454a5e13b467ac1f4df2845\n"
    },
    {
      "commit": "ac42ccb056fb7c7d4c2d96558103903a70779e55",
      "tree": "938dfa45c51cdb935d56d7385e1212e805089914",
      "parents": [
        "0470f2e58a96958357afb5e071ec473b2b1ba25f",
        "b07dcdba37e9a5652b7754a6bd9c3538880d6668"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jul 20 06:18:37 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jul 20 06:18:37 2018 -0700"
      },
      "message": "Merge changes I87f2999f,I8af0e845\nam: b07dcdba37\n\nChange-Id: Ic63a95b96bea044ffeb9262aa2ad30f867876219\n"
    },
    {
      "commit": "d93e374e273dd45f5d829399da1d4201bf46057e",
      "tree": "280dc72b2aec4696bbc35ad39ca8d3479107380e",
      "parents": [
        "7f7f9d3991f3a55da8934a3b72890d4776373598"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jul 18 10:58:13 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 19 16:04:38 2018 +0100"
      },
      "message": "ObjPtr\u003c\u003e-ify ArtMethod and mirror::Method.\n\nAnd clean up some forgotten things after old CLs.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 31113334\nChange-Id: I8af0e845c24d674d0efab21d80c29949b1cc0593\n"
    },
    {
      "commit": "3c57071d0208427fbb7fcf15f48799de98db07dc",
      "tree": "8a0d82684e90e5147e2a027b76c8165ce341ef5e",
      "parents": [
        "cdf608783033d24b30064195751a5d276d020d90",
        "4e2000ac8f444f92df6633b57fa3e69203f4c3b7"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 28 19:59:47 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jun 28 19:59:47 2018 -0700"
      },
      "message": "Merge \"ART: Improve Constructor.newInstance\"\nam: 4e2000ac8f\n\nChange-Id: I80859166cda55361bac49338be172fc1a8a73878\n"
    },
    {
      "commit": "8ad7a3b4f7875546f471f8955967da17c9728a00",
      "tree": "2a5dbaf6752357b537fe956ec18f09ab3d8ee79f",
      "parents": [
        "d20a4d76c33cd6e609ad6b1b3cde09fdcbdde05c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon May 22 16:08:52 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 28 14:33:23 2018 -0700"
      },
      "message": "ART: Improve Constructor.newInstance\n\nSpecial-case InvokeMethod to be constructor-specific so as to avoid\nunnecessary and duplicate checks. Refactor for some code sharing.\n\nReduces Constructor.newInstance for Integer by approximately 15%\n(ten runs of 10000000 invocations, reporting mean per invocation,\nhost x86-64 optimizing, perf stat numbers are for complete run\nand do not exclude, for example, setup and prologue GC):\n\n                   Before      After\n\n(perf stat)\nInstructions       2503.4      2149.8\nBranches           450.8       384.4\nBranch-misses      1.83        0.85\n\n(time)\nTime (ns)          335.17      278.58\n\nBug: 20269715\nTest: mmma art\nTest: m test-art-host\nChange-Id: Id105e542a19d72efaace60ad39fcef5e42dde006\n"
    },
    {
      "commit": "0f6438c36a471bec779b8b72521ffd171bbdbcbf",
      "tree": "66bda25a0ceceb299f62c04c6f5f36feb16b21fa",
      "parents": [
        "6c7d57af56fc640d7a76a8db4d7b72074474f777",
        "f35ac440724eafc5e3fd990e90ca746dfa757857"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 25 11:21:52 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jun 25 11:21:52 2018 -0700"
      },
      "message": "Merge \"Refactor Object CAS with and without write barrier\"\nam: f35ac44072\n\nChange-Id: I91859d899280b60e0da8e77cebf8f27c8f298bab\n"
    },
    {
      "commit": "a9746b90635f26ebc2340f01e6d3da7700593dbc",
      "tree": "4d391782c8805a22500bd8306fe8a90d16d6702f",
      "parents": [
        "cca7cb9ffa56d8ab8fd0c5997c8bfd965d7426c1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jun 22 10:25:40 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 25 08:34:54 2018 -0700"
      },
      "message": "Refactor Object CAS with and without write barrier\n\nRemoves duplicated logic.\n\nTest: test-art-host\n\nChange-Id: I1f5df417c59312f224e0a448c7bd6358912bba07\n"
    },
    {
      "commit": "e88380522787c7f44129d46b9430db0f2d43fc52",
      "tree": "bc66056f06934be65cf2430fcbf68c399bb52e8b",
      "parents": [
        "c4470e0ded294df7e6728b8c7cb9cff78c42b68a",
        "4f0e0b8a4161ec9217b0b3cbca5fa6d3a289cc6a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jun 19 16:01:54 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jun 19 16:01:54 2018 -0700"
      },
      "message": "Merge \"Refactor CasField32\"\nam: 4f0e0b8a41\n\nChange-Id: I334d8397090a4ebe5214eca785a076a44735878b\n"
    },
    {
      "commit": "42c2e503f0fe3c6ffb6eb851efd4bcb27e4189d5",
      "tree": "d17d9b8dfc17d7a00eeaf992fcd779d3a394d387",
      "parents": [
        "d8d3adcb2ab08725fcb9477887fb462748a4c6bf"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jun 19 12:30:56 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jun 19 12:37:55 2018 -0700"
      },
      "message": "Refactor CasField32\n\nRemove excessive copy paste and add arguments to cover different\ntypes of CAS operations.\n\nTest: test-art-host\n\nChange-Id: I3f58a5f84156aa0491b9e5145f3891f16217e05c\n"
    },
    {
      "commit": "dff360005477e35edaeaf147fd381cc6819fcf3d",
      "tree": "f9533ad32c92c8f4bcff855eb8e36aa702b5af22",
      "parents": [
        "a28919e3e9df681e300db75025661b24f47fea17",
        "3ba43965ee5f9538dc38f1954c7551d245e6fccf"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 04 16:35:01 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jun 04 16:35:01 2018 -0700"
      },
      "message": "Merge \"Revert \"Revert \"Move runtime/ to ClassAccessor\"\"\" am: 6ed28cb9e6\nam: 3ba43965ee\n\nChange-Id: I82956abbb60fee7513d69ccbed994789294ee077\n"
    },
    {
      "commit": "a28919e3e9df681e300db75025661b24f47fea17",
      "tree": "808d8b050000cddce5d261114b4aee9cc1928f6f",
      "parents": [
        "e9726f0c4bd3a09f2155c1dc489031e3f63e425a",
        "314f0b380f2f931b7f2b986240c1bf53be2f6bad"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Jun 04 16:30:28 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jun 04 16:30:28 2018 -0700"
      },
      "message": "Merge \"Remove unused native implementation of Object.wait()\" am: 3f89c2ddca\nam: 314f0b380f\n\nChange-Id: I337680369560598b54c6d1e9cb42d2ac112fa435\n"
    },
    {
      "commit": "6ed28cb9e6a79230d567dbadc0e0e278943b93d1",
      "tree": "c5e07041722cf9ab3bfb1879691ca072bb670950",
      "parents": [
        "3f89c2ddca49ee28f738055e2856ad9fdc92b956",
        "1f1cb9f2f0945dbcf6b79d0795b035233dfd9131"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 04 21:25:15 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 04 21:25:15 2018 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Move runtime/ to ClassAccessor\"\"\""
    },
    {
      "commit": "1f1cb9f2f0945dbcf6b79d0795b035233dfd9131",
      "tree": "fc5f72ef884e0eaa92f515a90cfd997b0938208a",
      "parents": [
        "9ddef18ae95859a985e7a0de7e22999fcbc28e07"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 04 09:22:46 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 04 20:41:12 2018 +0000"
      },
      "message": "Revert \"Revert \"Move runtime/ to ClassAccessor\"\"\n\nFixed misplaced UnhideAccessFlags to be outside of a conditional\nthat the code item is null / not deduped. This fixes an issue\nwhere these methods would not have had their access flags restored.\n\nBug: 77709234\nBug: 79758018\nBug: 91962648\n\nThis reverts commit cc7e20f9ec7b4a7a57f7196e5e8be67a727f21d3.\n\nTest: test-art-host\nTest: atest FrameworksUiServicesTests\nTest: atest CtsInlineMockingTestCases\n\nChange-Id: I7e5712cdcccef81e19ce81d26743c517b0b8a67d\n"
    },
    {
      "commit": "3f89c2ddca49ee28f738055e2856ad9fdc92b956",
      "tree": "d652798cab0573be44e699a9f17c07434e610945",
      "parents": [
        "37ee471e8245f8ab643cb123cbb59a475d16a14d",
        "03004e66495ba4dff81c1d49522b79e95a829af7"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jun 04 19:49:54 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 04 19:49:54 2018 +0000"
      },
      "message": "Merge \"Remove unused native implementation of Object.wait()\""
    },
    {
      "commit": "e9726f0c4bd3a09f2155c1dc489031e3f63e425a",
      "tree": "9d7c3c1f8f5674a543e2a4d11f49f7662874e5fb",
      "parents": [
        "b44cae3df535edc9e661fad1943278e7dbc5b979",
        "c10b73bdb59a403e4335f94d13a2b3a61a9c65ee"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jun 04 11:40:13 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jun 04 11:40:13 2018 -0700"
      },
      "message": "Merge \"Refactor String resolution.\" am: 37ee471e82\nam: c10b73bdb5\n\nChange-Id: Ib35cd1b8f5b862eb706a9a9552ffdaf7e3fd2569\n"
    },
    {
      "commit": "406555ad2a0b590699c104339db86f56c2fcbc2a",
      "tree": "789e609d81eca91c3484123b9846dfbe0828aa61",
      "parents": [
        "5b8b222c7a1059c0fe630377b4f40b96b0d1b954",
        "da745da72f2039afa1fd555d7640837363c2c70e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jun 04 11:37:56 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jun 04 11:37:56 2018 -0700"
      },
      "message": "Merge \"ObjPtr\u003c\u003e-ify array allocations.\" am: 9ddef18ae9\nam: da745da72f\n\nChange-Id: Ie8b275d860053a9cf3aa7decd2dd8313e88a781a\n"
    },
    {
      "commit": "c13154bc2c8b8fe7e4e2455c200e11244cb6df76",
      "tree": "9abf49b90510490682191353aa85f760491bd267",
      "parents": [
        "af5dc55dee5e8e613b32c116949f1ab3a43851ec",
        "6da56aa2b70b7f72e2f17460e00dcdb5acf7ee30"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Jun 04 11:35:58 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jun 04 11:35:58 2018 -0700"
      },
      "message": "Merge \"Revert \"Move runtime/ to ClassAccessor\"\" am: 5ab7d77cdc\nam: 6da56aa2b7\n\nChange-Id: I7cd201b238f50ada73fa0a32bfc2e9acc99d0435\n"
    },
    {
      "commit": "18090d118bfb04620aeef719e2d7780c26298bf8",
      "tree": "040e5195f0278c9bc846d5543c0e36771ffc5b48",
      "parents": [
        "9ddef18ae95859a985e7a0de7e22999fcbc28e07"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jun 01 16:53:12 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jun 04 17:52:35 2018 +0100"
      },
      "message": "Refactor String resolution.\n\nUse the same pattern as type resolution and avoid some\nunnecessary read barriers in the fast path. Consolidate\nnaming between ArtField and ArtMethod.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nChange-Id: Iea69129085f61f04a4add09edd0eadbb7ac9ecb2\n"
    },
    {
      "commit": "03004e66495ba4dff81c1d49522b79e95a829af7",
      "tree": "b50797c42e9555ca04a131aeaca77657c86e64d0",
      "parents": [
        "5816d63bca0a4e0522e06e044e516cdc32993c39"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed May 23 11:52:10 2018 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Jun 04 16:14:54 2018 +0100"
      },
      "message": "Remove unused native implementation of Object.wait()\n\nAs part of the process of verifying Java files against 8u121-b13 the\nObject.wait() method has been changed from a native method to a pure\nJava implementation. This removes the unused native implementation\nmethod and the supporting method in mirror::Object.\n\nUpdated the 911-get-stack-trace test to handle the two extra stack\nelements added by this change.\n\nBug: 74379469\nTest: make checkbuild, flash\nChange-Id: Ifbc4612f7d949416d8c703628fa8cafaa296c350\n"
    },
    {
      "commit": "5ab7d77cdc10f3e50c2cff21f29de5865d90cf7d",
      "tree": "34fb7def8d418d20774f7e4e72146593a8f96641",
      "parents": [
        "61ee8fe6e07595ec8e50f209e97e1502dac94510",
        "cc7e20f9ec7b4a7a57f7196e5e8be67a727f21d3"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Sat Jun 02 15:53:02 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Jun 02 15:53:02 2018 +0000"
      },
      "message": "Merge \"Revert \"Move runtime/ to ClassAccessor\"\""
    },
    {
      "commit": "cc7e20f9ec7b4a7a57f7196e5e8be67a727f21d3",
      "tree": "3aebc9078ad94f132f7a5df0813a97bbdd4c4ed9",
      "parents": [
        "2649ecf6c59a29262556aa356fbf894d49df8fe7"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Sat Jun 02 05:37:39 2018 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Sat Jun 02 15:45:36 2018 +0000"
      },
      "message": "Revert \"Move runtime/ to ClassAccessor\"\n\nSeems to cause \u0027atest CtsInlineMockingTestCases\u0027 and other tests\nto fail due to sending agents dex files with hiddenapi flags still\npresent.\n\nThis reverts commit 2649ecf6c59a29262556aa356fbf894d49df8fe7.\n\nReason for revert: Seems to be causing sysui test failures, maybe\n\nBug: 77709234\nBug: 79758018\nBug: 91962648\n\nTest: Tree-Hugger\n\nChange-Id: I2cab5d0d58808dd8beb38400d2811307f26e1021\n"
    },
    {
      "commit": "bcf175247272d0e321c8d988c3c01c123b56e36e",
      "tree": "9f65ece5ce9474aa4fcf16fbfca6278109dc9a67",
      "parents": [
        "09c5ca40635faee00f40f6ca0581dd475efd545e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jun 01 13:14:32 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jun 01 16:31:30 2018 +0100"
      },
      "message": "ObjPtr\u003c\u003e-ify array allocations.\n\nAnd remove some unnecessary calls to ObjPtr\u003c\u003e::Ptr().\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 31113334\nChange-Id: Ie313980f7f23b33b0ccea4fa8d5131d643c59080\n"
    }
  ],
  "next": "f8f6629fca7b831d2416db3b150d80a3c2e465f2"
}
