)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "f8f6629fca7b831d2416db3b150d80a3c2e465f2",
      "tree": "fec93d27b6d8963780254278363d2c1cb1391ef6",
      "parents": [
        "25916259ef4410ec2cf5e5d91e7b0f228ce14cdd",
        "61afc76d9296d97a6d9f6f54c3c7401c747c6efb"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu May 31 17:18:33 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu May 31 17:18:33 2018 -0700"
      },
      "message": "Merge \"Move runtime/ to ClassAccessor\" am: df0eef1aec\nam: 61afc76d92\n\nChange-Id: I90111046530d4152ef08c26ace96dc2a3d96c7b3\n"
    },
    {
      "commit": "df0eef1aecd7af6191444128f7e90e18faf22c7e",
      "tree": "21ed7cf6c9fdcda4905e130e05dc786342a93384",
      "parents": [
        "3ebdf7495ead52b76afdccd91c3b89264e4bf250",
        "2649ecf6c59a29262556aa356fbf894d49df8fe7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu May 31 20:38:26 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 31 20:38:26 2018 +0000"
      },
      "message": "Merge \"Move runtime/ to ClassAccessor\""
    },
    {
      "commit": "2649ecf6c59a29262556aa356fbf894d49df8fe7",
      "tree": "5534dfcb7d32be889acba07787b303c221869f82",
      "parents": [
        "65e463cf7ea91003ef030c8a819ae4596c9b820f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue May 29 14:07:52 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu May 31 11:24:30 2018 -0700"
      },
      "message": "Move runtime/ to ClassAccessor\n\nAdded more iterator helpers, added logic for dealing with hidden API\nflags.\n\nBug: 77709234\nBug: 79758018\nTest: test-art-host\n\nChange-Id: I3e6d34dd3fe61f1a3256a1cc4c74b63a6bdf514c\n"
    },
    {
      "commit": "aa01ebabe8e5fcd016c48f7c55b34335cf1d2697",
      "tree": "9e2ff85490b6cf749318141510db5b70acb1736b",
      "parents": [
        "2f670cc98105d211253c0183c8c8de15ac4aaf07",
        "3c3b1908ed2781ff410d6eec42fa07df0e21bc51"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu May 31 11:06:15 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu May 31 11:06:15 2018 -0700"
      },
      "message": "Merge \"ObjPtr\u003c\u003e-ify ClassLinker::FindClass(), fix 1 stale reference use.\" am: 1539a11150\nam: 3c3b1908ed\n\nChange-Id: Ie3c9c3532c2502146ef58bb255af811eede8cabe\n"
    },
    {
      "commit": "a8bba7d0853b372aea3ed3ea154fb2b2a23c2c9d",
      "tree": "973a89870e0cc8912401503ebab1b709a9df5ba0",
      "parents": [
        "65e463cf7ea91003ef030c8a819ae4596c9b820f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 30 15:18:48 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu May 31 09:48:59 2018 +0100"
      },
      "message": "ObjPtr\u003c\u003e-ify ClassLinker::FindClass(), fix 1 stale reference use.\n\nThread::CreateAnnotatedStackTrace() was using a stale\nreference `aste_array_class`.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 31113334\nChange-Id: I191907c0053456bb57de425aa6ccd9668df818a2\n"
    },
    {
      "commit": "3a269f058662fc6bc453697c003480e2e619777e",
      "tree": "86df78d94df596a57601321eda8ed2bff4b536f6",
      "parents": [
        "6ecf8b28ca88c80574b90fcb4cd2eb8e131cc124",
        "c40bee3187d858bf33acd48ee289513a4e6da456"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 30 06:50:44 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 30 06:50:44 2018 -0700"
      },
      "message": "Merge changes I51c462c0,If8674fc7 am: 750cf88c88\nam: c40bee3187\n\nChange-Id: I355ad8f539a047c2ac920d88c585c4a3eb6d24ea\n"
    },
    {
      "commit": "750cf88c8872983ae13259131cb2ed377e3eadff",
      "tree": "b0e35537e6ea4639e22f3467225be7b331818b86",
      "parents": [
        "08f1973a345d78a9336b7ce2bf1df82f1c2515db",
        "5924a4a73f1a2dcf83877062d67c297a9496b326"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 30 13:39:39 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 30 13:39:39 2018 +0000"
      },
      "message": "Merge changes I51c462c0,If8674fc7\n\n* changes:\n  Move String::SizeOf\u003c\u003e to string.h .\n  ObjPtr\u003c\u003e-ify RegTypeCache, fix 1 stale reference use.\n"
    },
    {
      "commit": "5924a4a73f1a2dcf83877062d67c297a9496b326",
      "tree": "3517a1809ecbdc85533e1a8c5a0a9610cdc36005",
      "parents": [
        "2cffc5d2807096c0b7a07b89f5dda6920c6429f5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 29 17:40:41 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 30 12:50:37 2018 +0100"
      },
      "message": "Move String::SizeOf\u003c\u003e to string.h .\n\nstring.h was already indirectly (through class.h) including\neverything needed for String::SizeOf\u003c\u003e, so move it to the\nstring.h and make those includes direct. Then we can change\nthe object-inl.h to include only string.h, reducing the\nnumber of indirectly included files.\n\nTest: m test-art-host-gtest\nTest: m testrunner.py --host --optimizing\nChange-Id: I51c462c034f205498c539abe6d888be9738d4a6e\n"
    },
    {
      "commit": "b907d2410751b473dea8d9e78acecd14c02c59d7",
      "tree": "a651d97ac40bcfc5a0e21262798a4e5d0ced1b50",
      "parents": [
        "fd3ba6ec55deb3aa5b96e7212959572de14f16d3",
        "b4cad762b61e1d52ec3a4537550cd80892e60820"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue May 29 03:07:00 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue May 29 03:07:00 2018 -0700"
      },
      "message": "Merge \"Rename nativeHoldsLock to holdsLock and make it work on current thread\" am: 4eb6fa0e22\nam: b4cad762b6\n\nChange-Id: Ia5e21fc613e39bd73e0b6c8525058c2a9e70d7b8\n"
    },
    {
      "commit": "4eb6fa0e22cc90419bb099f676fdd413e2c9b94e",
      "tree": "3a334847d8eb87566713ab28e785bee67b8c1709",
      "parents": [
        "aab8bc928a8eff425d5e5755fde75b1cb55998a9",
        "a4f1f6e7ea1066a0ee3a2d99eb0b2bd90474bf04"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue May 29 09:54:45 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 29 09:54:45 2018 +0000"
      },
      "message": "Merge \"Rename nativeHoldsLock to holdsLock and make it work on current thread\""
    },
    {
      "commit": "fd3ba6ec55deb3aa5b96e7212959572de14f16d3",
      "tree": "5028e22048e17e59a94c4823847246a4b4d7d461",
      "parents": [
        "3aa531ee32c89e837164def68b6d29bfcf104ad0",
        "f90cd640aea96c059edad8f634e65494dbc25433"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 29 01:37:41 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue May 29 01:37:41 2018 -0700"
      },
      "message": "Merge \"Remove static GcRoot\u003c\u003es from Field, Method, Constructor.\" am: aab8bc928a\nam: f90cd640ae\n\nChange-Id: I23a88b71eecc8c77bda6047e94264d977d7210ee\n"
    },
    {
      "commit": "a4f1f6e7ea1066a0ee3a2d99eb0b2bd90474bf04",
      "tree": "0125fa45d7ddad139eef5f8ed53f0bfc2fec118c",
      "parents": [
        "8a9fccc34fc05041c754f025ad5a1109b84adddb"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri May 25 16:10:02 2018 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri May 25 16:10:02 2018 +0100"
      },
      "message": "Rename nativeHoldsLock to holdsLock and make it work on current thread\n\nThe Java native method nativeHoldsLock has been renamed to match the\nupstream OpenJDK 8u121-b13 and changed from an instance method on Thread\nto a static method.\n\nThis makes the corresponding change to the native implementation of that\nmethod.\n\nTest: make checkbuild, flash, CtsLibcoreTestCases\nBug: 74379469\nChange-Id: Ib9dedccd3014c01c148ff824764be319c2a7a123\n"
    },
    {
      "commit": "679730e6c4be680b3e72b55a4200de9590641009",
      "tree": "ca7d0719aed00457a2c898cf2dc56300956ea875",
      "parents": [
        "6834d3414308e3d536bc685dbb3d60fe70186f23"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 25 15:06:48 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 25 15:06:48 2018 +0100"
      },
      "message": "Remove static GcRoot\u003c\u003es from Field, Method, Constructor.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 31113334\nChange-Id: I648b88339995761fb81180286ef48a42bbd2f83d\n"
    },
    {
      "commit": "bd9f11f17467788677752d12d666acd768cd751b",
      "tree": "98d23dd4e6b63f04988ed0bde090b398e7d40d85",
      "parents": [
        "e8c989ec73cb46bfe1bc758f0efd494c5b399a5b",
        "79eb707eabc5ac3e81fd4c6901c6fb430d8fc3b6"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 25 05:58:22 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri May 25 05:58:22 2018 -0700"
      },
      "message": "Merge changes Iaf172f37,I15a8ade7,Icbc6b62b am: a326807d1a\nam: 79eb707eab\n\nChange-Id: I891f4c5c4c6ab213a0e3d86eb705abf7aa073b57\n"
    },
    {
      "commit": "c7aa87e1666ac48ddf9149cfdfd64b026b3969e5",
      "tree": "32d5d74718cc558e13642873e55724782ac9df22",
      "parents": [
        "0278be74269fcfe4f2517d449f2bd53472f9b2f9"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu May 24 15:19:52 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 25 11:37:45 2018 +0100"
      },
      "message": "Remove static_class_ from Method/VarHandle and CallSite.\n\nAnd add MethodHandle to the class roots to avoid extra\nindirection through MethodHandleImpl.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 31113334\nChange-Id: Iaf172f3732677f2b4509e8297e6e9af5fb81a89f\n"
    },
    {
      "commit": "6ce3a1451c28b08316fc847e7a5c52e48165f835",
      "tree": "073737c3fbb410faa2cd02955725c392b9ac12a3",
      "parents": [
        "979f13fdd0b3342b290fc4880298de32cff7565f",
        "346c3954eb6d4dd717d1e13b3efc15a2011cf1f0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 22 08:24:48 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue May 22 08:24:48 2018 -0700"
      },
      "message": "Merge \"ObjPtr\u003c\u003e-ify annotation processing.\" am: cbe50e965b\nam: 346c3954eb\n\nChange-Id: I533febaef9d0da5e6858f8d6e31d7e7d31da333f\n"
    },
    {
      "commit": "2d3065e6ca0bd707bc998b7d260bb8e8ec07cf87",
      "tree": "2b1361fb8c0d860e735858d41a7be6b7699a576a",
      "parents": [
        "3eb68cf6c05e8c015f0da2c50e7e720976702e63"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 22 13:56:09 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 22 14:54:45 2018 +0100"
      },
      "message": "ObjPtr\u003c\u003e-ify annotation processing.\n\nTest: Rely on TreeHugger.\nBug: 31113334\nChange-Id: Ifd69c15c0df1530d8860cf50e06bde0d356b0c23\n"
    },
    {
      "commit": "215185c86bb4be276d35ffac73187825a87138bf",
      "tree": "b41d0ba33d20f72368e824062b3f916133ab122f",
      "parents": [
        "ee04668aa4c0468383e9be301ba3dd8ae964ef00",
        "596559b879cf80f54f334c44c94cdc4cbd2d1665"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Fri May 18 07:47:10 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri May 18 07:47:10 2018 -0700"
      },
      "message": "Merge \"Fix test 674-hiddenapi when debuggable.\" am: 8d744d9ea5\nam: 596559b879\n\nChange-Id: I9bc6eacb31b426bb13f0907f3b767affd74cd6c2\n"
    },
    {
      "commit": "eef7757941f2681814462b0f55d29a562c0200da",
      "tree": "647d552b640745f6ca101bee382866fc0aeedae6",
      "parents": [
        "9c422cc4ef2f1825c60a43a1e8d770f270b076e7"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Fri May 18 13:32:09 2018 +0100"
      },
      "committer": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Fri May 18 13:32:37 2018 +0100"
      },
      "message": "Fix test 674-hiddenapi when debuggable.\n\nThe runtime warns for debuggable apps even when access to an API is\nallowed. Update the expectations of this test accordingly.\n\nThis requires exposing Runtime::IsJavaDebuggable to the java code so\nit knows what to expect.\n\nTest: $ art/test.py -b --host --debuggable -t 674-hiddenapi\nBug: 79914966\nChange-Id: I339f205d7153cf7b1c12dc06813c768608921684\n"
    },
    {
      "commit": "fcb9c3b0b6ffe2eb9b30ec8761738656720928d5",
      "tree": "2c6c77c5e4fab3f4de560983d61f574ae061201e",
      "parents": [
        "8262c49fe554bf200c2fe5160d9bb5347ef32f8e",
        "7876ed0d502d3b91185b5afa1928ae14f20729dd"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed May 16 17:15:29 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 16 17:15:29 2018 -0700"
      },
      "message": "Merge \"ART: Fix jvalue includes\" am: fd3ffe0677\nam: 7876ed0d50\n\nChange-Id: Id63a695856322d71666587add4f209746111ba87\n"
    },
    {
      "commit": "c5b7564fdc187853d1f8266a54316ef402f83e02",
      "tree": "b0aeab247ceeef6ffa262c70251559643b4c2f0d",
      "parents": [
        "a7d37cf735f05cfc3a3585a5c44eb65d8a279874"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed May 16 15:12:11 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed May 16 15:14:22 2018 -0700"
      },
      "message": "ART: Fix jvalue includes\n\nJValue::SetL is defined in the -inl header. Fix up some clients.\n\nTest: mmma art\nChange-Id: I903532c767873847f7746680cf35083cb3408ecf\n"
    },
    {
      "commit": "15511194fc976a09a489291cda11e727728d7c14",
      "tree": "3e556f98fe9b53f0fa4b697fbc1baab9ed697cd6",
      "parents": [
        "172b9ac5299feb38c1ef7bef5aadd0b34e5a7635",
        "3e07170b5894417f30587ad07b765423dd95969f"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu May 10 11:03:19 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu May 10 11:03:19 2018 -0700"
      },
      "message": "Merge \"Implement VMDebug API to mark a class \"platform\"\" am: 57b1bcd199\nam: 3e07170b58\n\nChange-Id: I4e1a640f78539b08e91fdcf59a7ff16c179e3e79\n"
    },
    {
      "commit": "172b9ac5299feb38c1ef7bef5aadd0b34e5a7635",
      "tree": "8525b778461e8858a4767e5e07151f9ff5d1ed32",
      "parents": [
        "977fa904406614cd95f30fbd6c3ef52b4c69f9ec",
        "6950ab2fd13f176531ce35ae7c787f470d4adc7e"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu May 10 11:02:18 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu May 10 11:02:18 2018 -0700"
      },
      "message": "Merge \"Add support for loading trusted dex files.\" am: 5e046f87f2\nam: 6950ab2fd1\n\nChange-Id: I98a996215369fd3604344daca3ee72a5633a3093\n"
    },
    {
      "commit": "57b1bcd19934b447eda315dc1b612ab91a87b2fd",
      "tree": "e9b5fd3eaad213d76e4f621211fd49e09f41bed2",
      "parents": [
        "5e046f87f22768735ef926ef06898027fe22528d",
        "59a49a6fe102b26aacda906b6a2c466d84819c73"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu May 10 15:46:56 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 10 15:46:56 2018 +0000"
      },
      "message": "Merge \"Implement VMDebug API to mark a class \"platform\"\""
    },
    {
      "commit": "5e046f87f22768735ef926ef06898027fe22528d",
      "tree": "56433620398929c5bda3ffa93dd346a6399b4345",
      "parents": [
        "922ba7ea0d3ffd3a5403e4d6193cec5151b2474d",
        "35a4f486cb0a2a600a4ea346b4615ad0ea189dc2"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu May 10 15:46:56 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 10 15:46:56 2018 +0000"
      },
      "message": "Merge \"Add support for loading trusted dex files.\""
    },
    {
      "commit": "59a49a6fe102b26aacda906b6a2c466d84819c73",
      "tree": "f33b21de298b1943ae3483ba877cdbf50313e049",
      "parents": [
        "48af3b39cd7c8abaa7f9671191ec8260630239b2"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed May 09 10:58:27 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu May 10 12:38:11 2018 +0100"
      },
      "message": "Implement VMDebug API to mark a class \"platform\"\n\nAdd a native implementation of VMDebug.allowHiddenApiReflectionFrom\nwhich takes a Class object and sets a new access flag\nkAccSkipAccessChecks on the corresponding mirror::Class instance.\n\nThe function will throw a SecurityException if the process has not\nbeen forked as Java debuggable.\n\nhiddenapi::IsCallerInPlatformDex is extended to take an optional\nargument of the mirror::Class of the caller. If it is set and\nthe class has kAccSkipAccessChecks, the caller is allowed to\nacccess non-SDK APIs.\n\nNote that the mirror::Class of the caller is only provided for\nreflection and JNI. The access flag is ignored for other means of\naccess.\n\nBug: 64382372\nTest: N/A\nChange-Id: I2bf0ca7dcb45c17fe91eb2d421c947b892bd6fec\n"
    },
    {
      "commit": "35a4f486cb0a2a600a4ea346b4615ad0ea189dc2",
      "tree": "70ede18189598146e1419f8fc52b85fd09e8ed4c",
      "parents": [
        "abd9e1515bc6be88372c61071971c5432a51553d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 09 14:49:54 2018 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu May 10 12:29:10 2018 +0100"
      },
      "message": "Add support for loading trusted dex files.\n\nWhich can use hidden APIs.\n\nbug: 64382372\nTest: m\nChange-Id: Ifd40b49270c11ad51281b2127532952fb5206a9d\n"
    },
    {
      "commit": "eed06ed9aa3641bb460d9c5af23dac3d7c7ca0dc",
      "tree": "0b4af6f859c8e348d5b9a33d2385a379030e1e0d",
      "parents": [
        "82a7986c32c612d5b769adbdb863bfc16e2537bb",
        "e8a53d31b3e23aca47ff39f6ac962139ea121a18"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed May 09 16:31:13 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 09 16:31:13 2018 -0700"
      },
      "message": "Merge \"Support system server ART-profiling\" am: 9d7905fffb\nam: e8a53d31b3\n\nChange-Id: Ibb33cd4ff5a78da0dadab9e42c670fc3b7802724\n"
    },
    {
      "commit": "016fcbe2d24a99b688ae2b5c03ce13d270a97886",
      "tree": "96ec3e56325a6ea7618613ef96b04022612f7907",
      "parents": [
        "d10995609f9fd8b85db1a5143b124195805ca5bb"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu May 03 19:47:35 2018 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed May 09 22:11:54 2018 +0000"
      },
      "message": "Support system server ART-profiling\n\nWe don\u0027t have to map the code cache as executable if we only want to save\nprofiles. This enables system server profiling without disabling SElinux\nto bypass the jit code cache exec-mapping.\n\nTest: m test-art-host\n      boot a device with system server profiling enabled.\nBug: 73313191\n\nChange-Id: I7f25a905e0b23456183e39e58ad8f4b829ddf0c5\n"
    },
    {
      "commit": "92317b6bd7dafbec477b5fe9b25e6fb711538a52",
      "tree": "7228afc6a4ee6d9a22d7f1d664626bb075c2d3c9",
      "parents": [
        "bcb15694bb6d03be5b777f8fcd8eeda0afa060c5",
        "41463f3862bb04d68c49bc86759710034708819d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 09 05:47:42 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 09 05:47:42 2018 -0700"
      },
      "message": "Merge \"ART: Move JNI files to runtime/jni/ .\" am: 4ed794415b\nam: 41463f3862\n\nChange-Id: I659d406ee31f31fbeef5445a05e669deb7218b52\n"
    },
    {
      "commit": "a3ad0cdd711857f04f477e2cdc5b56a2c74a3018",
      "tree": "7e0e4c7888c2497d86ce96c9574d7c9886721ccf",
      "parents": [
        "abd9e1515bc6be88372c61071971c5432a51553d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 04 10:06:38 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 09 11:11:09 2018 +0100"
      },
      "message": "ART: Move JNI files to runtime/jni/ .\n\nTest: Rely on TreeHugger.\nChange-Id: I9cae11191ef1567ae9453be498882a7767285140\n"
    },
    {
      "commit": "c9c87f63f7809568fbab751c8f07107e6151cced",
      "tree": "0e5638287e956bec467829159bbb1878d123eec4",
      "parents": [
        "0a054d3e8d00ba4f9841883bf3f8452b8578cf6a"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Thu Apr 19 14:40:40 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue May 08 10:31:56 2018 +0100"
      },
      "message": "Add VMRuntime.setDedupeHiddenApiWarnings().\n\nThis exposes the equivalently named functionality in arts Runtime class.\n\nTest: m\nBug: 78268765\nMerged-In: If5b2fff70a079d588ae3bba706ab7f572afac0b2\nChange-Id: If5b2fff70a079d588ae3bba706ab7f572afac0b2\n(cherry picked from commit 80900a3c6746a64b17121734af776f49f0570723)\n"
    },
    {
      "commit": "1fd97f29d646770c5e8ddee2e8fe468ffcc9ea2c",
      "tree": "be2fbd393abfe438c1e734055f1d3d084755e6a6",
      "parents": [
        "9a13d423c71517bc9cb3cf40e97dd0f6f5d5c72c"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Tue Apr 03 15:32:32 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue May 08 10:31:20 2018 +0100"
      },
      "message": "Log an event on hidden API accesses.\n\nThe new event consists of:\n- The type of access (reflection, JNI, etc.)\n- The action taken (warn or deny)\n- The type of member accessed (field or method)\n- Name of the class which defined the member accessed\n- The name of the member\n- The type signature of the member (type of field, or method signature)\n\nThe fully qualified member name is also not included to avoid the overhead\nof building the string. It can be build from the information included.\n\nSimilarly, the package name, version, etc. are not included as they can\nbe inferred from the context when analyzing the event log.\n\nThe event is sampled, according to a sampling rate that can be set by a\nconfiguration option, to reduce log spam.\n\nTest: $ m\nTest: $ adb shell settings put global hidden_api_access_log_sampling_rate 65536\nTest: $ adb lolcat -b events | grep art_hidden_api_access\n\nSample output:\n16796 16796 I art_hidden_api_access: [1,0,Ldalvik/system/VMRuntime;,getRuntime,()Ldalvik/system/VMRuntime;]\n16796 16796 I art_hidden_api_access: [1,2,Ldalvik/system/VMRuntime;,setHiddenApiExemptions,([Ljava/lang/String;)V]\n16796 16796 I art_hidden_api_access: [1,3,Landroid/app/Activity;,mDoReportFullyDrawn,Z]\n(Timestamps have been elided)\n\nBug: 64382372\nBug: 77517571\nMerged-In: I012b2c9fbffbd00ed3219918e7a736a4f7435ec8\nChange-Id: I012b2c9fbffbd00ed3219918e7a736a4f7435ec8\n(cherry picked from commit 73ddda4403c8088a730b8d456de46bb8e0307ed8)\n"
    },
    {
      "commit": "9a13d423c71517bc9cb3cf40e97dd0f6f5d5c72c",
      "tree": "db25de5c310f8c3b14dbaad91bfe3b02a8a4c5b3",
      "parents": [
        "9a81945ca49de3c5b3969cc85278ecbadf238c84"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Mon Apr 09 12:24:55 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue May 08 10:31:05 2018 +0100"
      },
      "message": "Consider whitelist when listing class members.\n\nPreviously, only the enforcement policy was considered when getting\ndeclared fields or members, meaning whitelisted APIs would still not be\ndiscoverable. Fix this by calling hiddenapi::GetMemberAction from within\nIsDiscoverable.\n\nBug: 77787686\nBug: 64382372\nTest: cts/tests/signature/runSignatureTests.sh (with ag/3863796)\nTest: art/test.py --host -t 674-hiddenapi\nMerged-In: I234d274f47f377e3e105c81aae2d49072287992a\nChange-Id: I234d274f47f377e3e105c81aae2d49072287992a\n(cherry picked from commit 64ee8aeaeb70aa2d5d1c3ff57a682a5001869653)\n"
    },
    {
      "commit": "995c7614949cad5c8a85ba2ca012d04da3304172",
      "tree": "07ab1a892dc51295926742029a7f993a4670ab1d",
      "parents": [
        "7de03dc75f6ba1b0673867ae4cf8308b1634878f",
        "5bcef17fcee4f535c6d39177b1c55eefea81f854"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Wed May 02 03:46:05 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 02 03:46:05 2018 -0700"
      },
      "message": "Include package name in tron events.\nam: 5bcef17fce\n\nChange-Id: Ia687c0790d5cb419c98e50b66855d457e0c82851\n"
    },
    {
      "commit": "5bcef17fcee4f535c6d39177b1c55eefea81f854",
      "tree": "e2f821e5f3f17b20a3c76f3d8956968496cb3bf0",
      "parents": [
        "a5dea30f762266dc87e4160e8139101e9d01cde3"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Tue May 01 14:40:12 2018 +0100"
      },
      "committer": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Tue May 01 15:34:58 2018 +0100"
      },
      "message": "Include package name in tron events.\n\nAdd this state to Runtime, together with a getter and setter to it can be\npassed at zygote fork time.\n\nThe package name needs to be included in the event itself, as the PID/UID\nalso present are not used to look up the package name later.\n\nBug: 77517571\nTest: m\nTest: $ adb lolcat -b events | grep sysui_multi_action\nChange-Id: I40ec89152b5ecc9a81555f2e74bc4f4b44b2bcac\n"
    },
    {
      "commit": "f9c7108a34b1761afaa07490a02840a191cc0d54",
      "tree": "14b0e5c0325c9b23289168f293f4603124aee0e7",
      "parents": [
        "0921e899fdaceb31d2f4ea37a895f8dc0ad99f18",
        "4ac9bda932bfc75801ee20ba2600e4060e18f0ef"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Fri Apr 20 01:13:26 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Apr 20 01:13:26 2018 -0700"
      },
      "message": "Merge \"Add VMRuntime.setDedupeHiddenApiWarnings().\" into pi-dev\nam: 4ac9bda932\n\nChange-Id: I63244152ff3c49383a7d128861084641f71c8614\n"
    },
    {
      "commit": "80900a3c6746a64b17121734af776f49f0570723",
      "tree": "8db2e4b7f0991cfc6d00ee4bda38c13b40f659c0",
      "parents": [
        "9f3a0c3d5171f49111e11a62b6ff746a7838afe0"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Thu Apr 19 14:40:40 2018 +0100"
      },
      "committer": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Thu Apr 19 14:40:40 2018 +0100"
      },
      "message": "Add VMRuntime.setDedupeHiddenApiWarnings().\n\nThis exposes the equivalently named functionality in arts Runtime class.\n\nTest: m\nBug: 78268765\nChange-Id: If5b2fff70a079d588ae3bba706ab7f572afac0b2\n"
    },
    {
      "commit": "88233161e52f3afe0df5b157199a66339464d47c",
      "tree": "4edac30917cb9964e680d45b1ee7f269dc49308c",
      "parents": [
        "2157b5e55be25410be007c563289cac887bc7fae",
        "7a3dcb95bf129f10ed8cdc19c71d02536f4b2515"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Apr 13 10:24:13 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Apr 13 10:24:13 2018 -0700"
      },
      "message": "Merge \"Move profile dependent modules to libartbase\" am: 74b9994598\nam: 7a3dcb95bf\n\nChange-Id: I34e20efb870d848a52b9784335938e211588b0fd\n"
    },
    {
      "commit": "74b9994598f497ee3c6a72bbacad9926527f67f5",
      "tree": "b876a06735c5e729da62a42e3aa5bd4d79a6ff32",
      "parents": [
        "8a78f81a16a7c8225b48bf634b67f5697f72e15f",
        "79e2607ab50163bfdc283f4a49decec26a216df5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 13 17:02:21 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 13 17:02:21 2018 +0000"
      },
      "message": "Merge \"Move profile dependent modules to libartbase\""
    },
    {
      "commit": "79e2607ab50163bfdc283f4a49decec26a216df5",
      "tree": "0cdb2c65412b64a55ddf1a486ab3d961a0301a3e",
      "parents": [
        "b4b91460b2d01d36ddcb7d55111ccd8faf390c2a"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Apr 06 17:58:50 2018 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Apr 13 08:29:30 2018 -0700"
      },
      "message": "Move profile dependent modules to libartbase\n\nMove mem_map and zip_archive to libartbase.  This should be the last two\nremaining modules that profile_compilation_info is dependent upon.\n\nBug: 22322814\nTest: make -j 50 checkbuild\n      make and boot a device\n\nChange-Id: I136ee23e426aa8ec7441e3d3f1978f1bebf4b562\n"
    },
    {
      "commit": "e16644b4256e7033e605ffab968a872e7c807e50",
      "tree": "0c25e34c1850ec8b6ab4749d2db2581309136b74",
      "parents": [
        "1d52df82ab628f22503045d7af51d7bc1e201c8f",
        "ba4f1a253e1eec424c79ae2ab99123b687856a21"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Wed Apr 11 09:57:03 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Apr 11 09:57:03 2018 -0700"
      },
      "message": "Merge \"Log an event on hidden API accesses.\" into pi-dev\nam: ba4f1a253e\n\nChange-Id: I7c856ab925ae37c30dc91ce28b9fda5d04eaf223\n"
    },
    {
      "commit": "ba4f1a253e1eec424c79ae2ab99123b687856a21",
      "tree": "a6d5461c26c89c83d1b1d9e3fab6ee90cdeb08e0",
      "parents": [
        "75e46053d2083dcd197fee56abb86b4b5ec10449",
        "73ddda4403c8088a730b8d456de46bb8e0307ed8"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Wed Apr 11 16:45:06 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 11 16:45:06 2018 +0000"
      },
      "message": "Merge \"Log an event on hidden API accesses.\" into pi-dev"
    },
    {
      "commit": "73ddda4403c8088a730b8d456de46bb8e0307ed8",
      "tree": "f07d4b781f15f0750292523029e1dcf27a7324b3",
      "parents": [
        "5665c97b421166f08df08cbd028d757a21000ff5"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Tue Apr 03 15:32:32 2018 +0100"
      },
      "committer": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Wed Apr 11 13:14:50 2018 +0100"
      },
      "message": "Log an event on hidden API accesses.\n\nThe new event consists of:\n- The type of access (reflection, JNI, etc.)\n- The action taken (warn or deny)\n- The type of member accessed (field or method)\n- Name of the class which defined the member accessed\n- The name of the member\n- The type signature of the member (type of field, or method signature)\n\nThe fully qualified member name is also not included to avoid the overhead\nof building the string. It can be build from the information included.\n\nSimilarly, the package name, version, etc. are not included as they can\nbe inferred from the context when analyzing the event log.\n\nThe event is sampled, according to a sampling rate that can be set by a\nconfiguration option, to reduce log spam.\n\nTest: $ m\nTest: $ adb shell settings put global hidden_api_access_log_sampling_rate 65536\nTest: $ adb lolcat -b events | grep art_hidden_api_access\n\nSample output:\n16796 16796 I art_hidden_api_access: [1,0,Ldalvik/system/VMRuntime;,getRuntime,()Ldalvik/system/VMRuntime;]\n16796 16796 I art_hidden_api_access: [1,2,Ldalvik/system/VMRuntime;,setHiddenApiExemptions,([Ljava/lang/String;)V]\n16796 16796 I art_hidden_api_access: [1,3,Landroid/app/Activity;,mDoReportFullyDrawn,Z]\n(Timestamps have been elided)\n\nBug: 64382372\nBug: 77517571\nChange-Id: I012b2c9fbffbd00ed3219918e7a736a4f7435ec8\n"
    },
    {
      "commit": "c0d988a9b5f2c34072fff100af9bd12464a6c55b",
      "tree": "1bd0cf8026f3f98c04f9a8445ee034762a1dbe23",
      "parents": [
        "9574f493cb072466b7b491de97c381e6c2b8b639"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Apr 10 14:32:35 2018 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Apr 11 11:47:16 2018 +0100"
      },
      "message": "ART: Stop Hidden API stackwalk for class initializers in j.l.i.\n\nClass initializers in java.lang.invoke retrieve field offsets. The\nhiddenapi stack walk does not need to progress past these initializers\nas they are permitted irrespective of how their invocation is\ntriggered.\n\nBug: 77631986\nTest: art/test/run-test --host --64 674-hiddenapi\n\n(cherry picked from commit 29e64cfc32e17c9111a5ed2a6b141bebf891cbe3)\n\nChange-Id: I77a29999177850bd50ca4d043b0cd40c40692fe4\nMerged-In: Iaabedc9c016d546e10072107d79c7b6701582c83\n"
    },
    {
      "commit": "9574f493cb072466b7b491de97c381e6c2b8b639",
      "tree": "b7f8990b96dc29df2e38bfc480bd8ac62bcdf59b",
      "parents": [
        "b143d262c523f022499b211d5c2b1fbd9f8130cc"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Apr 10 10:20:32 2018 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Apr 11 11:43:35 2018 +0100"
      },
      "message": "ART: Walk past j.l.i in stackwalk for Hidden API\n\nBug: 77631986\nTest: art/test.py --host 674-hidden-api\n\n(cherry picked from change 198a27e92a529115a2db2a17ec11d8b52bd6a315)\n\nChange-Id: I2364036a6b7bd8bb06d2e456fb22f4db9c6cce21\nMerged-In: I2e3e0399765da7f554259fe14247b45e42110ef4\n"
    },
    {
      "commit": "7c8e038bd070d0d39db8ec830a503783598aac41",
      "tree": "0b5c9324f938b106f3722c5b7ba267b2dd8f4bbe",
      "parents": [
        "2984c95a8eeab66b48f2b12d51dc97beb1a67423",
        "75e46053d2083dcd197fee56abb86b4b5ec10449"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Apr 11 03:31:25 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Apr 11 03:31:25 2018 -0700"
      },
      "message": "Merge \"ART: Stop Hidden API stackwalk for class initializers in j.l.i.\" into pi-dev\nam: 75e46053d2\n\nChange-Id: Ieb210e1152c92ca369f81a6ebd6165dff1e4856d\n"
    },
    {
      "commit": "75e46053d2083dcd197fee56abb86b4b5ec10449",
      "tree": "4c50c959e85cfffa4217fde74cb805c038d09c36",
      "parents": [
        "60d7315fb7ef4a03bf7dd13eaa729c884a52ce3c",
        "29e64cfc32e17c9111a5ed2a6b141bebf891cbe3"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Apr 11 10:20:41 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 11 10:20:41 2018 +0000"
      },
      "message": "Merge \"ART: Stop Hidden API stackwalk for class initializers in j.l.i.\" into pi-dev"
    },
    {
      "commit": "959e4dfcb92adbd23c28353de33839e9d6f00982",
      "tree": "c49ddc2e5972dda2bb12f3cf39c7f35fef2eb9b1",
      "parents": [
        "f4cc3ba0ea6c34b1cb61142a1a6402a52bc49fc5",
        "60d7315fb7ef4a03bf7dd13eaa729c884a52ce3c"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Tue Apr 10 10:44:03 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Apr 10 10:44:03 2018 -0700"
      },
      "message": "Merge \"Consider whitelist when listing class members.\" into pi-dev\nam: 60d7315fb7\n\nChange-Id: Iaeb3b875ff0074c82f1f77e691852418c4c6d637\n"
    },
    {
      "commit": "29e64cfc32e17c9111a5ed2a6b141bebf891cbe3",
      "tree": "7a8f806858a1af48476041107c9abe8392c5feeb",
      "parents": [
        "5665c97b421166f08df08cbd028d757a21000ff5"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Apr 10 14:32:35 2018 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Apr 10 15:28:44 2018 +0100"
      },
      "message": "ART: Stop Hidden API stackwalk for class initializers in j.l.i.\n\nClass initializers in java.lang.invoke retrieve field offsets. The\nhiddenapi stack walk does not need to progress past these initializers\nas they are permitted irrespective of how their invocation is\ntriggered.\n\nBug: 77631986\nTest: art/test/run-test --host --64 674-hiddenapi\nChange-Id: Iaabedc9c016d546e10072107d79c7b6701582c83\n"
    },
    {
      "commit": "64ee8aeaeb70aa2d5d1c3ff57a682a5001869653",
      "tree": "8fa21a4fd614fc1204d91ad6f04c051950ef4251",
      "parents": [
        "709e67c8ae5d6d2e4d781ec6505c7502f2d7f5fd"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Mon Apr 09 12:24:55 2018 +0100"
      },
      "committer": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Tue Apr 10 14:14:41 2018 +0100"
      },
      "message": "Consider whitelist when listing class members.\n\nPreviously, only the enforcement policy was considered when getting\ndeclared fields or members, meaning whitelisted APIs would still not be\ndiscoverable. Fix this by calling hiddenapi::GetMemberAction from within\nIsDiscoverable.\n\nBug: 77787686\nBug: 64382372\nTest: cts/tests/signature/runSignatureTests.sh (with ag/3863796)\nTest: art/test.py --host -t 674-hiddenapi\nChange-Id: I234d274f47f377e3e105c81aae2d49072287992a\n"
    },
    {
      "commit": "a769185a0e549e9d5a1abd02a6b844e1b92071dc",
      "tree": "28154c9249d564bb7162572a4b180ff1a5ca7770",
      "parents": [
        "3d3d51bf6c4c54ba6ad15e4acffba86a70901d2b",
        "02e7eda9239ae3a9fbd286cf334304b042f83248"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Apr 09 18:06:48 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Apr 09 18:06:48 2018 -0700"
      },
      "message": "Merge \"Remove some unnecessary items from WellKnownClasses.\" am: a9e0c71c82\nam: 02e7eda923\n\nChange-Id: If50847302f91f7167899c6471e0821f55d2c602d\n"
    },
    {
      "commit": "2e801e7d3c3e020f215587ac6ce4089ed70ad831",
      "tree": "50815434b76c4db1bca07db74bc7d311b9747b1d",
      "parents": [
        "d7cd3e7fde72f12633d549ed398364c04ca0e4ab",
        "51d77d6f54306038e75f42c11cee5f54b55b0222"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Apr 09 08:52:10 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Apr 09 08:52:10 2018 -0700"
      },
      "message": "Merge \"ART: Walk past j.l.i in stackwalk for Hidden API\" into pi-dev\nam: 51d77d6f54\n\nChange-Id: I7053f733a66a4f90c2ec22487a765ef351a08971\n"
    },
    {
      "commit": "198a27e92a529115a2db2a17ec11d8b52bd6a315",
      "tree": "2612ee085bc1afe375efecc08f1871ea86e67567",
      "parents": [
        "c3dbfcc312774563c28f70c5c83c8bca5c894a9a"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Apr 06 15:41:28 2018 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Apr 09 13:50:20 2018 +0100"
      },
      "message": "ART: Walk past j.l.i in stackwalk for Hidden API\n\nBug: 77631986\nTest: art/test.py --host 674-hidden-api\nChange-Id: I2e3e0399765da7f554259fe14247b45e42110ef4\n"
    },
    {
      "commit": "6097672947fe8b2632cfd10e3d8e44792199a346",
      "tree": "40f63402acbbafdab2f4b0afd3f7efd620308282",
      "parents": [
        "1451f86cce740befd52cb3665827aafef1497f54"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Apr 06 15:29:38 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Apr 09 11:40:55 2018 +0100"
      },
      "message": "Remove some unnecessary items from WellKnownClasses.\n\nReplace a few uses with alternatives, namely\nmirror::{Constructor,Method,Field}::StaticClass().\nAlternatively, we could use class roots in the ClassLinker.\n\nAnd clear dalvik_system_VMRuntime_nonSdkApiUsageConsumer\nin WellKnownClasses::Clear().\n\nTest: testrunner.py --host\nBug: 74943277\nChange-Id: I7561db76cd62d376c22efd4386dffd83ec74aa66\n"
    },
    {
      "commit": "f5f1f80aa6c1c10c61b6723bbc52d5aec2eba2b9",
      "tree": "6a83730a41748fcfd6e42be0f31ec7243d631495",
      "parents": [
        "8c5de0f16444441c23a5ae807e4dd5cc0dd586a3"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Apr 03 15:23:46 2018 +0100"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 06 10:08:56 2018 -0700"
      },
      "message": "Revert^2 \"hidden_api: Call back into libcore on hidden api detection\"\"\n\nThis reverts commit bbe60d58496991c16e2943e174e26ab8a096b3d0.\n\nThis CL deviates from the approach of the original change. Instead of\ncalling back every time ShouldBlock.. was called, we explicitly call\nback in cases where it\u0027s safe to do so.\n\nNote that we only call back on reflective accesses for now, and not\nlink time accesses. Coverage for the latter will be added in a follow up\nchange.\n\nBug: 73896556\nTest: test-art-host\nTest: art/test.py --host -t test-art-host-run-test-debug-prebuild-\\\n   interpreter-no-relocate-ntrace-gcstress-checkjni-picimage-pictest-\\\n   ndebuggable-no-jvmti-cdex-fast-674-hiddenapi64\n\n(cherry picked from commit e453a8dd87731f4b37b86a1284f7655d86c2a809)\n\nMerged-In: Ie99ac268a083af167accbdf955639da068bea950\nChange-Id: I76860519d40b87032dbb8db38b04fcf79ef09723\n"
    },
    {
      "commit": "8c5de0f16444441c23a5ae807e4dd5cc0dd586a3",
      "tree": "a0753accc18ccc000280e18327c57f7352e2ace5",
      "parents": [
        "a9660f1dc13b4d595b3f89b06dd5b70eeee18c43"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Apr 03 14:13:13 2018 +0000"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 06 10:08:21 2018 -0700"
      },
      "message": "Revert \"hidden_api: Call back into libcore on hidden api detection\"\n\nThis reverts commit 757a9d0a2e97d43bafeb8a95cc3c51102be99586.\n\nReason for revert: Test failures with \"art/test.py --host -t test-art-host-run-test-debug-prebuild-interpreter-no-relocate-ntrace-gcstress-checkjni-picimage-pictest-ndebuggable-no-jvmti-cdex-fast-674-hiddenapi64\"\nBug: 73896556\nTest: art/test.py --host -t test-art-host-run-test-debug-prebuild-interpreter-no-relocate-ntrace-gcstress-checkjni-picimage-pictest-ndebuggable-no-jvmti-cdex-fast-674-hiddenapi64\n\n(cherry picked from commit 9e68ade384abdb15714054feaed06cb38eb5432f)\n\nMerged-In: Ib2ad89c16ad797c37f6212bc7e5c0b6b92ce56b5\nChange-Id: I11fa9b76da07162fde8773eb05cfc6a6514e0ca1\n"
    },
    {
      "commit": "a9660f1dc13b4d595b3f89b06dd5b70eeee18c43",
      "tree": "fba8c4742d8f866b8342794542436ab3cd3f32a8",
      "parents": [
        "9c85c79af0e5fe181df97dfc2801f4999aef77eb"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Mar 29 10:21:47 2018 +0100"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 06 10:07:49 2018 -0700"
      },
      "message": "hidden_api: Call back into libcore on hidden api detection\n\nThis change also removes some unnecessary RI specific logic for\nbuilding src-ex since it isn\u0027t required.\n\nBug: 73896556\nTest: run-test --host 674-hiddenapi\nTest: StrictModeTest\n\nCo-Authored-By: Andreas Gampe \u003cagampe@google.com\u003e\n\n(cherry picked from commit 757a9d0a2e97d43bafeb8a95cc3c51102be99586)\n\nMerged-In: Ib2b4dfad55c5d829630bfe2adb4a468124bea61c\nChange-Id: Ida0943990aa1b3bad0c674bc31ff46766ae493a6\n"
    },
    {
      "commit": "15e0977d58c8bb9e200fbf2a995fdaa7cb4d82e1",
      "tree": "81c95a3df13a67d10d93111f7da02746e816a020",
      "parents": [
        "a00c5748975c408a132608b42660868b96fe5f98",
        "b658cd77b69bd039795509356900eface235cc93"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Apr 05 03:18:16 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Apr 05 03:18:16 2018 -0700"
      },
      "message": "Merge \"Revert^2 \"hidden_api: Call back into libcore on hidden api detection\"\"\" into pi-dev\nam: b658cd77b6\n\nChange-Id: I26b681b7609ca849def5fc1daa2581da457eab57\n"
    },
    {
      "commit": "e453a8dd87731f4b37b86a1284f7655d86c2a809",
      "tree": "9320404a6fa9e381cd60e645e76b85a1f81035cc",
      "parents": [
        "7efc4f2941d53901272f2c415e4e41e50f2c31d4"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Apr 03 15:23:46 2018 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Apr 05 09:08:53 2018 +0100"
      },
      "message": "Revert^2 \"hidden_api: Call back into libcore on hidden api detection\"\"\n\nThis reverts commit bbe60d58496991c16e2943e174e26ab8a096b3d0.\n\nThis CL deviates from the approach of the original change. Instead of\ncalling back every time ShouldBlock.. was called, we explicitly call\nback in cases where it\u0027s safe to do so.\n\nNote that we only call back on reflective accesses for now, and not\nlink time accesses. Coverage for the latter will be added in a follow up\nchange.\n\nBug: 73896556\nTest: test-art-host\nTest: art/test.py --host -t test-art-host-run-test-debug-prebuild-\\\n   interpreter-no-relocate-ntrace-gcstress-checkjni-picimage-pictest-\\\n   ndebuggable-no-jvmti-cdex-fast-674-hiddenapi64\n\nChange-Id: Ie99ac268a083af167accbdf955639da068bea950\n"
    },
    {
      "commit": "f37173a75b0ed6c8cfd577f1f0a6d3a9df453ae6",
      "tree": "bb50d00ff0890c2e10f351f462b47b56b01e78ea",
      "parents": [
        "e8c8d81704d1db75d720b1e2b1cbcee7c87f8e91",
        "7efc4f2941d53901272f2c415e4e41e50f2c31d4"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Apr 03 07:53:38 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Apr 03 07:53:38 2018 -0700"
      },
      "message": "Merge \"Revert \"hidden_api: Call back into libcore on hidden api detection\"\" into pi-dev\nam: 7efc4f2941\n\nChange-Id: Ieb600530611901fac5010985c672e4602103c91b\n"
    },
    {
      "commit": "9e68ade384abdb15714054feaed06cb38eb5432f",
      "tree": "5659aa522815a24915e77711dc1d9d19defadad8",
      "parents": [
        "757a9d0a2e97d43bafeb8a95cc3c51102be99586"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Apr 03 14:13:13 2018 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Apr 03 14:22:26 2018 +0000"
      },
      "message": "Revert \"hidden_api: Call back into libcore on hidden api detection\"\n\nThis reverts commit 757a9d0a2e97d43bafeb8a95cc3c51102be99586.\n\nReason for revert: Test failures with \"art/test.py --host -t test-art-host-run-test-debug-prebuild-interpreter-no-relocate-ntrace-gcstress-checkjni-picimage-pictest-ndebuggable-no-jvmti-cdex-fast-674-hiddenapi64\"\nBug: 73896556 \nTest: art/test.py --host -t test-art-host-run-test-debug-prebuild-interpreter-no-relocate-ntrace-gcstress-checkjni-picimage-pictest-ndebuggable-no-jvmti-cdex-fast-674-hiddenapi64\n\nChange-Id: Ib2ad89c16ad797c37f6212bc7e5c0b6b92ce56b5\n"
    },
    {
      "commit": "e8c8d81704d1db75d720b1e2b1cbcee7c87f8e91",
      "tree": "e8c6433d89577659e42359e074dba0d9d67af92b",
      "parents": [
        "5881f824cc65e3cb257518116b188aed912552b5",
        "11ce79ebbbc1070ac024da697413b2d458b572eb"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Apr 03 05:28:05 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Apr 03 05:28:05 2018 -0700"
      },
      "message": "Merge \"hidden_api: Call back into libcore on hidden api detection\" into pi-dev\nam: 11ce79ebbb\n\nChange-Id: I7971ccf2e28a3598ef90c8a4d36dd83ab0dbeafb\n"
    },
    {
      "commit": "757a9d0a2e97d43bafeb8a95cc3c51102be99586",
      "tree": "e61b8f7cd80e6447427096bcfba3e3b523ef9c91",
      "parents": [
        "80f5fe5fa4fd4044c409b39db0f6b1b77542ce6e"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Mar 29 10:21:47 2018 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Mar 29 18:35:59 2018 +0100"
      },
      "message": "hidden_api: Call back into libcore on hidden api detection\n\nThis change also removes some unnecessary RI specific logic for\nbuilding src-ex since it isn\u0027t required.\n\nBug: 73896556\nTest: run-test --host 674-hiddenapi\nTest: StrictModeTest\n\nCo-Authored-By: Andreas Gampe \u003cagampe@google.com\u003e\nChange-Id: Ib2b4dfad55c5d829630bfe2adb4a468124bea61c\n"
    },
    {
      "commit": "27b967611b48120bf0140995ae439700fe6cc139",
      "tree": "fb6a3ce8c7bb50cfd5e265533dab3894d52f4716",
      "parents": [
        "ba6d632c0e7617a1a848551612d7cb9e60b450e6"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Mar 13 16:06:57 2018 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Mar 29 12:44:43 2018 +0100"
      },
      "message": "ART: Simplify quasi_atomic.h\n\nRemoves fences that duplicate std::atomic_thread_fence().\n\nBug: 71621075\nTest: art/test.py --host -j32\nTest: art/test.py --target --64 -j4\nChange-Id: I008de4d242d1a3cf4d3f50ce171abbbda647bdaa\n"
    },
    {
      "commit": "80f5fe5fa4fd4044c409b39db0f6b1b77542ce6e",
      "tree": "5659aa522815a24915e77711dc1d9d19defadad8",
      "parents": [
        "be4aa299da3c547c1854b934ba7f6b42c1e4130b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Mar 28 16:23:24 2018 -0700"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Mar 29 08:38:02 2018 +0100"
      },
      "message": "ART: Refactor hidden_api\n\nAdd hidden_api.cc, move handling of hidden fields there. Also\nremove an unnecessary include that meant hidden_api was imported\ninto too many compilation units, and fix transitive includes.\n\nBug: 73896556\nTest: mmma art\nTest: m test-art-host\nChange-Id: Ie47e11abcea68e326c410bab215ebbfbf049051b\n(cherry picked from commit aa12001baf69c124ab3901c13385aaa43fc76987)\n"
    },
    {
      "commit": "be4aa299da3c547c1854b934ba7f6b42c1e4130b",
      "tree": "aa1149d9542c493236d077fac6e664c4cdfeca48",
      "parents": [
        "f6590308d27c3453623b743a1a3275d57bb4ff0e",
        "3383aa5cc3bac56576cf48086183f59ac4de279e"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Thu Mar 29 06:49:27 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 29 06:49:27 2018 +0000"
      },
      "message": "Merge \"Support for API exemptions from API blacklisting.\" into pi-dev"
    }
  ],
  "next": "aa12001baf69c124ab3901c13385aaa43fc76987"
}
