)]}'
{
  "log": [
    {
      "commit": "71faa00a313d1375174d71a865ee3dd6771ae430",
      "tree": "0f563747c2bdf9b39936f5b46300ff308541e0ab",
      "parents": [
        "317acfe74bd277bedc10cd10a7ae5ee01868a819",
        "0c15b823cefe295eb64db41b94a51d00700fa2f2"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Feb 14 19:27:27 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 14 19:27:27 2019 +0000"
      },
      "message": "Merge \"Workaround for \"required\" dependencies not being followed in APEXes.\""
    },
    {
      "commit": "0c15b823cefe295eb64db41b94a51d00700fa2f2",
      "tree": "e9d67935fafef7742ca4aeab5f55f3cc8f6f78cc",
      "parents": [
        "438cc2b34be2a5d114a50ba6cdef22f9045d863a"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Feb 14 17:24:19 2019 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Feb 14 18:56:54 2019 +0000"
      },
      "message": "Workaround for \"required\" dependencies not being followed in APEXes.\n\nBug: 124439236\nTest: atest CtsJdwpTestCases (on taimen and aosp_cf_x86_phone)\n\nChange-Id: Ie66ae8a8a69fa59831f8ac8b7e44a33ecd33df51\n"
    },
    {
      "commit": "317acfe74bd277bedc10cd10a7ae5ee01868a819",
      "tree": "74c697abee24a3c64e189728c7e003dc6b0ef79c",
      "parents": [
        "768b15d9d1b6847910da4782672bdec79913a8b7",
        "e96185547c4b14ced8f3f192dac983f24d23875e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 14 18:42:47 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 14 18:42:47 2019 +0000"
      },
      "message": "Merge \"Sign each APEX with different container certificate\""
    },
    {
      "commit": "e96185547c4b14ced8f3f192dac983f24d23875e",
      "tree": "74c697abee24a3c64e189728c7e003dc6b0ef79c",
      "parents": [
        "768b15d9d1b6847910da4782672bdec79913a8b7"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Mon Feb 11 10:54:36 2019 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Feb 14 23:52:51 2019 +0900"
      },
      "message": "Sign each APEX with different container certificate\n\nEach APEX is signed with different certificate. The test certificate\n(along with the private key) is com.android.\u003cname\u003e.x509.pem and\ncom.android.\u003cname\u003e.pk8. The files are in the same directory as the APEX\nis defined and is referenced via android_app_certificate module named\ncom.android.\u003cname\u003e.certificate.\n\nThe test certificate could then be overridden via\nPRODUCT_CERTIFICATE_OVERRIDES :\u003d \u003capex_module_name\u003e:\u003cnew_cert_module_name\u003e\n\nBug: 113373927\nTest: jarsigner -verify -verbose -certs out/target/product/blueline/system/apex/com.android.runtime.{release|debug}.apex shows\n...\nX.509, CN\u003dcom.android.runtime.{release|debug}, OU\u003dAndroid, O\u003dAndroid, L\u003dMountain View, ST\u003dCalifornia, C\u003dUS\n\nChange-Id: Ica1643c5c66ef19a362303f6ac4156435a331d21\n"
    },
    {
      "commit": "768b15d9d1b6847910da4782672bdec79913a8b7",
      "tree": "bfb2205dcc35318499c3fb84c32c569c526277f4",
      "parents": [
        "5fe9d2db0016b6ceaccb897cb0e07c5c0ba026bf",
        "fe94b1c4e8f85c753a5b7b2f0958a54068c46af2"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 14 14:36:32 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 14 14:36:32 2019 +0000"
      },
      "message": "Merge \"Open libdexfile_external on demand in libdexfile_support.\""
    },
    {
      "commit": "5fe9d2db0016b6ceaccb897cb0e07c5c0ba026bf",
      "tree": "68af43b712b3fb25f570e4b12ab895126eb47bcd",
      "parents": [
        "dc4b77088749ee7c966b6925297a69cf3b57d3b0",
        "3f285b2a088653cb8f96eb00b6fd59872df29305"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 14 14:09:44 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 14 14:09:44 2019 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Stop-gap for buildbot and golem testing.\"\"\""
    },
    {
      "commit": "3f285b2a088653cb8f96eb00b6fd59872df29305",
      "tree": "7af9eaa17389f2a9be43b963f72455a5f1149c6b",
      "parents": [
        "c3f9cd6be329e1d115d7156fa55e36cc6ed980ba"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 14 14:08:55 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 14 14:08:55 2019 +0000"
      },
      "message": "Revert \"Revert \"Stop-gap for buildbot and golem testing.\"\"\n\nThis reverts commit c3f9cd6be329e1d115d7156fa55e36cc6ed980ba.\n\nReason for revert: golem breakage is unrelated.\n\nChange-Id: I5fcf9013379cf00d0d85436c0225cf6cfd412f84\n"
    },
    {
      "commit": "dc4b77088749ee7c966b6925297a69cf3b57d3b0",
      "tree": "a3c8bdee7062e7459a00a87d76295ea2626b8159",
      "parents": [
        "438cc2b34be2a5d114a50ba6cdef22f9045d863a",
        "c3f9cd6be329e1d115d7156fa55e36cc6ed980ba"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 14 13:44:11 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 14 13:44:11 2019 +0000"
      },
      "message": "Merge \"Revert \"Stop-gap for buildbot and golem testing.\"\""
    },
    {
      "commit": "c3f9cd6be329e1d115d7156fa55e36cc6ed980ba",
      "tree": "f8a50bc1f5e8fe4c9f4bc69d7b690fd08611ab84",
      "parents": [
        "39e95ec8e11bf165aafba91855224abc1e08fe5c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 14 13:43:38 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 14 13:43:38 2019 +0000"
      },
      "message": "Revert \"Stop-gap for buildbot and golem testing.\"\n\nThis reverts commit 39e95ec8e11bf165aafba91855224abc1e08fe5c.\n\nReason for revert: Temporary revert to diagnose golem issues.\n\nChange-Id: Id1dc7d6258e2805089679ea63b62abeee6644a7f\n"
    },
    {
      "commit": "438cc2b34be2a5d114a50ba6cdef22f9045d863a",
      "tree": "68af43b712b3fb25f570e4b12ab895126eb47bcd",
      "parents": [
        "cf23c5d8e558657e1a0eea15b8ec6a54ece9b677",
        "e1412dacbf1d2a809bd1fca658cc8cb8f61f8ee6"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Feb 14 09:44:24 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 14 09:44:24 2019 +0000"
      },
      "message": "Merge \"Revert^2 \"Add code size to CodeInfo\"\""
    },
    {
      "commit": "e1412dacbf1d2a809bd1fca658cc8cb8f61f8ee6",
      "tree": "bb3f56ecefe08b66f7a330a02caef0b089a0c2af",
      "parents": [
        "8f20a23a35fa6fbe4dcb4ff70268a24dc7fb2a24"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Feb 13 17:27:17 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Feb 14 09:43:00 2019 +0000"
      },
      "message": "Revert^2 \"Add code size to CodeInfo\"\n\nThis temporarily adds 0.25% to oat file size.\nThe space will be reclaimed back in follow-up CL.\n\nThis reverts commit 8f20a23a35fa6fbe4dcb4ff70268a24dc7fb2a24.\n\nReason for revert: Reland as-is after CL/903819\n\nBug: 123510633\nTest: DCHECK compare the two stored code sizes.\nChange-Id: Ia3ab31c208948f4996188764fcdcba13d9977d19\n"
    },
    {
      "commit": "cf23c5d8e558657e1a0eea15b8ec6a54ece9b677",
      "tree": "36f47f2f3adbb58f2b98f0016f5deaabf1c1852c",
      "parents": [
        "0dbb3d10c17961993cfb34050863b0d0eebdaffe",
        "eea5fd3561ec3cc1f97b754607e69c2f84d17a6d"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Feb 14 09:41:03 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 14 09:41:03 2019 +0000"
      },
      "message": "Merge \"Fix DumpNativeStack function for traced methods.\""
    },
    {
      "commit": "eea5fd3561ec3cc1f97b754607e69c2f84d17a6d",
      "tree": "9bacc8130ccbbebb5dc4b4e674f9ae20f5b1968b",
      "parents": [
        "d8c4a38b3fc37efdfe691c317b37e9808022f7a3"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Feb 13 17:24:17 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Feb 13 17:26:29 2019 +0000"
      },
      "message": "Fix DumpNativeStack function for traced methods.\n\nThe art_quick_instrumentation_exit stub does not have oat header.\n\nBug: 123510633\nTest: test.py -b -r --host --trace -r -t 163\nChange-Id: I56d72816daf836440feccb42c81031f120e8c4c5\n"
    },
    {
      "commit": "0dbb3d10c17961993cfb34050863b0d0eebdaffe",
      "tree": "26dd8129f94fb4048476b9a099c9b8b6cdbb0cbd",
      "parents": [
        "d8c4a38b3fc37efdfe691c317b37e9808022f7a3",
        "7370d92da01ad07c649e3f988aaf55ee7585a803"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Feb 13 14:49:05 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 13 14:49:05 2019 +0000"
      },
      "message": "Merge \"Remove oat_patches from the DWARF writer.\""
    },
    {
      "commit": "fe94b1c4e8f85c753a5b7b2f0958a54068c46af2",
      "tree": "01d99cadf22d3eb95972cdd28a988e0e7964261b",
      "parents": [
        "a05344750f6996b32de18a25d0ba55115235dbb6"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Jan 31 17:40:39 2019 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Feb 13 14:24:19 2019 +0000"
      },
      "message": "Open libdexfile_external on demand in libdexfile_support.\n\nThis allows users to depend on libdexfile_support (typically via\nlibbacktrace) also in binaries that don\u0027t run java code. The drawback is one\nextra address load in all calls.\n\nAlso add support for a nonfunctional fake with recovery and vendor variants,\nso that clients don\u0027t need special cases to avoid the libdexfile dependency.\n\nBug: 123403798\nBug: 123186083\nTest: Flash and boot\nTest: atest -a libdexfile_support{,_static}_tests\nTest: mmma art/libdexfile/\nTest: mmma system/core/{libunwindstack,libbacktrace}, run host gtests (cannot get atest to work)\nChange-Id: Ia99ad8039bb37fe25bf7009a85ae89c2aa660bd1\n"
    },
    {
      "commit": "d8c4a38b3fc37efdfe691c317b37e9808022f7a3",
      "tree": "2378d3cef633d9d5a65b2a99c7ab9eb723e0e773",
      "parents": [
        "c5fb897aabdca48d6f7c44e3930312055e3358ef",
        "91b290038cbd00a48028922a5e76c0c39d6ebcb6"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Feb 13 12:54:30 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 13 12:54:30 2019 +0000"
      },
      "message": "Merge \"Remove support for generating .eh_frame ELF section.\""
    },
    {
      "commit": "c5fb897aabdca48d6f7c44e3930312055e3358ef",
      "tree": "a677ee58a701fb2ef2ed8edce2787db0db6f9e24",
      "parents": [
        "5de97757f617d921f83bc108e7f090d278cdf4b7",
        "39e95ec8e11bf165aafba91855224abc1e08fe5c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 13 12:12:24 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 13 12:12:24 2019 +0000"
      },
      "message": "Merge \"Stop-gap for buildbot and golem testing.\""
    },
    {
      "commit": "39e95ec8e11bf165aafba91855224abc1e08fe5c",
      "tree": "7af9eaa17389f2a9be43b963f72455a5f1149c6b",
      "parents": [
        "a05344750f6996b32de18a25d0ba55115235dbb6"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 12 17:14:22 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 13 10:41:13 2019 +0000"
      },
      "message": "Stop-gap for buildbot and golem testing.\n\nTest: build-art-golem\nTest: buildbot-build.sh\nBug: b/121117762\nChange-Id: I9c2c053aa0efec205fb7f97b986100e07fda28aa\n"
    },
    {
      "commit": "5de97757f617d921f83bc108e7f090d278cdf4b7",
      "tree": "9ab5a91cb51ff02ebbb6579ddb1505b9dd0d84ea",
      "parents": [
        "29e970e7a48fe743e65af2421a11760cda49d248",
        "b756f70170bdd3b89714bcfbfd5bf8b71f352124"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 13 02:17:34 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 13 02:17:34 2019 +0000"
      },
      "message": "Merge \"Rename libnativebridge-dummy-headers to libnativebridge-headers\""
    },
    {
      "commit": "29e970e7a48fe743e65af2421a11760cda49d248",
      "tree": "07f2580486e6d707b007f0bdfd9ae3f7834c8516",
      "parents": [
        "3c09f2c51c796df68386b16dfdab6d63734baec6",
        "e4b4a18fe564c02af46477357967d6b43b8b0c54"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 13 02:11:55 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 13 02:11:55 2019 +0000"
      },
      "message": "Merge \"Add support for using gdbserver with run-test\""
    },
    {
      "commit": "e4b4a18fe564c02af46477357967d6b43b8b0c54",
      "tree": "8670af9fd1385473e7fbffb7e6295ec3964d198e",
      "parents": [
        "3611fdf703a6417c08a2e3d6e642d5936318de18"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Feb 12 14:19:49 2019 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Feb 12 14:19:49 2019 -0800"
      },
      "message": "Add support for using gdbserver with run-test\n\nThis will allow one to use alternative gdb frontends with run-test\ntests by pointing them at the gdbserver port.\n\nTest: ./test/run-test --host --64 --gdbserver 001-HelloWorld\n      Use VSCode to attach to localhost:5039 and debug dalvikv64\n\nChange-Id: I87f31f035d4192e786b152be43d8415dc7e0f210\n"
    },
    {
      "commit": "3c09f2c51c796df68386b16dfdab6d63734baec6",
      "tree": "9a772ac535bea14ffd837b5b13b5abdb84d79255",
      "parents": [
        "f09a3c3eec07ae03b7eef3e27bf8eae25261cd46",
        "8f20a23a35fa6fbe4dcb4ff70268a24dc7fb2a24"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Feb 12 22:10:43 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 12 22:10:43 2019 +0000"
      },
      "message": "Merge \"Revert \"Add code size to CodeInfo\"\""
    },
    {
      "commit": "f09a3c3eec07ae03b7eef3e27bf8eae25261cd46",
      "tree": "b7e3927adbd1a487f8d97430e9f7f0afd269b242",
      "parents": [
        "a05344750f6996b32de18a25d0ba55115235dbb6",
        "b81d22d2cb4af88b438f9aeb5131d34a377faaee"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Feb 12 21:13:56 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 12 21:13:56 2019 +0000"
      },
      "message": "Merge \"Use OnceKey in art.go\""
    },
    {
      "commit": "8f20a23a35fa6fbe4dcb4ff70268a24dc7fb2a24",
      "tree": "84dc682b40f38d0377639befe6f3d43e5655a43c",
      "parents": [
        "68efa7b1128486e08ae60cd27181645b27bbd2e4"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Feb 12 19:42:54 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Feb 12 19:42:54 2019 +0000"
      },
      "message": "Revert \"Add code size to CodeInfo\"\n\nThis reverts commit 68efa7b1128486e08ae60cd27181645b27bbd2e4.\n\nReason for revert: Breaks tests\n\nChange-Id: I28fb143990f58e0d5f0b106bea9d9a159f19297e\n"
    },
    {
      "commit": "7370d92da01ad07c649e3f988aaf55ee7585a803",
      "tree": "961717b2838d923b87b2ecf1ebac55a8c5ecaa8d",
      "parents": [
        "91b290038cbd00a48028922a5e76c0c39d6ebcb6"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Feb 12 14:00:30 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Feb 12 14:44:44 2019 +0000"
      },
      "message": "Remove oat_patches from the DWARF writer.\n\nWe no longer use them.\n\nTest: test-art-host-gtest-dwarf_test\nChange-Id: Ie018d2314f028584edb398b6310a7284a0ec2069\n"
    },
    {
      "commit": "91b290038cbd00a48028922a5e76c0c39d6ebcb6",
      "tree": "0b05e3a20da9ae131b9299554b4c7efa7e156f7d",
      "parents": [
        "794350fd0e21aa9e259b6c45394494871e7fdb13"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Feb 08 15:51:31 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Feb 12 13:51:16 2019 +0000"
      },
      "message": "Remove support for generating .eh_frame ELF section.\n\nThe eh_frame support was originally added because the\nold libunwind library didn\u0027t support debug_frame.\nThe new libunwind supports debug_frame well, and since\nwe have switched to it, we can remove the legacy code.\n\nThe main advantage of debug_frame is that it can be\ncompressed as part of mini-debug-info.\n\nI am somewhat preserving the .eh_frame_hdr binary\nsearch table (renamed as .debug_frame_hdr.android).\n\nBug: 123621350\nTest: Generated framework oat files are identical.\nChange-Id: I35b18895482f2176e02df07b086af7a1d40f90d5\n"
    },
    {
      "commit": "a05344750f6996b32de18a25d0ba55115235dbb6",
      "tree": "f8a50bc1f5e8fe4c9f4bc69d7b690fd08611ab84",
      "parents": [
        "72c403b9b5027e7849a5145a0af0166f5d3d42c2",
        "68efa7b1128486e08ae60cd27181645b27bbd2e4"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Feb 12 11:45:06 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 12 11:45:06 2019 +0000"
      },
      "message": "Merge \"Add code size to CodeInfo\""
    },
    {
      "commit": "b756f70170bdd3b89714bcfbfd5bf8b71f352124",
      "tree": "a4a8ba7ca047e970c1a37cd350df85e549877062",
      "parents": [
        "72c403b9b5027e7849a5145a0af0166f5d3d42c2"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Mon Jan 28 22:40:47 2019 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Tue Feb 12 19:35:44 2019 +0900"
      },
      "message": "Rename libnativebridge-dummy-headers to libnativebridge-headers\n\nBug: 123403798\nTest: m\nChange-Id: Ia178d3cb91183ddcefafd04cb0ab31e1033710ca\n"
    },
    {
      "commit": "72c403b9b5027e7849a5145a0af0166f5d3d42c2",
      "tree": "ad8ab5ac98315bb971f771afb2103f3aee92018d",
      "parents": [
        "ec7d54c13ad5e88770776629e34c3d7fd75a20c3",
        "40b28aa9cd75b9a2f7cc8d2e9418de4ed1302c9b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 12 01:24:38 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 12 01:24:38 2019 +0000"
      },
      "message": "Merge \"Remove typo\u0027d variables\""
    },
    {
      "commit": "40b28aa9cd75b9a2f7cc8d2e9418de4ed1302c9b",
      "tree": "31819253bb269cbb95444c49a6e03e5a8af0263d",
      "parents": [
        "61a9328e807426636d3e29699cd978d4a7a345c0"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Feb 11 13:52:45 2019 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Feb 11 15:28:37 2019 -0800"
      },
      "message": "Remove typo\u0027d variables\n\nLOCAL_DEX_PREOPT_IMAGE_LOCATION :\u003d $(TARGET_CORE_IMG_OUT) doesn\u0027t\ndo anything because TARGET_CORE_IMG_OUT is never set.\n\nLOCAL_DEX_PREOPT_IMAGE :\u003d $(HOST_CORE_IMG_LOCATION) doesn\u0027t do\nanything because nothing reads LOCAL_DEX_PREOPT_IMAGE.\n\nNeither seems useful with LOCAL_DEX_PREOPT :\u003d false.\n\nTest: m checkbuild\nChange-Id: I26c0a848e15784c4dad6f8c3bb6786b98ac85c20\n"
    },
    {
      "commit": "ec7d54c13ad5e88770776629e34c3d7fd75a20c3",
      "tree": "ef152ff80f42b6486e5a02eee3fb7a02fbef15e7",
      "parents": [
        "794350fd0e21aa9e259b6c45394494871e7fdb13",
        "3611fdf703a6417c08a2e3d6e642d5936318de18"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Feb 11 23:13:53 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 11 23:13:53 2019 +0000"
      },
      "message": "Merge \"Prevent agents from delaying system daemon threads\""
    },
    {
      "commit": "3611fdf703a6417c08a2e3d6e642d5936318de18",
      "tree": "ef152ff80f42b6486e5a02eee3fb7a02fbef15e7",
      "parents": [
        "794350fd0e21aa9e259b6c45394494871e7fdb13"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Feb 06 15:10:58 2019 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Feb 11 11:03:22 2019 -0800"
      },
      "message": "Prevent agents from delaying system daemon threads\n\nThe runtime starts several important daemon threads that are\nresponsible for various GC related tasks (i.e. FinalizerDaemon, etc).\nThe runtime cannot be considered fully started until these threads\nhave been started or will be started soon.\n\nIt was possible for agents to delay the startup of these daemons\narbitrarily (while calling arbitrary java code) by never leaving the\nVMInit event or by never returning from the daemons ThreadStart\nevents. This could cause deadlocks or other errors when using some\nagents, such as libjdwp.\n\nIn order to prevent these issues and more closely match other java\nlanguage runtimes we launch these threads before sending the VMInit\nevent and suppress their ThreadStart events. The openjdkjvmti plugin\nthen waits for the Daemon threads to actually begin executing before\ncalling the VMInit event or any other agent code. This prevents the\nagents from seeing threads appear from nowhere.\n\nBug: 123696564\nTest: while atest CtsJdwpTestCases; do; done;\n\nChange-Id: I7e07187f3e8670f32df0490cb419585c13d81765\n"
    },
    {
      "commit": "68efa7b1128486e08ae60cd27181645b27bbd2e4",
      "tree": "bb3f56ecefe08b66f7a330a02caef0b089a0c2af",
      "parents": [
        "794350fd0e21aa9e259b6c45394494871e7fdb13"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Jan 28 18:59:23 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Feb 11 13:23:53 2019 +0000"
      },
      "message": "Add code size to CodeInfo\n\nThis temporarily adds 0.25% to oat file size.\nThe space will be reclaimed back in follow-up CL.\n\nBug: 123510633\nTest: DCHECK compare the two stored code sizes.\nChange-Id: I15340824ca637fd075a4cef87771b06cb96bb9f4\n"
    },
    {
      "commit": "794350fd0e21aa9e259b6c45394494871e7fdb13",
      "tree": "84dc682b40f38d0377639befe6f3d43e5655a43c",
      "parents": [
        "5e11568dfc82683223bf3dd81601f4548a6cdf2b",
        "a0b1903f38be4ac5c10040162e4d8abe9762a7e4"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Feb 11 13:16:37 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 11 13:16:37 2019 +0000"
      },
      "message": "Merge \"Rename variable containing Core Java libraries in build/apex/Android.bp.\""
    },
    {
      "commit": "5e11568dfc82683223bf3dd81601f4548a6cdf2b",
      "tree": "ddfa08fe37bde0053b20e7feae4fd8014b0f84cf",
      "parents": [
        "1e70b89afe0e022ec51210ea0da1e0706e194fd0",
        "38714e8535c7a7abaa69d3fb5b1f9cfd97ab1854"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 11 12:58:36 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 11 12:58:36 2019 +0000"
      },
      "message": "Merge \"ARM: Fix the CallOtherJustTooFarAfter test.\""
    },
    {
      "commit": "a0b1903f38be4ac5c10040162e4d8abe9762a7e4",
      "tree": "3742be0a22c5bf2fff989044c6b5e14a15d3df44",
      "parents": [
        "1e70b89afe0e022ec51210ea0da1e0706e194fd0"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Feb 08 15:59:56 2019 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Feb 11 11:22:18 2019 +0000"
      },
      "message": "Rename variable containing Core Java libraries in build/apex/Android.bp.\n\nRename `libcore_target_java_libs` as `libcore_java_libs`, as that\nvariable is used for both device and host APEX packages.\n\nTest: mmma art/build/apex\nBug: 113373927\nChange-Id: Iad2838437aacc3c267f140c036c6dfcd479bec6c\n"
    },
    {
      "commit": "38714e8535c7a7abaa69d3fb5b1f9cfd97ab1854",
      "tree": "6cd2aa17742f15c45ab0c583afd830ac03fd89ee",
      "parents": [
        "a9c9e85ea1c77d9badf27aebd63d617ccdf70dc3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Feb 07 15:06:30 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 11 10:45:39 2019 +0000"
      },
      "message": "ARM: Fix the CallOtherJustTooFarAfter test.\n\nAlign the ARM and ARM64 tests that are using the helper\nfunction Create2MethodsWithGap(), bringing the fix\n    https://android-review.googlesource.com/722671\nto the ARM architecture.\n\nTest: m test-art-host-gtest\nTest: Repeat with https://android-review.googlesource.com/890279\nBug: 123510633\nChange-Id: I6ef17e66013f39311ea6ea522b6704c8891e52df\n"
    },
    {
      "commit": "1e70b89afe0e022ec51210ea0da1e0706e194fd0",
      "tree": "1c2b9d0c52e008795ec122b4b904c85c103b3e31",
      "parents": [
        "61a9328e807426636d3e29699cd978d4a7a345c0",
        "6c70224ebd667b52a862f850893f6528af63f3e8"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 11 10:27:11 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 11 10:27:11 2019 +0000"
      },
      "message": "Merge changes Id4ffa9f9,I1bb5d05d\n\n* changes:\n  Replace MergeSets() with std::set::merge().\n  Replace StringPiece with std::string_view.\n"
    },
    {
      "commit": "61a9328e807426636d3e29699cd978d4a7a345c0",
      "tree": "2bbcaf55bad8241c53c3e02d948ede89eb6cc09a",
      "parents": [
        "dc77c47b72f3a0524c76581ffba6993d96fac047",
        "84bf698dad167c2c101d0119c6f358733ec6452b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Feb 09 01:16:32 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Feb 09 01:16:32 2019 +0000"
      },
      "message": "Merge changes from topic \"art-enable-apex-libs\"\n\n* changes:\n  Revert^2 \"Switch from version script to APEX stubs for libdexfile_external and add it to the Runtime APEX.\"\n  Add remaining libnative* libs to the Runtime APEX.\n"
    },
    {
      "commit": "dc77c47b72f3a0524c76581ffba6993d96fac047",
      "tree": "492c230ca500bf62b9789073d51bae4d197483b0",
      "parents": [
        "661aa034f7522bd066c2b2a904c59c5c277cd271",
        "6585ecbe5490c0bf1779f29ab6717443ad6b8726"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 08 23:55:29 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 08 23:55:29 2019 +0000"
      },
      "message": "Merge \"Add libartd-disassembler to com.android.runtime.host\""
    },
    {
      "commit": "6585ecbe5490c0bf1779f29ab6717443ad6b8726",
      "tree": "492c230ca500bf62b9789073d51bae4d197483b0",
      "parents": [
        "661aa034f7522bd066c2b2a904c59c5c277cd271"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Feb 08 14:13:22 2019 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Feb 08 14:14:39 2019 -0800"
      },
      "message": "Add libartd-disassembler to com.android.runtime.host\n\nThis library is needed to use com.android.runtime.host for run-tests\nsince the checker needs this library to be in the normal\nLD_LIBRARY_PATH and it is not marked as a test_library.\n\nTest: ./art/test/testrunner/run_build_test_target.py -j72 art-linux-bionic-x64-zipapex\n\nChange-Id: I8fe2e117d4734edcbccbb2958d2f2ae9876b2af7\n"
    },
    {
      "commit": "661aa034f7522bd066c2b2a904c59c5c277cd271",
      "tree": "560dcfa2261f28b19f5dee8aa543ca1fc5f546dd",
      "parents": [
        "c02102cc78bd246e5f34419400baa7b751828171",
        "44a6f978d7989f368155480a2d75e52a7d663879"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 08 20:06:32 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 08 20:06:32 2019 +0000"
      },
      "message": "Merge \"ART: Remove obsolete comment.\""
    },
    {
      "commit": "44a6f978d7989f368155480a2d75e52a7d663879",
      "tree": "cc7a55280ce9579c574bbbd6c5e30bdaab0f273b",
      "parents": [
        "a9c9e85ea1c77d9badf27aebd63d617ccdf70dc3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 08 18:07:49 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 08 18:08:31 2019 +0000"
      },
      "message": "ART: Remove obsolete comment.\n\nHInstruction::GetKind() no longer involves virtual dispatch.\n\nTest: Rely on TreeHugger\nChange-Id: Id0cc04ab5e4b30c69fb32367558405f9c11b30ff\n"
    },
    {
      "commit": "6c70224ebd667b52a862f850893f6528af63f3e8",
      "tree": "43e1ed17ee7fdfd7081cb07e11700b77c38a5a52",
      "parents": [
        "8581e2a234b562880c1d6c6b5ad14d23f7b597ed"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Feb 07 16:17:33 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 08 17:19:20 2019 +0000"
      },
      "message": "Replace MergeSets() with std::set::merge().\n\nAnd clear up ownership of the VerifierDeps being merged\nby using std::unique_ptr\u003c\u003e.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nBug: 123750182\nChange-Id: Id4ffa9f9fa1968fa762b9e825f25827240f6d45d\n"
    },
    {
      "commit": "c02102cc78bd246e5f34419400baa7b751828171",
      "tree": "c7c3ed6922eae9f1b9a7792f98c0bd3e5650e7bf",
      "parents": [
        "a9c9e85ea1c77d9badf27aebd63d617ccdf70dc3",
        "0239f2fb199735171f1b12c8b3d8360d0bfb3993"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Feb 08 15:38:24 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 08 15:38:24 2019 +0000"
      },
      "message": "Merge \"Change com.android.runtime.host to be an installable test_apex\""
    },
    {
      "commit": "a9c9e85ea1c77d9badf27aebd63d617ccdf70dc3",
      "tree": "ba25d03f5c3d09cb6121051085997a41ea4a489d",
      "parents": [
        "e0f8bb99ad5c6f33d530f1157e1a116c42970deb",
        "481bcb2d4f7cd2876d30dea7356df89d4ab94141"
      ],
      "author": {
        "name": "Pete Gillin",
        "email": "peteg@google.com",
        "time": "Fri Feb 08 11:26:58 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 08 11:26:58 2019 +0000"
      },
      "message": "Merge \"Fix host-only exception in art test 005-annotations.\""
    },
    {
      "commit": "e0f8bb99ad5c6f33d530f1157e1a116c42970deb",
      "tree": "0bc6b20a848b0d15dc25e601386c70581c137516",
      "parents": [
        "3b241361b639c297c99a1b00f40e89ad7fd184b8",
        "e512556ab85987c52e4be1fcd6d7a1d15a1b0fb6"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 08 10:24:41 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 08 10:24:41 2019 +0000"
      },
      "message": "Merge \"Replace StringPiece with std::string_view in profman.\""
    },
    {
      "commit": "0239f2fb199735171f1b12c8b3d8360d0bfb3993",
      "tree": "1f4c56de94fbda6c7bcfecdb0c9faa89e6bdec50",
      "parents": [
        "3b241361b639c297c99a1b00f40e89ad7fd184b8"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Feb 07 13:38:50 2019 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Feb 07 16:51:48 2019 -0800"
      },
      "message": "Change com.android.runtime.host to be an installable test_apex\n\nWe need this module to actually be built and installed to the\nout-directory but we don\u0027t want it to affect the libraries installed\non actual devices so make it a test_apex.\n\nBug: 123892969\nBug: 123892969\nTest: Build and boot\nTest: ./art/test/testrunner/run_build_test_target.py -j72 art-linux-bionic-x64-zipapex\nChange-Id: I9950698863fb280cbdc6dfa4743985c0217d2e7c\n"
    },
    {
      "commit": "3b241361b639c297c99a1b00f40e89ad7fd184b8",
      "tree": "775730a2303cd7a4783c383b2380dde25408dca0",
      "parents": [
        "5d3ac96501648d0552535fe430254666a4a320f8",
        "a88abfa91af92e87b806529813a1787568fdb032"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Feb 07 21:28:37 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 07 21:28:37 2019 +0000"
      },
      "message": "Merge \"Add feature flag for loading app image startup cache\""
    },
    {
      "commit": "5d3ac96501648d0552535fe430254666a4a320f8",
      "tree": "f39f4504df417349fa5e5b772bc82eff03df6bb2",
      "parents": [
        "8e1ca6103de597cec698b2337d19a94d17ae8338",
        "f7f315253bbe204c5e69608b7010438924623d77"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Feb 07 17:06:14 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 07 17:06:14 2019 +0000"
      },
      "message": "Merge \"Update zipapex tests to run fully out of the zipapex\""
    },
    {
      "commit": "84bf698dad167c2c101d0119c6f358733ec6452b",
      "tree": "072e00d1773571ff25455be79dcc44e301772fff",
      "parents": [
        "c2f8b5086545b6ddb7bacb30f78539f7582696ea"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Tue Feb 05 15:07:57 2019 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Feb 07 15:23:37 2019 +0000"
      },
      "message": "Revert^2 \"Switch from version script to APEX stubs for libdexfile_external and add it to the Runtime APEX.\"\n\nThis reverts commit 7e7ab23b780767fac89e37ca81a1bc8c4cc74e67.\n\nReason for revert: Another try with http://r.android.com/892234 in place.\n\nTest: m checkbuild dist\nTest: m\nTest: m oatdumps\nTest: Flash and boot\nTest: art/build/apex/runtests.sh\nBug: 119632407\nBug: 120670568\nBug: 122885634\nChange-Id: I037d8b5ebae4ba1c0b84d3ac2ac396f6065407a7\n"
    },
    {
      "commit": "c2f8b5086545b6ddb7bacb30f78539f7582696ea",
      "tree": "66b983951f572fa9075c4ea86572ae0ee976294d",
      "parents": [
        "8e1ca6103de597cec698b2337d19a94d17ae8338"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Jan 17 14:51:35 2019 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Feb 07 15:23:37 2019 +0000"
      },
      "message": "Add remaining libnative* libs to the Runtime APEX.\n\nTest: Flash and boot\nTest: atest CtsJniTestCases\nTest: Boot test on internal tree\nBug: 113373927\nChange-Id: I95273ee11c9c0d93fbd1aea4494f6f705dfb44c7\n"
    },
    {
      "commit": "8581e2a234b562880c1d6c6b5ad14d23f7b597ed",
      "tree": "460059a1717d7507fa2854c3d458ce0250ba2bbd",
      "parents": [
        "e512556ab85987c52e4be1fcd6d7a1d15a1b0fb6"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 06 15:54:55 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Feb 07 14:13:58 2019 +0000"
      },
      "message": "Replace StringPiece with std::string_view.\n\nThis replaces the last few StringPiece uses and removes\nthe stringpiece.h.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 123750182\nChange-Id: I1bb5d05df47319b6ca386db01e14ce048ae54daf\n"
    },
    {
      "commit": "e512556ab85987c52e4be1fcd6d7a1d15a1b0fb6",
      "tree": "16e82b22829a269dcb7b8c305bb0a44c6f74c58e",
      "parents": [
        "2f34e59c10c30ea24fa5f4bc4e3d5a9dc6469c34"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 06 17:38:26 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Feb 07 12:29:35 2019 +0000"
      },
      "message": "Replace StringPiece with std::string_view in profman.\n\nAnd in dexoptanalyzer and hiddenapi, see below.\n\nThe parsing helpers in utils.h were mostly unused, only\nprofman was calling one of them, so move that helper to\nprofman and rewrite and fix it, remove the other helpers.\nThis exposed dependency of dexoptanalyzer and hiddenapi\non StringPiece indirectly included from utils.h, thus we\nreplace it with std::string_view also in those tools.\n\nDuring the rewrite, avoid using std::string_view::data()\nas a null terminated string, prefer to fall back to the\noriginal null terminated raw option instead.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 123750182\nChange-Id: Ibeec8069a5d82ea556e03e4577812f94dca6f387\n"
    },
    {
      "commit": "8e1ca6103de597cec698b2337d19a94d17ae8338",
      "tree": "c485c00a7a74406670b36b937a150f72468a0565",
      "parents": [
        "3a8761f8451276300350bcfa50910105e88505df",
        "8fd6722f5840385462a31bd701426b3749ac1031"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Feb 07 09:50:53 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 07 09:50:53 2019 +0000"
      },
      "message": "Merge \"Generalize vdex class redefinition check\""
    },
    {
      "commit": "3a8761f8451276300350bcfa50910105e88505df",
      "tree": "3109b3e60b2afc097b713c0c317546c57bf44b10",
      "parents": [
        "11586a595b2c2a85607099547a911e58e5fc8978",
        "734ba1cc840632080dc9adcc831fb71806111ffd"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 07 07:27:33 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 07 07:27:33 2019 +0000"
      },
      "message": "Merge \"Remove ART hack to create hiddenapi-flags.csv\""
    },
    {
      "commit": "11586a595b2c2a85607099547a911e58e5fc8978",
      "tree": "99e9ff06fe98644ebdc774474fa642a3c62e4176",
      "parents": [
        "cd7cedb5eede306756fc0810fddcf526d4d6598c",
        "7c73dd1cdb111853779dad21d9090b4a00aefe95"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Wed Feb 06 22:42:38 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 06 22:42:38 2019 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Prevent overflows for concurrent_start_bytes_ sum\"\"\""
    },
    {
      "commit": "cd7cedb5eede306756fc0810fddcf526d4d6598c",
      "tree": "86666757be5d82a8143ac2661b488db59f199ab8",
      "parents": [
        "2f34e59c10c30ea24fa5f4bc4e3d5a9dc6469c34",
        "905e8a2e4c8beb338fd2964da7755e1739e57734"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 06 22:03:23 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 06 22:03:23 2019 +0000"
      },
      "message": "Merge \"Add VMStart, VMInit, and VMDeath to tifast\""
    },
    {
      "commit": "b81d22d2cb4af88b438f9aeb5131d34a377faaee",
      "tree": "e3751a535cf8442eb6f89b0e4c98bd842cf98428",
      "parents": [
        "2f34e59c10c30ea24fa5f4bc4e3d5a9dc6469c34"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Feb 06 12:42:54 2019 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Feb 06 22:00:57 2019 +0000"
      },
      "message": "Use OnceKey in art.go\n\nOnce is changing to take a type-safe key, use android.NewOnceKey\nin art.go.\n\nTest: m checkbuild\n"
    },
    {
      "commit": "734ba1cc840632080dc9adcc831fb71806111ffd",
      "tree": "b7daed3b4e833dd1eb0d78bed9f12428bbf22d44",
      "parents": [
        "2f34e59c10c30ea24fa5f4bc4e3d5a9dc6469c34"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Feb 06 10:54:41 2019 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Feb 06 12:43:33 2019 -0800"
      },
      "message": "Remove ART hack to create hiddenapi-flags.csv\n\nAn empty file will be created by the Soong hiddenapi singleton rules\nif frameworks/base is not present.\n\nBug: 123645297\nTest: forrest master-art-host\nChange-Id: I8fde13a76fc12830e60dca4db9c7b2f6ce32ea7a\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": "905e8a2e4c8beb338fd2964da7755e1739e57734",
      "tree": "86666757be5d82a8143ac2661b488db59f199ab8",
      "parents": [
        "2f34e59c10c30ea24fa5f4bc4e3d5a9dc6469c34"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Feb 06 11:41:14 2019 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Feb 06 19:47:07 2019 +0000"
      },
      "message": "Add VMStart, VMInit, and VMDeath to tifast\n\nThese can be useful for investigating the ordering and filtering of\nevents sent by various java language runtimes.\n\nTest: art --64 \\\n          -Xplugin:$ANDROID_HOST_OUT/lib64/libopenjdkjvmti.so \\\n          -agentpath:$ANDROID_HOST_OUT/lib64/libtifastd.so\u003dlog,VMInit,VMStart,VMDeath,ThreadStart \\\n          -cp classes.dex \\\n          Main\nTest: java -agentpath:$ANDROID_HOST_OUT/lib64/libtifastd.so\u003dlog,VMInit,VMStart,VMDeath,ThreadStart \\\n           -cp . \\\n           Main\n\nChange-Id: I54320230ce567c8e947bc7c4835f5ba32e3072e3\n"
    },
    {
      "commit": "7c73dd1cdb111853779dad21d9090b4a00aefe95",
      "tree": "c33963dc52f70d024410fc09f6def29f8bfe380c",
      "parents": [
        "8197e77c9b330c56662f66636dafca1bcbc9afcf"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Wed Feb 06 00:20:18 2019 +0000"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Wed Feb 06 11:40:57 2019 -0800"
      },
      "message": "Revert \"Revert \"Prevent overflows for concurrent_start_bytes_ sum\"\"\n\nThis reverts commit 83ba9b979d932a5b6430c1affd171429b70b6c3f.\n\nIt also fixes a bug exposed by the original CL, and cleans up a\ncouple of related issues:\n\n- CheckConcurrentGCForNative was renamed to reflect the fact that\nit does not just deal with concurrent GC.\n\n- In the non-concurrent case, concurrent_start_bytes_ is not\nmeaningful; use target_footprint_ instead.\n\n- UnsignedSum should use \u003e\u003d instead of \u003e .\n\nThe middle one of these caused the test failures observed with the\nprevious CL.\n\nTest: Build without read barrier, and ran with --runtime-option\u003d-Xgc:SS\n\nChange-Id: Iae004c453bf2cae2739df66b6797af4a792886fc\n"
    },
    {
      "commit": "2f34e59c10c30ea24fa5f4bc4e3d5a9dc6469c34",
      "tree": "9360a99feb7a1aa6fe7b2685429ddb49b17a5e7c",
      "parents": [
        "c66d6a7569ef72d9e9eb115bb7b663ccc8df5179",
        "7210108e6d930f9b8bcf5eac6b7a03ea29f92f84"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 06 18:00:50 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 06 18:00:50 2019 +0000"
      },
      "message": "Merge changes I14c7cddd,I4a39d0e8,I3f24c8f4,I9699f138\n\n* changes:\n  Replace StringPiece with std::string_view in art/runtime/.\n  Replace StringPiece with std::string_view in HashSet.\n  Replace StringPiece with std::string_view in Signature.\n  Replace StringPiece with std::string_view in class.h.\n"
    },
    {
      "commit": "8fd6722f5840385462a31bd701426b3749ac1031",
      "tree": "7e5f202ed5596815c3638173273ab7d490c25636",
      "parents": [
        "ac52000e86077b3c45c192ec259d72413599ff11"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Feb 05 18:13:44 2019 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Feb 06 17:34:57 2019 +0000"
      },
      "message": "Generalize vdex class redefinition check\n\nThe check introduced in CL If0c56b1970d8ebe701d198ffccec52f586aea9e6\nskips fast verification if an apk\u0027s class is overshadowed by a class in\nboot classpath because the vdex dependencies do not contain intra-apk\ndependencies.\n\nHowever, the change only checks for presence of a duplicate class in the\nboot classloader, while a duplicate class could be in any of the parent\nclassloaders. Fix this and move the check into VerifierDeps to make it\na proper part of the verification process.\n\nThe CL also refactors VerifierDeps::ValidateDependencies to output\nan error string for better logging.\n\nBug: 122968669\nTest: test/testrunner/testrunner.py -t 719\nTest: m test-art-gtest-verifier_deps_test\nChange-Id: I0d06b82e31088c58d4493723a5435309740f1d0c\n"
    },
    {
      "commit": "f7f315253bbe204c5e69608b7010438924623d77",
      "tree": "c70054a8b74734d8622f59f26ce0e95100253c14",
      "parents": [
        "5fe64d84822bf86d72d941c271c93ecbb0ff0742"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Feb 01 11:14:41 2019 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Feb 06 09:28:04 2019 -0800"
      },
      "message": "Update zipapex tests to run fully out of the zipapex\n\nThe zipapex tests could access non-test libraries not included in the\nzipapex. This caused us to miss the fact that several important\nlibraries were missing from the zipapex. This changes the test script\nto prevent this issue and adds several missing dependencies to the\ncom.android.runtime.host zipapex.\n\nTest: ./art/test/testrunner/run_build_test_target.py -j72 art-linux-bionic-x64-zipapex\nBug: 123591866\nChange-Id: Ie4858bafb5446ebbb62782191b05bab2a8369853\n"
    },
    {
      "commit": "c66d6a7569ef72d9e9eb115bb7b663ccc8df5179",
      "tree": "0b7e519f6f46ac231e932b9ee798a4c4b09b43e0",
      "parents": [
        "b7abcaff75e824af8fd5104981404ce1b97b86e9",
        "1cedb4a2779fd161f781503fd5de08cab0a1c85b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 06 17:06:22 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 06 17:06:22 2019 +0000"
      },
      "message": "Merge \"ART: Move .bss mappings check before .bss init.\""
    },
    {
      "commit": "b7abcaff75e824af8fd5104981404ce1b97b86e9",
      "tree": "2263ada8cae4f1464700614c3e0cad9a392fc491",
      "parents": [
        "8197e77c9b330c56662f66636dafca1bcbc9afcf",
        "22e22236cc12c977c01a8d10d4cc0906fc5ead2e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 06 15:10:46 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 06 15:10:46 2019 +0000"
      },
      "message": "Merge \"ART: Use C++17 extract/modify/insert pattern.\""
    },
    {
      "commit": "1cedb4a2779fd161f781503fd5de08cab0a1c85b",
      "tree": "a9c0b7082e0d5d2f1b931eac7db3fcf9b0d46862",
      "parents": [
        "7909e1e4cc741b38b25328e2f9077beb7ecd018b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 06 14:13:28 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 06 14:15:00 2019 +0000"
      },
      "message": "ART: Move .bss mappings check before .bss init.\n\nPreviously the check was done before we compared the dex\nfile checksums, so an out of date oat file could have\nfailed the check. Now we\u0027re doing the check only if we\u0027re\ninitializing the .bss section for use by an executable oat\nfile, i.e. after matching the dex file checksums.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 119601889\nChange-Id: Ib79d84c5bc2cf0674fc1f76071c589d49663e13c\n"
    },
    {
      "commit": "7210108e6d930f9b8bcf5eac6b7a03ea29f92f84",
      "tree": "809a2477f11a98eeb5f258635489424841e6feba",
      "parents": [
        "2ef01100bb56b3f8ab5fbc886a7066d721290d74"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 05 16:16:30 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 06 14:05:17 2019 +0000"
      },
      "message": "Replace StringPiece with std::string_view in art/runtime/.\n\nAnd in art/test/.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 123750182\nChange-Id: I14c7cddd7ba4fb2183c643d32a89b594008d8bd0\n"
    },
    {
      "commit": "2ef01100bb56b3f8ab5fbc886a7066d721290d74",
      "tree": "a60e1265e2b1e733832047417e93a9c3ae1e6165",
      "parents": [
        "eb37ba594146338bf7e7e2bf3769d08046fb263f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 05 15:05:10 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 06 14:05:12 2019 +0000"
      },
      "message": "Replace StringPiece with std::string_view in HashSet.\n\nUpdate HashSet comment and related code. Also remove dead\nCompilerOptions declarations with StringPiece parameters.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 123750182\nChange-Id: I4a39d0e8e0392a414129369c5b304ec4813e9ed5\n"
    },
    {
      "commit": "eb37ba594146338bf7e7e2bf3769d08046fb263f",
      "tree": "7fac104aed3aec8d8390c8cbe1f7fbd85b4f998a",
      "parents": [
        "e027d727b833930f1bd0029bc1b2cf750d8af5da"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 05 14:10:38 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 06 12:24:10 2019 +0000"
      },
      "message": "Replace StringPiece with std::string_view in Signature.\n\nAnd also in Signature-related code. Remove the function\nDexFile::CreateSignature() which was used only in a test\nas the test can use method searching functions that take\nstd::string_view instead.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 123750182\nChange-Id: I3f24c8f4f677e2e40503dbab347df1eb031b4132\n"
    },
    {
      "commit": "e027d727b833930f1bd0029bc1b2cf750d8af5da",
      "tree": "0bb05206b8c019798bd3ffede02fb9243d08e615",
      "parents": [
        "ac52000e86077b3c45c192ec259d72413599ff11"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 05 10:13:49 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 06 11:56:16 2019 +0000"
      },
      "message": "Replace StringPiece with std::string_view in class.h.\n\nTranslate the std::string_view to StringPiece where\nneeded for comparing with Signature until we change\nthe Signature::operator\u003d\u003d() to take std::string_view.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 123750182\nChange-Id: I9699f13882353d84dc69e6b8e30d12dac4bace24\n"
    },
    {
      "commit": "8197e77c9b330c56662f66636dafca1bcbc9afcf",
      "tree": "ca947671b161d03e6ea7f7a5d73fd1f3525adfb3",
      "parents": [
        "69661d10457c29bd38c363f78741b2d5161816cc",
        "1410e9fd50933a085ba2d333ad02913318ae368e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 06 00:25:28 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 06 00:25:28 2019 +0000"
      },
      "message": "Merge \"Reland: \"ART: Hook Runtime APEX checker into build\"\""
    },
    {
      "commit": "69661d10457c29bd38c363f78741b2d5161816cc",
      "tree": "c1b257b68c34411d8ff6add035aa383fae668388",
      "parents": [
        "406d6b8dc8f9a1fefa3e46e15a3b03f37010ae7b",
        "a538ed5b56e3cdc43cb0c338f1e0826f4f79cc26"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 05 19:03:48 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 05 19:03:48 2019 +0000"
      },
      "message": "Merge \"ART: Remove stale comment\""
    },
    {
      "commit": "406d6b8dc8f9a1fefa3e46e15a3b03f37010ae7b",
      "tree": "daad6e34cd0f3caf8ad63143ea2980e26f927451",
      "parents": [
        "898cf1d947a7086d6cef53fe8664c600aed814e7",
        "9f3928f2f10ad53af12d825e093f57d337f2d570"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 05 19:01:39 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 05 19:01:39 2019 +0000"
      },
      "message": "Merge \"ART: Change vtable check implementation\""
    },
    {
      "commit": "898cf1d947a7086d6cef53fe8664c600aed814e7",
      "tree": "dee7b51a244648fd4b54da71f930f0788ea37f23",
      "parents": [
        "b7816036f879781b1490307c9ee06d9f1b12ad5f",
        "3aa868aba9cc4d9b61898f7fbfac7a4bccdb74d4"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 05 18:49:46 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 05 18:49:46 2019 +0000"
      },
      "message": "Merge \"ART: Add unchecked conversions of arrays\""
    },
    {
      "commit": "a538ed5b56e3cdc43cb0c338f1e0826f4f79cc26",
      "tree": "c1b257b68c34411d8ff6add035aa383fae668388",
      "parents": [
        "9f3928f2f10ad53af12d825e093f57d337f2d570"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Feb 05 08:46:14 2019 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Feb 05 08:46:14 2019 -0800"
      },
      "message": "ART: Remove stale comment\n\nFollow-up to commit a2fed081e33bcc956ebc545aacd654ec6a32673d.\n\nBug: 123888325\nTest: N/A\nChange-Id: I1ad8bbe946e84c49bbf9ba3be606d213313b273c\n"
    },
    {
      "commit": "22e22236cc12c977c01a8d10d4cc0906fc5ead2e",
      "tree": "1df2e62e339e51b58e682df9a668ff5f3099dfe5",
      "parents": [
        "7909e1e4cc741b38b25328e2f9077beb7ecd018b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 05 16:35:01 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 05 16:35:01 2019 +0000"
      },
      "message": "ART: Use C++17 extract/modify/insert pattern.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 123750182\nChange-Id: I2721948a566cc11d351324d173b4e1c8e5e54f53\n"
    },
    {
      "commit": "b7816036f879781b1490307c9ee06d9f1b12ad5f",
      "tree": "13e1fc19a737dff8cd416725bce6329086516c99",
      "parents": [
        "2860c19944b64c581a8af63339805409c0584d2f",
        "a2fed081e33bcc956ebc545aacd654ec6a32673d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 05 16:34:51 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 05 16:34:51 2019 +0000"
      },
      "message": "Merge \"ART: Optimize array accesses\""
    },
    {
      "commit": "9f3928f2f10ad53af12d825e093f57d337f2d570",
      "tree": "daad6e34cd0f3caf8ad63143ea2980e26f927451",
      "parents": [
        "3aa868aba9cc4d9b61898f7fbfac7a4bccdb74d4"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Feb 04 11:19:31 2019 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Feb 05 08:32:49 2019 -0800"
      },
      "message": "ART: Change vtable check implementation\n\nTrade space for performance and use a (pseudo-)linear implementation\nfor CheckVTableHasNoDuplicates.\n\nThe new algorithm has a first pass that attempts to check under the\nassumption that all entries are from the same dex file, and a second\npass dedicated for the cross-dex-file case.\n\nBoth passes use maps to store discovered information and detect\nduplicates via existing entries. The code is complicated by an effort\nto reduce repeated hashing overhead.\n\nDecreases dex2oatd preopting of a big app from 150s to 35s.\n\nBug: 123888325\nTest: m test-art-host\nChange-Id: I3e5e3c8ccfeaf94b89b045eb691ec88556399ae6\n"
    },
    {
      "commit": "3aa868aba9cc4d9b61898f7fbfac7a4bccdb74d4",
      "tree": "dee7b51a244648fd4b54da71f930f0788ea37f23",
      "parents": [
        "a2fed081e33bcc956ebc545aacd654ec6a32673d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Feb 04 11:18:43 2019 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Feb 05 08:31:26 2019 -0800"
      },
      "message": "ART: Add unchecked conversions of arrays\n\nAdd array conversion functions that do not check the type,\nand use them in an unchecked version for PointerArray.\n\nDecreases dex2oatd preopting of a big app from 151s to 150s.\n\nBug: 123888325\nTest: m test-art-host\nChange-Id: Id58c65ac603a20c2cfb9e3289af4f3bc323554b6\n"
    },
    {
      "commit": "a2fed081e33bcc956ebc545aacd654ec6a32673d",
      "tree": "13e1fc19a737dff8cd416725bce6329086516c99",
      "parents": [
        "2860c19944b64c581a8af63339805409c0584d2f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Feb 01 09:34:43 2019 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Feb 05 08:00:37 2019 -0800"
      },
      "message": "ART: Optimize array accesses\n\nOptimize computation of the data offset of arrays by adding\na constant for the array payload field offset, and templatized\nversions of the computation. Add a correctness check on runtime\ncreation.\n\nTemplatize CheckVTableHasNoDuplicates.\n\nDecreases dex2oatd preopting of a big app from 165s to 151s.\n\nBug: 123888325\nTest: m test-art-host\nChange-Id: I8db9df545dc807a307aef8af7dad7a15757670b1\n"
    },
    {
      "commit": "481bcb2d4f7cd2876d30dea7356df89d4ab94141",
      "tree": "33a0d3331a671d238c479833a7968edc708db350",
      "parents": [
        "8a64e773d4d1221166c6a8206315b450e448705a"
      ],
      "author": {
        "name": "Pete Gillin",
        "email": "peteg@google.com",
        "time": "Tue Feb 05 14:58:42 2019 +0000"
      },
      "committer": {
        "name": "Pete Gillin",
        "email": "peteg@google.com",
        "time": "Tue Feb 05 14:58:42 2019 +0000"
      },
      "message": "Fix host-only exception in art test 005-annotations.\n\nThis test involves a method which has an annotation which has an\nenum-valued parameter, and the enum value supplied exists in the\nversion of the enum which is used at compile-time but not in the\nversion of the enum on the classpath. The test previously asserted\nthat calling java.lang.reflect.Method.getDeclaredAnnotations() should\nthrow java.lang.NoSuchFieldError. This matches the libcore+art\nbehaviour, so the test passes in --host mode. But it fails in --jvm\nmode, as a java.lang.annotation.AnnotationFormatError is thrown there.\n\nThe javadoc doesn\u0027t strongly support an argument that one of these is\nmore correct than the other, and there\u0027s no reason to believe that\nanyone is depending on one behaviour or the other. This change\ntherefore doesn\u0027t affect the behaviour of art+libcore, but makes the\ntest accept Error more generally.\n(https://developer.android.com/reference/java/lang/reflect/AnnotatedElement)\n\nThis therefore stops the test throwing an exception in --jvm\nmode. There are still differences between the expected and actual\noutput of the test, around e.g. whether string-valued parameters\nshould be quoted or not.\n\nBug: 73897123\nTest: `art/test/run-test --jvm --dev 005-annotations` now completes successfully instead of failing with an exception\nTest: `art/test/run-test --jvm 005-annotations` now shows output diff instead of failing with an exception\nTest: `art/test/run-test --host 005-annotations` still passes\nChange-Id: I11a8c0933555c513adb26b34015e4918025a05df\n"
    },
    {
      "commit": "2860c19944b64c581a8af63339805409c0584d2f",
      "tree": "838afe42daa933ffc03b96873c67673e14b4da9f",
      "parents": [
        "7909e1e4cc741b38b25328e2f9077beb7ecd018b",
        "1d775d2ecfe847395e67310d588626962744c2d0"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Feb 05 14:19:51 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 05 14:19:51 2019 +0000"
      },
      "message": "Merge \"Check that the String class is not movable in String.equals intrinsics.\""
    },
    {
      "commit": "7909e1e4cc741b38b25328e2f9077beb7ecd018b",
      "tree": "b59583aa7e9d865d46c5bc8dec00729c649d4756",
      "parents": [
        "ca3c6d9231aa8e4a9ca7c9040398d57f130441a0",
        "7f88c1a269754001bfcaf311b378cf1cc71acf84"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Feb 05 12:50:51 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 05 12:50:51 2019 +0000"
      },
      "message": "Merge \"ART: Enable ISA features run-time detection for ARM64\""
    },
    {
      "commit": "ca3c6d9231aa8e4a9ca7c9040398d57f130441a0",
      "tree": "31cc28f85aa3c572ec8988e0d92f29b2e05b8158",
      "parents": [
        "ac52000e86077b3c45c192ec259d72413599ff11",
        "83ba9b979d932a5b6430c1affd171429b70b6c3f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 05 12:03:23 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 05 12:03:23 2019 +0000"
      },
      "message": "Merge \"Revert \"Prevent overflows for concurrent_start_bytes_ sum\"\""
    },
    {
      "commit": "83ba9b979d932a5b6430c1affd171429b70b6c3f",
      "tree": "6c1f05e652815a20d1792f7654c1792acdba7721",
      "parents": [
        "50b04451431c648a36d2b0f84d728c1ecaf8b71b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 05 12:02:33 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 05 12:02:33 2019 +0000"
      },
      "message": "Revert \"Prevent overflows for concurrent_start_bytes_ sum\"\n\nThis reverts commit 50b04451431c648a36d2b0f84d728c1ecaf8b71b.\n\nReason for revert: Broke tests (debug-gc, gss, ss).\n\nBug: 123772350\nChange-Id: I3c7948b966f7e051e26b470cda5f6e5cb387ff54\n"
    },
    {
      "commit": "ac52000e86077b3c45c192ec259d72413599ff11",
      "tree": "89ba8256f3aaf8c2ca06782b98cf1d7e89506667",
      "parents": [
        "01eb773f391aaffdf5a959d894c6f5092778b051",
        "b0f16e6fca217b67e0b47da49896781dba429130"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 05 10:13:24 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 05 10:13:24 2019 +0000"
      },
      "message": "Merge changes I888a268b,Ia5a3c0bb,I189841e4,I5ab8b0b0\n\n* changes:\n  Replace StringPiece with std::string_view in RegType.\n  Replace StringPiece with std::string_view in OatFile.\n  ART: Change ArtMethod::NumArgRegisters() signature.\n  Remove dead String::Equals() overloads.\n"
    },
    {
      "commit": "01eb773f391aaffdf5a959d894c6f5092778b051",
      "tree": "e4d358b9e7efd82361ab453ec3156324c97048cf",
      "parents": [
        "d0c3a6cbc9279da29230704fa9bda6459b83fec4",
        "50b04451431c648a36d2b0f84d728c1ecaf8b71b"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Tue Feb 05 01:59:26 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 05 01:59:26 2019 +0000"
      },
      "message": "Merge \"Prevent overflows for concurrent_start_bytes_ sum\""
    },
    {
      "commit": "50b04451431c648a36d2b0f84d728c1ecaf8b71b",
      "tree": "114a685bd11fb4ee84e4b453bcaeef82f79605a2",
      "parents": [
        "9b596c0a1e0c26cb0b0bf180f12a830c9c870458"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Fri Feb 01 18:00:49 2019 -0800"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Mon Feb 04 13:14:28 2019 -0800"
      },
      "message": "Prevent overflows for concurrent_start_bytes_ sum\n\nconcurrent_start_bytes_ can be mnumeric_limits\u003csize_t\u003e::max()\n\nBug: 123772350\nTest: Boot AOSP, TreeHugger\n\nChange-Id: I2ee7cf9c94523ad92a00854abcfd81960f4bd007\n"
    },
    {
      "commit": "d0c3a6cbc9279da29230704fa9bda6459b83fec4",
      "tree": "1e558d2526b0111b05a1edc701ae3b5ce421418e",
      "parents": [
        "436e1428b7f9fce912581c7f9fff08da6311d8cc",
        "1a862c8f4895e175b3cf4e68d0594f7f70db8377"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Mon Feb 04 17:51:32 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 04 17:51:32 2019 +0000"
      },
      "message": "Merge \"Fix criteria to decide should next GC be minor\""
    },
    {
      "commit": "1a862c8f4895e175b3cf4e68d0594f7f70db8377",
      "tree": "e8c8f38cbf430b926720c76fab71671a23433fab",
      "parents": [
        "db48919b682fe237ae8198ed12d933705b442144"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Fri Feb 01 11:05:04 2019 -0800"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Mon Feb 04 09:49:22 2019 -0800"
      },
      "message": "Fix criteria to decide should next GC be minor\n\nA GC throughput (in terms of freed-bytes per second) comparison between\nminor GCs and full GCs is used to decide whether the next GC should be\nminor or full. To take care of the corner case wherein minor GC\u0027s\nthroughput never falls below that of full GC\u0027s, a cap is put on\nbytes_allocated to not go over target_footprint. This cap,\nin case of concurrent GCs, should be at concurrent_start_bytes as that\nis when a GC cycle is triggered.\n\nTest: art/test/testrunner/testrunner.py --target\nTest: Golem benchmarks to confirm performance isn\u0027t affected\nBug: 123662955\nChange-Id: I94afd04f3fcac86d6f9cec6a1af407c5be599b26\n"
    },
    {
      "commit": "b0f16e6fca217b67e0b47da49896781dba429130",
      "tree": "c176db28304cf2dbaa1b5f003c635736a15a229b",
      "parents": [
        "59ae4f949c26266a60ba0318995b46b4308312bb"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 04 16:17:37 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 04 16:38:16 2019 +0000"
      },
      "message": "Replace StringPiece with std::string_view in RegType.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 123750182\nChange-Id: I888a268bbec4eb0e5a19b0bc2a4a97e3492feda5\n"
    },
    {
      "commit": "59ae4f949c26266a60ba0318995b46b4308312bb",
      "tree": "93ceebafd3b019ac3f7c36c828ce8f43c7c71a25",
      "parents": [
        "6e78158c7a0acad7fcb5c9e1b45ab7acda796671"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 04 14:06:02 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 04 16:38:16 2019 +0000"
      },
      "message": "Replace StringPiece with std::string_view in OatFile.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 123750182\nChange-Id: Ia5a3c0bb5fdfba7cf88b82768c6722493e258554\n"
    },
    {
      "commit": "6e78158c7a0acad7fcb5c9e1b45ab7acda796671",
      "tree": "7bd9f4c8b4802f7fbbbfc4839309893dc39c410d",
      "parents": [
        "982a9ee7d826ad5a19927016bbc3cd8691ba07a3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 04 10:58:06 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 04 16:37:48 2019 +0000"
      },
      "message": "ART: Change ArtMethod::NumArgRegisters() signature.\n\nTake \"const char*\" instead of StringPiece. Avoid calling\nstrlen() in all callers, rely on explicit checking for\nthe end of the string.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 123750182\nChange-Id: I189841e4ae7dcc5950616d5e5a590987618146cb\n"
    },
    {
      "commit": "436e1428b7f9fce912581c7f9fff08da6311d8cc",
      "tree": "44e460641634245213f92695c09114964e114f78",
      "parents": [
        "62d986b0a18b7d4616915c9545678bc23f843518",
        "4bcd65753c1e49ceba2c41983f26af81ae319670"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Feb 04 16:35:45 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 04 16:35:45 2019 +0000"
      },
      "message": "Merge \"Take hidden API into account during getDeclaredMethod()\""
    },
    {
      "commit": "62d986b0a18b7d4616915c9545678bc23f843518",
      "tree": "0d7bd5a9c4097b26ea89737a96892ab707fc2c77",
      "parents": [
        "1b0f5354ccd1642e20e57daa956d5fc32fb8a4b6",
        "bb7207376b186d8df9afcbb9df6011f8a4ef7ab5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Feb 04 16:15:36 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 04 16:15:36 2019 +0000"
      },
      "message": "Merge \"Fix DumpNativeStack function for trampolines.\""
    },
    {
      "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": "1b0f5354ccd1642e20e57daa956d5fc32fb8a4b6",
      "tree": "70bb244091925f698839e55158a0c19cb74f4ffe",
      "parents": [
        "676e00a12f4b42a6ab572f4e0ae6fcb1e647bb1c",
        "49b2b2050d970384bf70c3a3bc526ac62d299b2c"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Feb 04 14:32:21 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 04 14:32:21 2019 +0000"
      },
      "message": "Merge \"Allow empty mini-debug-info ELF section.\""
    }
  ],
  "next": "982a9ee7d826ad5a19927016bbc3cd8691ba07a3"
}
