)]}'
{
  "log": [
    {
      "commit": "119733d87242414100df7b9eedb6d1672a03ead6",
      "tree": "19ba75bd42d3c94a4de0684ae66f4078da1546a6",
      "parents": [
        "8a64e773d4d1221166c6a8206315b450e448705a"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jan 30 15:14:41 2019 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Jan 31 15:39:55 2019 +0000"
      },
      "message": "Revert \"Revert \"ART: introduce PALette abstraction layer\"\"\n\nThis reverts commit e6e01a0a00de80704ccb21c48d5d8bdee4470b77.\n\nBug:  122824298\nTest: art/test/testrunner/run_build_test_target.py -j50 art-test-javac\nTest: m out/target/common/obj/PACKAGING/hiddenapi-stub-flags.txt\nTest: frameworks/rs/build_rs.py\nChange-Id: If7b9ddca3daa80b75b3541abd283bf47d5b81118\n"
    },
    {
      "commit": "e6e01a0a00de80704ccb21c48d5d8bdee4470b77",
      "tree": "8f9cc651764686140accaadcfb8f77bf7572c24b",
      "parents": [
        "4b9d00aca9b025b545c9633b4605334c22fc4d2d"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jan 30 14:02:30 2019 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jan 30 14:02:30 2019 +0000"
      },
      "message": "Revert \"ART: introduce PALette abstraction layer\"\n\nThis reverts commit 4b9d00aca9b025b545c9633b4605334c22fc4d2d.\n\nReason for revert: breaks renderscript mac and run_host_tests in master.\n\nChange-Id: I6024894a384c65f3e7d81b9c5bba8ebe8ce1b420\n"
    },
    {
      "commit": "4b9d00aca9b025b545c9633b4605334c22fc4d2d",
      "tree": "7984bf247f908d145b7c6b48df99f3f0a80ae148",
      "parents": [
        "4ee4561f2153f3b0bc3be2e781488a97c73ca58e"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Jan 03 17:04:02 2019 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jan 30 09:00:27 2019 +0000"
      },
      "message": "ART: introduce PALette abstraction layer\n\nThis change decouples direct dependencies on system libraries.\n\nBug: 122824298\nTest: art/test.py --host --64\nTest: art/test.py --target -j8\nTest: m -j100 \u0026 flashall -w \u0026 device boots\nTest: art/build/apex/runtests.sh\nChange-Id: Iae927ed9aaa228a941cd444cef04e6ec53955299\n"
    },
    {
      "commit": "b72a6a9cf7a912b1e253e95f349f4621d7b02975",
      "tree": "40db194b87b7cad78798d4151825f6204ae87ca9",
      "parents": [
        "2b1fed97f678f8e311052209e3c739907024e0a3"
      ],
      "author": {
        "name": "Suren Baghdasaryan",
        "email": "surenb@google.com",
        "time": "Fri Jan 25 05:35:24 2019 +0000"
      },
      "committer": {
        "name": "Suren Baghdasaryan",
        "email": "surenb@google.com",
        "time": "Fri Jan 25 16:52:35 2019 +0000"
      },
      "message": "DO NOT MERGE: Revert \"Revert \"ART: add libprocessgroup dependency and fix sched_policy include\"\"\n\nThis reverts commit b3eff8aff1031b0c3f55f16dfe1d1b4f4b84a6ae.\n\nReason for revert: AOSP is fixed with new vendor image\n\nChange-Id: I77df2e1e8400a1936d5a7529847b9da2a902471a\nSigned-off-by: Suren Baghdasaryan \u003csurenb@google.com\u003e\n"
    },
    {
      "commit": "b3eff8aff1031b0c3f55f16dfe1d1b4f4b84a6ae",
      "tree": "24235f53734b0f7928298631da5a2337247d721b",
      "parents": [
        "6efc6872a705f34e31eb604da0c926fe47823367"
      ],
      "author": {
        "name": "Suren Baghdasaryan",
        "email": "surenb@google.com",
        "time": "Wed Jan 23 20:22:43 2019 -0800"
      },
      "committer": {
        "name": "Suren Baghdasaryan",
        "email": "surenb@google.com",
        "time": "Wed Jan 23 20:24:01 2019 -0800"
      },
      "message": "DO NOT MERGE: Revert \"ART: add libprocessgroup dependency and fix sched_policy include\"\n\nThis reverts commit fbdbcccd4d12cd338b375a51fae067b6175db887.\n\nReason for revert: Broke AOSP\n\nChange-Id: I5e0b842260c161eedec4abb7e99d40f1f8b34dd5\nSigned-off-by: Suren Baghdasaryan \u003csurenb@google.com\u003e\n"
    },
    {
      "commit": "fbdbcccd4d12cd338b375a51fae067b6175db887",
      "tree": "1cb34c66f41d2e97eaf2676e17517ff65f3ab634",
      "parents": [
        "6ad2e8e2980503218d7acf8ed17a7e2cf42a9589"
      ],
      "author": {
        "name": "Suren Baghdasaryan",
        "email": "surenb@google.com",
        "time": "Mon Nov 05 18:38:39 2018 -0800"
      },
      "committer": {
        "name": "Suren Baghdasaryan",
        "email": "surenb@google.com",
        "time": "Tue Jan 22 18:15:07 2019 +0000"
      },
      "message": "ART: add libprocessgroup dependency and fix sched_policy include\n\nBecause art is using set_sched_policy which is moved into libprocessgroup\nan additional dependency is added and header file change is made.\n\nBug: 111307099\nTest: builds, boots\n\nMerged-In: If23739013092361fd9f2f4a99cca617516ae06f3\nChange-Id: If23739013092361fd9f2f4a99cca617516ae06f3\nSigned-off-by: Suren Baghdasaryan \u003csurenb@google.com\u003e\n"
    },
    {
      "commit": "8764dc3b3eda7f6f13ed7b584475503fe5bedd59",
      "tree": "e8f6e3a4a2596595ffdc8a517daaf37030482eae",
      "parents": [
        "49b74a8c685acfe43dd33e3f51a24c486388bee1"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jan 07 15:20:12 2019 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 09 12:38:30 2019 -0800"
      },
      "message": "ART: Use iosfwd more\n\nUse iosfwd where an include of ostream is unnecessary. Also move\ncallee_save_type.h to runtime.\n\nBug: 119869270\nTest: mmma art\nChange-Id: Id8995d6f524e4c491eb6f57fdffb940cf35d291f\n"
    },
    {
      "commit": "9e736316ece84f1f189f8cb9453cc21b24bd553e",
      "tree": "0109e40fb05088c755b633389f46489ead0bf9d7",
      "parents": [
        "570886357e2c91ac913f34abdaf559432ce00853",
        "0a2cdf39c51edbaf37ab1ced82326c340698c1c3"
      ],
      "author": {
        "name": "vichang",
        "email": "vichang@google.com",
        "time": "Mon Dec 17 15:28:56 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 17 15:28:56 2018 +0000"
      },
      "message": "Merge \"Include ICU4C cc_library_headers instead of a directory\""
    },
    {
      "commit": "5ce7e0d1158821c859309e030bee6169ff99c1c9",
      "tree": "5d98ad7ee83d3255024a756c9cdc79eccf8125d0",
      "parents": [
        "98a520c4700f566afddf12bab01885b6b3d2584e",
        "b3d2e832f728424d3c24432135df8caf1cf8751a"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Dec 14 13:36:30 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 14 13:36:30 2018 +0000"
      },
      "message": "Merge changes from topic \"dexfile-hooks\"\n\n* changes:\n  Add minimal libdexfile API for external users.\n  Plumb through the container as an optional arg to DexFileLoader::Open.\n"
    },
    {
      "commit": "0a2cdf39c51edbaf37ab1ced82326c340698c1c3",
      "tree": "08b61e6d3dccdaebe6af11181d9ed31a5449eb81",
      "parents": [
        "d97e00c4f6e8735a854f4443b8bd08fc5a251ce5"
      ],
      "author": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Mon Nov 26 18:06:01 2018 +0000"
      },
      "committer": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Fri Dec 14 10:48:19 2018 +0000"
      },
      "message": "Include ICU4C cc_library_headers instead of a directory\n\nIt includes the headers not in the directory, e.g. uconfig_local.h.\nIt may add more restriction during the build time,\nbut no runtime difference is expected.\n\nAlso, add ANDROID_LINK_SHARED_ICU4C flag to avoid\nthe new build-time error, since ART is allowed to link directly\nto libicuuc.\n\nBug: 117094880\nTest: m\nChange-Id: I029532d6738aa6ade4f8f92c5a65f1a15e9de25f\n"
    },
    {
      "commit": "fcf213c38229e8bb16798954442920b402b16e53",
      "tree": "ebd00d57b85d73da8ffce2adcb336ffa18166103",
      "parents": [
        "c2f685a64f819193fb563d33924d233872b8970a",
        "18642a3970d57b91865234048329f9a2252e0cbc"
      ],
      "author": {
        "name": "vichang",
        "email": "vichang@google.com",
        "time": "Thu Dec 13 18:05:38 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 13 18:05:38 2018 +0000"
      },
      "message": "Merge \"Remove unused ICU4C headers in libartbase-art-gtest and libart-runtime-gtest\""
    },
    {
      "commit": "b3d2e832f728424d3c24432135df8caf1cf8751a",
      "tree": "0ff919bb4731a3ddeffd5df7f08e05b816336826",
      "parents": [
        "785c987bb1e66d6ddce662b61c0fbd094195b022"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Nov 15 18:09:35 2018 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Dec 13 17:59:13 2018 +0000"
      },
      "message": "Add minimal libdexfile API for external users.\n\nThis defines a stable C ABI that is safe for external use in\nlibdexfile_external. On top of it is a thin stable C++ API in\nlibdexfile_support to be linked into clients.\n\nTBD: Unit tests, e.g. move the relevant tests from libunwindstack.\n\nTest: mmma art/\nTest: gtests and runtests on target\nTest: atest system/core/libunwindstack (no new failures, 1 old one)\nBug: 119632407\nChange-Id: I64388337e6d31e4bf36ec435a78c4defc2e17aa2\n"
    },
    {
      "commit": "7cc45fd1dbcf5704e442d0443e437aa2ae3fe21b",
      "tree": "76e582afd0580be21497787c584cab61f7599997",
      "parents": [
        "03eb36c6940060f82f887b3e8860a91c1f97224c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 21 16:03:08 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 06 11:37:19 2018 -0800"
      },
      "message": "ART: Factor out lock order and holder from mutexes\n\nIsolate the order and holder class from the mutex definitions.\nThe locks header requires significantly fewer includes, and\nwill be used in a follow-up change to remove mutex.h dependencies\nin headers just for the sake of annotation lock requirements.\n\nThis is itself an NFC commit, only pulling the code apart.\n\nBug: 119869270\nTest: m test-art-host\nChange-Id: I11ca161ac3118725c79313a82f58595699b590bf\n"
    },
    {
      "commit": "18642a3970d57b91865234048329f9a2252e0cbc",
      "tree": "f4cdcdc5b5cbf5c0a65a9b716f4b9ad2d94a914d",
      "parents": [
        "9f27ffa9031431267ae59ee3469c853355811916"
      ],
      "author": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Mon Dec 03 19:28:08 2018 +0000"
      },
      "committer": {
        "name": "vichang",
        "email": "vichang@google.com",
        "time": "Wed Dec 05 00:15:09 2018 +0000"
      },
      "message": "Remove unused ICU4C headers in libartbase-art-gtest and libart-runtime-gtest\n\nBug: 117094880\nTest: m libartbase-art-gtest libart-runtime-gtest\nChange-Id: Iff46ce8ac9f12fb0021ae453624efe84df20a56a\n"
    },
    {
      "commit": "b56e8353020acda1a8285daa11c69f57060cd015",
      "tree": "cb570cb734aa7d51761985639c42b77f9b8f97d0",
      "parents": [
        "d0834e4a44440a8faf199024a030731ad26aae68",
        "12dd9aee74a588bf31f151cebba930849b4baceb"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Nov 14 14:13:52 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 14 14:13:52 2018 +0000"
      },
      "message": "Merge \"Use unified libvixl(d) instead of per-supported-arch libvixl(d)-arm(64).\""
    },
    {
      "commit": "435516229e5f511d1ac4498da58372c8fece35b7",
      "tree": "e510804ebf5b8f1786a7c377e1cef9fb5bb11d90",
      "parents": [
        "e5ed5bafc97e65e8d2b60ddaca48754a50ca5692"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Nov 09 15:14:54 2018 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Tue Nov 13 15:15:37 2018 +0000"
      },
      "message": "Revert^2 \"Link lzma and lz4 compression libs statically into libartbase and use that\"\n\nThis reverts commit 9960cbc0ff98978a9b32f14ae77d8ddb3c6908d9.\n\nReason for revert: This is the same as aosp/815019 except version_script is\nexcluded on Darwin. I think it should pass the mac targets, but haven\u0027t\ntested.\n\nTest: art/tools/buildbot-build.sh {--host,--target}\nTest: art/test/testrunner/run_build_test_target.py art-asan (not on Darwin)\nTest: python frameworks/rs/build_rs.py (on Darwin, thanks Orion!)\nBug: 118374951\nChange-Id: I7a362381f6d891c6dc1304e5fcf6f8851aa67d7c\n"
    },
    {
      "commit": "9960cbc0ff98978a9b32f14ae77d8ddb3c6908d9",
      "tree": "46602632efd61e7d1330f52e4ec0c7404ae9bad0",
      "parents": [
        "21579bec04bea8a9a6ca65ad5493016d1fcb9dcc"
      ],
      "author": {
        "name": "Annie Meng",
        "email": "anniemeng@google.com",
        "time": "Thu Nov 08 11:44:19 2018 +0000"
      },
      "committer": {
        "name": "Annie Meng",
        "email": "anniemeng@google.com",
        "time": "Thu Nov 08 11:44:19 2018 +0000"
      },
      "message": "Revert \"Link lzma and lz4 compression libs statically into libartbase and use that\"\n\nThis reverts commit 21579bec04bea8a9a6ca65ad5493016d1fcb9dcc.\n\nReason for revert: Build failure\n\nChange-Id: Ia941425b9462f478be78058b3d63a30106421de6\n"
    },
    {
      "commit": "21579bec04bea8a9a6ca65ad5493016d1fcb9dcc",
      "tree": "b33204570077025d4af6d2cb82dc8fa84e67b0b9",
      "parents": [
        "bf983214f7488a7923788356d1a441f518073b23"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Tue Nov 06 13:56:50 2018 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Nov 07 20:44:24 2018 +0000"
      },
      "message": "Link lzma and lz4 compression libs statically into libartbase and use that\ninstead.\n\nAll targets using these compression libs already use libartbase. This grows\nlibartbase VM size by 240K (219%) on 64 bit, but only these targets pack on\nextra bloat: dexanalyze, dexdump2, dexlayout(d), dexlist.\n\nTest: art/tools/buildbot-build.sh {--host,--target}\nTest: art/test/testrunner/run_build_test_target.py art-asan\nBug: 118374951\nChange-Id: I16d67d99897ec0a35e1467ab561bb82ee2449983\n"
    },
    {
      "commit": "12dd9aee74a588bf31f151cebba930849b4baceb",
      "tree": "9d04404a17b4f3e5e9e2b1150fc575a74ecd37c2",
      "parents": [
        "5725e7c4aab576384649de60557dc1f52eb21b9f"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Nov 06 13:32:06 2018 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Nov 06 14:31:16 2018 +0000"
      },
      "message": "Use unified libvixl(d) instead of per-supported-arch libvixl(d)-arm(64).\n\nUsing a unified libvixl(s) saves space by sharing code that was common\nto libvixl(d)-arm and libvixl(d)-arm64 and also addresses multiple\ndefinitions issues that would cause ODR violations.\n\nTest: 32-bit-only device boot test\nTest: 32/64-bit device boot test\nChange-Id: I1d67c43897e08bc0f5743eb038fe574ce2fb54f3\n"
    },
    {
      "commit": "65ed42a3d3a7bf1a42e759ed53c16b179f54813a",
      "tree": "77930ed648604f50fe6a46059f4cc659b443ddb7",
      "parents": [
        "8a94003e66f337fe84870ff68d3f6f234555cf06"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 30 12:33:04 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 30 12:33:04 2018 +0000"
      },
      "message": "Revert \"Link compression libs statically into libartbase and use those everywhere.\"\n\nThis reverts commit 8a94003e66f337fe84870ff68d3f6f234555cf06.\n\nReason for revert: Breaks asan and dex2oats.\n\nChange-Id: Idea760bbd2b25078ecd1ee5a39da94f6b74432a7\nbug: 118374951\n"
    },
    {
      "commit": "8a94003e66f337fe84870ff68d3f6f234555cf06",
      "tree": "0271729b2571c969238786d21a45ce05120b96e0",
      "parents": [
        "ce2a00daa92670a4fc01ef59fdbc3769a846f69c"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Oct 24 15:02:55 2018 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Mon Oct 29 21:20:43 2018 +0000"
      },
      "message": "Link compression libs statically into libartbase and use those everywhere.\n\nAll targets using these compression libs already use libartbase. This grows\nlibartbase VM size by 314K on 64 bit, but only these targets pack on the\nextra the bloat of liblz4 (84K) and liblzma (174K): dexanalyze, dexdump2,\ndexlayout(d), dexlist. libbacktrace and libunwindstack gain liblz4 only.\n\nOn the other hand this gets rid of static instances in several shared libs.\n\nTest: mmma art\nTest: art/test.py --host --64 --optimizing\nTest: env ART_TEST_NO_SYNC\u003dtrue make -j4 test-art-target-gtest\nTest: art/test/testrunner/testrunner.py -j4 --target --64 --optimizing\nBug: 118374951\nChange-Id: Ida103546d2d16ef892d09e9ca3a0ae5e3b42a541\n"
    },
    {
      "commit": "7d1c0491d076943c6972d242e03f16f70e0e7d36",
      "tree": "5f7eafa49ef67364ab520785e29036d2afd69eff",
      "parents": [
        "c2099b0b0c052dd61137b9cf5f9f8b30bab1a7a8",
        "f049a0b3cff914299d14afa454594f47733b7e53"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Oct 26 15:37:55 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 26 15:37:55 2018 +0000"
      },
      "message": "Merge changes from topic \"socket_peer_is_trusted\"\n\n* changes:\n  Remove libcutils property_get dependency.\n  Remove libcutils socket_peer_is_trusted dependency.\n"
    },
    {
      "commit": "c2efd4da88c1eeeb51af1ebc4a1321918c3243e5",
      "tree": "211521ea526432bb4da3c5f83efafae1d3f1ec27",
      "parents": [
        "f4fd65e393fe60f17e22ee7823f8dce4594c053d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 25 13:14:55 2018 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 25 13:15:33 2018 -0700"
      },
      "message": "Remove libcutils socket_peer_is_trusted dependency.\n\nART is the only caller of this code, and it\u0027s trivially rewritten to\njust use NDK API.\n\nBug: N/A\nTest: boots\nChange-Id: I679a0f7e7ba48c6660c69629af180f04c4532c62\n"
    },
    {
      "commit": "2ee09ffc7a6aca354a958357801711688a7a4154",
      "tree": "dbd56e49b025d2a0695610cbfddb7b5bc6432c30",
      "parents": [
        "fd2aa2bf72563870c9261f248f992a20ac4837a8"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Oct 24 13:24:22 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Oct 24 17:11:57 2018 +0100"
      },
      "message": "Split interpreter_switch_impl.cc\n\nDue to regression in clang this file takes long to compile (\u003e10min).\nAs a quick fix, split the file - one per explicit instantiation.\n\nTest: Measure incremental build time - it halves the build time.\nChange-Id: I9d35d43c185deb19ef9cf32ed35328c433a837f2\n"
    },
    {
      "commit": "50b47432f8df853b8479179154382ef30bdf30c9",
      "tree": "ec702341b889cc43cc75625ddad8c1bebeff3c2f",
      "parents": [
        "f06ca50f0aff5167f767b09f624c60186290a623"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Oct 18 12:26:34 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Oct 18 12:43:06 2018 +0100"
      },
      "message": "Move cpp-define related static_assert to runtime.\n\nThe runtime is build with both debug and non-debug configs,\nso checking it there covers more cases.\n\nTest: Check this caches cases which previously passed.\nChange-Id: I543547e517b79289438b19ed9e18f5a6d0b74172\n"
    },
    {
      "commit": "8e7d0cbb8a75d23b120e3ffbcafeb1158d048e29",
      "tree": "f50b46b358806be053c72442ea60d6d16621752b",
      "parents": [
        "0b6b0cb6dca3eb9b0423af9d8da381f4d8f6b311",
        "0adf4d80ca1c673e5f7c5249faabadccdc1ddbbd"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Oct 12 12:15:06 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 12 12:15:06 2018 +0000"
      },
      "message": "Merge \"Rewrite cpp-define-generator\""
    },
    {
      "commit": "0adf4d80ca1c673e5f7c5249faabadccdc1ddbbd",
      "tree": "0c4f88f1fa6ab56fd1b24426c75f17836a6bd81d",
      "parents": [
        "78940f2254354373c6b311c759c43f51d3ad77f1"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Oct 01 18:17:45 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Oct 12 03:22:29 2018 +0100"
      },
      "message": "Rewrite cpp-define-generator\n\nThe new method works by generating temporary per-architecture\nhuman-readable object file with the constants embedded in it.\nPython script extracts those values and generates the header.\n\nThis means the values can now implicitly depend on pointer size,\ncompile time flags, or ABI specific object layout with no hacks.\n\nTest: test-art-host-gtest-arch_test\nChange-Id: Id6e8c77c01f9d6c49cd6d40e3487b56fa4777349\n"
    },
    {
      "commit": "b2f61f959b20a3b81a0bc9008bfa174a2991a419",
      "tree": "41f008b5ee1ef8534fa5ec10024c590c2de21bf8",
      "parents": [
        "dc3b4670b170b39a8bd6498d4de69c1513af1db2"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Oct 02 17:38:28 2018 +0000"
      },
      "committer": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Oct 10 16:22:01 2018 +0000"
      },
      "message": "Revert \"Disable lld for unrecognized --keep-unique flag.\"\n\nThis reverts commit d5d597f672ea36b8ea6a806e783abd87d9382b49.\n\nReason for revert: New lld now recognize --keep-unique\nBug: 77976998\nBug: 110833175\n\nChange-Id: I734da95285e0a383e5f0de5bdf0042a11ccb74a8\n"
    },
    {
      "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": "bfbc6547d732a984d43addc2869dbf32d61dab2f",
      "tree": "7879990775da87781e93ecbb070ec35521b44fce",
      "parents": [
        "596cfdf505b573efa404fd51ab32eb9cf47c75dc"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Sep 11 13:34:57 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Sep 12 12:58:57 2018 +0100"
      },
      "message": "Remove intermediate mterp files from the repository.\n\nGenerate them in the build system properly.\n\nBug: 33375800\nTest: check that the generated files are still identical\nChange-Id: I6058c2d8d28586414f28dc024a3c0199d993552b\n"
    },
    {
      "commit": "ec5ed06b59a3b85e7f98ffc50e0539e5a77d1ba1",
      "tree": "c09b7debef2c19d2ea79488d9d3357b49020da26",
      "parents": [
        "9c568f10f68cdbeb285e41cb4538c06f5e90c1b2"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jan 26 16:20:02 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 06 14:00:25 2018 -0700"
      },
      "message": "ART: Refactor static include list\n\nCreate default objects. This allows chaining the sets, and also\ncan separate between host and target.\n\nTest: mmma art\nChange-Id: I68a80068d442b20c6430e9e576df7f74375e7e49\n"
    },
    {
      "commit": "543d8450658a2a246d8841a13c006bd38cb9de8b",
      "tree": "205c8ea88b5ff996657f03ad9abf5c47d0ab54ab",
      "parents": [
        "184f0759ef700b1412c7df412c4ebb297427d9fc"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jul 13 16:25:58 2018 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Jul 16 16:20:07 2018 -0700"
      },
      "message": "Revert^2 \"Move GCStress BacktraceHelper to libbacktrace\"\n\nBy changing to keeping the BacktraceMap in each threads TLS we avoid\nhaving to recreate it each time we do an allocation in GCStress. This\nmakes running in gcstress significantly faster than it was in the\ninitial version of this CL.\n\nFor test 001-HelloWorld, this has an ~30% measured time cost as\ncompared to libgcc (from 9.063s to 12.262s). On the other hand it\nseems better at actually differentiating distinct stack traces. Total\ntime spent doing gcs is about doubled (from 4107.91ms to 7036.97ms).\nTotal number of gcs is about doubled (from 175 to 320).\n\nThis reverts commit 7d3256a376709145d6c402a13b1977350816aec2.\n\nReason for revert: Fixed issue causing gcstress to take too long.\n\nTest: ./test/testrunner/testrunner.py --host --gcstress --jit --64 -t 989\nTest: ./test/testrunner/testrunner.py --host --gcstress\n\nChange-Id: I668f53513d8495d4a4c7aa540137676118903f8a\n"
    },
    {
      "commit": "7d3256a376709145d6c402a13b1977350816aec2",
      "tree": "1ec755d20b31dbe4c57a4e29afcd468eb3751568",
      "parents": [
        "9491694c36f673149c4eed6918d4a58c328ef103"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jul 13 16:23:56 2018 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jul 13 16:23:56 2018 +0000"
      },
      "message": "Revert \"Move GCStress BacktraceHelper to libbacktrace\"\n\nThis reverts commit 9491694c36f673149c4eed6918d4a58c328ef103.\n\nReason for revert: Makes gcstress configs take too long to finish\n\nChange-Id: I2eb03f25d33e9de1d86ca9db74e615fbfc09d51e\nTest: None.\n"
    },
    {
      "commit": "9491694c36f673149c4eed6918d4a58c328ef103",
      "tree": "34abab8951f980ac9d955101fa8635fa34ecc033",
      "parents": [
        "dca6840055c5255ad05f7516b0227e44ef6310a2"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jul 11 15:32:33 2018 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jul 12 13:45:19 2018 -0700"
      },
      "message": "Move GCStress BacktraceHelper to libbacktrace\n\nOn host x86_64-linux the libgcc based BacktraceHelper could get\nconfused by our trampoline instrumentation. This replaces it with the\nlibbacktrace based stack walker that we use elsewhere in the runtime.\nThis has the advantage of being generally supported better.\n\nFor test 001-HelloWorld, this has an ~300% measured time cost as\ncompared to libgcc (from 9.063s to 28.587s). On the other hand it\nseems better at actually differentiating distinct stack traces. Total\ntime spent doing gcs is about doubled (from 4107.91ms to 7036.97ms).\nTotal number of gcs is about doubled (from 175 to 320).\n\nTest: ./test/testrunner/testrunner.py --host --gcstress --jit --64 -t 989\nTest: ./test/testrunner/testrunner.py --host --gcstress\n\nChange-Id: I745acb0ae92f312f86c3d31d81cfd179dbf9ae7e\n"
    },
    {
      "commit": "955f0ba247863be4b2b506420f6dfe4b0fa99e4f",
      "tree": "6f8e52f1b0cff324adddcd054050458400d201ee",
      "parents": [
        "e824cfdcfd41d400237a806ff93caca7f2e51878"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Jun 28 19:01:50 2018 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Jul 10 09:41:44 2018 -0700"
      },
      "message": "Use clang integrated assembler.\n\n* Remove dependency on GNU assembler.\n  Avoid bug that produces non-deterministic code for mterp_arm.S.\n\n* Replace arm assembly code syntax to compile with clang assembler.\n  * change old/obselete syntax:  s/subgts/subsgt/\n  * change old/obselete syntax\n        adrl   lr, artMterpAsmInstructionStart + (${opnum} * 128)    @ Addr of primary handler.\n    to equivalent\n        adr    lr, .L_ALT_${opcode}\n        sub    lr, lr, #(.L_ALT_${opcode} - .L_${opcode})            @ Addr of primary handler.\n\n* Remove duplicated .Lmark_introspection_unmarked\\label_suffix label;\n  clang assembler treated it as an error.\n\nBug: 110953818\nTest: compare disassembled .o files from GNU and clang assemblers.\nChange-Id: I33ae305b5a6d4d7bd9efa0ad43b7f9b1509328b9\n"
    },
    {
      "commit": "69de3cec39bc4b41d32adcec86878ff199e5ed92",
      "tree": "57844926c4a9f648128bbd9149c19a6ea6222f90",
      "parents": [
        "d6de4564f4494c78955d667b21e4693844d7b818"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jun 25 14:12:47 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jun 25 19:44:07 2018 -0700"
      },
      "message": "ART: Remove libziparchive dependency\n\nRemove the dependency from libart. It is no longer needed.\n\nTest: mmma art\nChange-Id: Ia944048ba3e5705899e9d6f30cd68b56d27b1a2c\n"
    },
    {
      "commit": "c0ed43e894e9e28ce51e778278541f2284ed5c27",
      "tree": "70371612c1ba726f94784365200a8af8ab2d0428",
      "parents": [
        "493bf736c698945ec88042500f24d93190ecfe74"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jun 18 10:47:15 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jun 18 11:01:22 2018 -0700"
      },
      "message": "ART: Move CheckJNI to runtime/jni\n\nFollow-up to commit a3ad0cdd711857f04f477e2cdc5b56a2c74a3018.\n\nTest: mmma art\nChange-Id: I4eec2d9f7befb6fe94f9ffb5ace3cb0973be7596\n"
    },
    {
      "commit": "e1402125e8363b49e176c6072893d1c110a05d2f",
      "tree": "44ec055be78cdcb8086a598cbf791f8c4627e157",
      "parents": [
        "86decb6a3e3ebba8c3c67bfd25c12d9a85794f65"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jun 13 18:20:45 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Jun 14 12:31:44 2018 +0100"
      },
      "message": "Move some helper methods to DexRegisterLocation.\n\nTest: test-art-host-gtest-stack_map_test\nChange-Id: I0abab008159db023d531df69214cd3bb8c0639bd\n"
    },
    {
      "commit": "1fed343e5145846e316d49616f3b94e225f43bf1",
      "tree": "b0cb7b634699deeac88dad4d7da463f0d718c089",
      "parents": [
        "010b10e7ab1b6f5a736bf500acc16d2c7067f8af"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue May 29 13:19:47 2018 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue May 29 13:19:47 2018 -0700"
      },
      "message": "Move profile testing to CommonArtTest\n\nFinish the migration of libprofile content by moving test to use\nCommonArtTest.  This required splitting the libart-related portions into\na separate test that was moved closer to the code it tests.\n\nBug: 78459333\nTest: make -j 40 test-art-host\nChange-Id: I134c983b1a5ac81a71ac2b72d8c653eff5df4164\n"
    },
    {
      "commit": "6834d3414308e3d536bc685dbb3d60fe70186f23",
      "tree": "7c579de52d3acc5cc4d02babf25c7fcb2b94793b",
      "parents": [
        "c7aa87e1666ac48ddf9149cfdfd64b026b3969e5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 25 13:12:09 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 25 14:12:31 2018 +0100"
      },
      "message": "Remove mirror::Reference::java_lang_ref_Reference.\n\nAnd some #include cleanup after previous CLs removing\nstatic GcRoot\u003c\u003es.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 31113334\nChange-Id: I56b34637f9d793ed7680696a1eeedd07d061ad00\n"
    },
    {
      "commit": "b4eb1b19e1dd35d12a408358656c1421f507d231",
      "tree": "03ba65d206b5e6222dcca0f62a973bcbb1bf8a50",
      "parents": [
        "ff7ff426e136aa8fd6e33d873f6259311982f6bb"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu May 24 11:09:38 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 25 11:32:31 2018 +0100"
      },
      "message": "Refactor ClassRoot/GetClassRoot().\n\nMove it outside the ClassLinker, into its own header file,\nand add retrieval based on a mirror class template argument.\nKeep the SetClassRoot() as a private member of ClassLinker.\n\nMake the new GetClassRoot()s return ObjPtr\u003c\u003e.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 31113334\nChange-Id: Icbc6b62b41f6ffd65b437297a21eadbb0454e2b7\n"
    },
    {
      "commit": "1f010164bea4714e9f653c52e8948c5d5305040b",
      "tree": "e69b2c3f4d2645d4097655f8914325945fe5dbbd",
      "parents": [
        "a7d37cf735f05cfc3a3585a5c44eb65d8a279874"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue May 15 08:59:32 2018 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed May 16 13:01:34 2018 -0700"
      },
      "message": "Move ArtDexFileLoader to libdexfile\n\nAdds a dependency from libdexfile on libartbase, but allows the use of\nMemMap loaders, etc.\n\nBug: 78652467\nTest: make -j 40 checkbuild\nChange-Id: I15cf33893ca9192050762f8350a3cc1e39f88dc5\n"
    },
    {
      "commit": "537a4fed85530ac29fe5ff173c4b77538d8bbd0b",
      "tree": "dc7a7e699145082827e17034a66260a10d1b9609",
      "parents": [
        "00e15d651e705640d4fdf206faf8317d69b20758"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue May 15 13:57:58 2018 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue May 15 16:35:59 2018 +0100"
      },
      "message": "ART: Add VarHandle accessors to invoke-polymorphic entrypoint\n\nRemoves the need to interpret methods containing VarHandle accessor\nmethods. Whilst there are VarHandle accessors that the compiler does\nnot support, this will be the fallback path.\n\nBug: 71781600\nTest: art/test.py --host -r -t 712\nChange-Id: I40314b773882faed554c31b7f34c0e319dcf8d45\n"
    },
    {
      "commit": "a128781f9e8db7ad147044bab899f1fb29bc3af8",
      "tree": "de533ebd6fab5b4e92b8de5eecb5de4762d37294",
      "parents": [
        "2111c3acf045d6bed2140f95cca323ab3d6ffd76",
        "8a22907f0c98fc82ec18ef233d3363db8404aab9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue May 15 08:28:52 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 15 08:28:52 2018 +0000"
      },
      "message": "Merge \"Conditionalize LocAccessToEvent on Android target build.\""
    },
    {
      "commit": "8a22907f0c98fc82ec18ef233d3363db8404aab9",
      "tree": "b2c5f59b16e3bbe5d88800c116a32b94416c4294",
      "parents": [
        "9076eb66ad173933d7fbd5ce328d31c7f97fd202"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu May 10 16:34:14 2018 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon May 14 17:51:26 2018 +0100"
      },
      "message": "Conditionalize LocAccessToEvent on Android target build.\n\nbug: 64382372\nbug: 79671158\nTest: m\nChange-Id: Ida6d672e1d88d9662718257439762cb916b9c7a0\n"
    },
    {
      "commit": "c3e1895e7443c61b77f5c51cd2d18819cade57c1",
      "tree": "bc2705ee47091e37d683cafa020f53190708b089",
      "parents": [
        "6623bc389c43efc87668ce7465e19b195e765e22"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri May 11 16:59:31 2018 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri May 11 17:40:56 2018 -0700"
      },
      "message": "Prepare to move ArtDexFileLoader to libdexfile\n\nMove file_utils and friends to libartbase so that ArtDexFileLoader can\nbe moved to libdexfile.  This will clean up duplication and complexity\nwith zip file handling.\n\nBug: 78652467\nTest: make -j 40 test-art-host-gtest\nChange-Id: Ia5eac1f93caf3fa918b4b48803cbfd842035e29e\n"
    },
    {
      "commit": "adc9086aac1f9442f5ec80cec5734909f0b0f262",
      "tree": "b55804542510f8592c1c5b9e522a16d35567b2f1",
      "parents": [
        "54c42cea2b73e664c36fc4efaa28a33aea39b97c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri May 11 13:03:06 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri May 11 13:05:40 2018 -0700"
      },
      "message": "Revert \"Revert \"Do not load app image for class collisions\"\"\n\nFixed bug in oat file assistant to allow the special shared library\nmarker.\n\nBug: 77342775\nBug: 79200502\nBug: 79575750\nTest: test-art-host\n\nThis reverts commit 2c7e13b120926d3c3c18d649cd9849ea31b81477.\n\nChange-Id: I647f55a07e4aef8bef56fb1ad7ff23056174b135\n"
    },
    {
      "commit": "2c7e13b120926d3c3c18d649cd9849ea31b81477",
      "tree": "74766773ba254c40b44b53012156061ff2527c88",
      "parents": [
        "b12c46f8382ca939f55abc0c20fb48fb17b2c1be"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri May 11 19:40:17 2018 +0000"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri May 11 19:43:32 2018 +0000"
      },
      "message": "Revert \"Do not load app image for class collisions\"\n\nThis reverts commit d8860b42e47d48fcc47db9d0daf5a1b9432180a1.\n\nBug: 77342775\nBug: 79200502\nBug: 79575750\n\nReason for revert: Some regressions in boot time.\nTest: test-art-host\n\nChange-Id: Id5e5844b5156d048a54011708378c7cdb0650f68\n"
    },
    {
      "commit": "d8860b42e47d48fcc47db9d0daf5a1b9432180a1",
      "tree": "c5522fa9c6d1e9e63cb497da7dc84b72b6b11531",
      "parents": [
        "48af3b39cd7c8abaa7f9671191ec8260630239b2"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 02 14:58:12 2018 +0100"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu May 10 16:17:30 2018 -0700"
      },
      "message": "Do not load app image for class collisions\n\nEven for special shared libraries that are compiled with\n\u0027--class-loader-context\u003d\u0026\u0027, we must reject the app image\nif there are duplicate classes.\n\nIn the case where \"\u0026\" is not specified, avoid the collision check.\nThis is safe since the class loader context check was actually run.\n\nTest: 172-app-image-twice\nBug: 77342775\nBug: 79200502\n\nChange-Id: Idc2d59166680948d4d34d0f224491f77ecad2974\n"
    },
    {
      "commit": "96e754c9389dfe47bc4e8d174b78e9e806533bf8",
      "tree": "93e8ddd922b1ed97b056b85cde074ef6510c9316",
      "parents": [
        "a3ad0cdd711857f04f477e2cdc5b56a2c74a3018"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 04 10:52:40 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 09 11:11:18 2018 +0100"
      },
      "message": "ART: Remove unused JobjectComparator.\n\nUnused since\n    https://android-review.googlesource.com/144043 .\n\nTest: Rely on TreeHugger.\nChange-Id: I0cf004e66ba2698bb3dc45804d71f9d5ee3647fd\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": "1724520ec2788838413b20672f73afa5a00b0d4c",
      "tree": "bac735898ef8f9750fcc1fdf04c4538aa6abed22",
      "parents": [
        "c9c87f63f7809568fbab751c8f07107e6151cced"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Thu Apr 12 13:56:37 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue May 08 10:32:05 2018 +0100"
      },
      "message": "Use tron for logging hidden API accesses.\n\nExample output:\nsysui_multi_action: [757,1391,1392,1,1394,Ldalvik/system/VMRuntime;-\u003egetRuntime()Ldalvik/system/VMRuntime;]\nsysui_multi_action: [757,1391,1392,1,1393,1,1394,Ldalvik/system/VMRuntime;-\u003esetHiddenApiExemptions([Ljava/lang/String;)V]\n\nTest: m\nTest: $ adb shell settings put global \\\nTest:     hidden_api_access_log_sampling_rate 65536\nTest: $ adb lolcat -b events | grep sysui_multi_action | grep 1390\nBug: 77517571\nMerged-In: I23548f902d2ff56ad00534421bf8afa902edaa75\nChange-Id: I23548f902d2ff56ad00534421bf8afa902edaa75\n(cherry picked from commit 2d4d62f2c4cb6f4a659333263a32f7d94c08fc11)\n"
    },
    {
      "commit": "d5f8de8bc61160bb2cecdcc0f5aa54d151b6176a",
      "tree": "efecd6d3dffd3a1d768b87a111d9e60335d9108c",
      "parents": [
        "9417b6b81393253a56b1b9bb4c7d8a2a2966707e"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Apr 27 14:12:03 2018 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue May 01 16:23:42 2018 -0700"
      },
      "message": "Add CommonArtTest\n\nAdd a test framework that does not start up a Runtime object.\n\nBug: 78651010\nTest: make -j 40 test-art-host\nChange-Id: I6c8af384af5fe1289c6cf137635e94934ac3795d\n"
    },
    {
      "commit": "82d046e7c9daad9b706cbec7df7025c5a4ef9163",
      "tree": "92b7deea052015dd64bea6fc72d76c67f69e0e5d",
      "parents": [
        "5a87e19e4bf1b6719c2aad3effde1b38d2c3085c"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Apr 23 08:14:19 2018 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Apr 26 12:37:04 2018 -0700"
      },
      "message": "Add a profiling library\n\nMove profile_compilation_info to a separate library.  Another step\ntowards building many of our tools without libart[d].\n\nBug: 78459333\nTest: make -j 50 checkbuild\nChange-Id: Ib281d3d1fde6d06ebb429c5d39d62a7038af0f44\n"
    },
    {
      "commit": "550ea7bd03005e6b416e31b36fcf9626504aad37",
      "tree": "a7b7b8a586f41d04247f3329e4a2e91aa9653dc4",
      "parents": [
        "f5d9f81542dcdf9f388d7daf4972123312fffa92",
        "d5d597f672ea36b8ea6a806e783abd87d9382b49"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Apr 14 00:43:28 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Apr 14 00:43:28 2018 +0000"
      },
      "message": "Merge \"Disable lld for unrecognized --keep-unique flag.\""
    },
    {
      "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": "d5d597f672ea36b8ea6a806e783abd87d9382b49",
      "tree": "7a6a074bf4cdb32cd62dd030276e75618438d18a",
      "parents": [
        "fe6cf7cb0865cc1710d14ff8a41817794e965ea5"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Mar 09 14:52:40 2018 -0800"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Apr 12 14:59:59 2018 -0700"
      },
      "message": "Disable lld for unrecognized --keep-unique flag.\n\nBug: 77976998\nTest: make checkbuild and boot\nChange-Id: I4db5ad37e9c126f8b6b0d163a35b772155b19b9b\n"
    },
    {
      "commit": "203d5d8437e85bf8e4faabe77554ed802778722b",
      "tree": "ee1a31ffbaa690083e3c264040bb8edec9177453",
      "parents": [
        "b38b862273df997fc7b9c4176e46d9e672fe082e",
        "283ad2dfa5610e098db4791c9aded3a05fb62c40"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 12 10:15:18 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 12 10:15:18 2018 +0000"
      },
      "message": "Merge \"ART: Memory order updates to trace.{h,cc}\""
    },
    {
      "commit": "283ad2dfa5610e098db4791c9aded3a05fb62c40",
      "tree": "6ebd362ad8e21e8a7c552fc9dae197f6d6f6d9ba",
      "parents": [
        "b2be0823115cfdd7907207e3dac9fcb669941811"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Mar 26 13:37:41 2018 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Apr 12 09:13:52 2018 +0100"
      },
      "message": "ART: Memory order updates to trace.{h,cc}\n\nAdds comments and DCHECKS to clarify memory semantics.\n\nRelaxes some atomic operations on Trace::cur_offset_ and makes its\ninitialization sequentially-consistent.\n\nAdds GUARDED_BY annotations to fields only accessed with the\nstreaming_lock_.\n\nBug: 31023171\nTest: art/test.py --host --stream -j32\nTest: art/test.py --host --trace -j32\nTest: art/test.py --target --stream -j4\nTest: art/test.py --target --trace -j4\nChange-Id: I31ad9a3861c7f258ed225207b3c2b39669ad8d36\n"
    },
    {
      "commit": "9c4a015cf01989597fd899011dba310b704dacaa",
      "tree": "17101dd177beb28c1d28c8eddab645bc7d1af984",
      "parents": [
        "6485701497edf2fd4e5296c3715929ad44ea9752"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Apr 05 12:23:54 2018 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Apr 09 23:30:08 2018 +0000"
      },
      "message": "Move more runtime code to libartbase, libdexfile\n\nMove some code that logically belongs to libartbase or libdexfile to\nthose places respectively.\n\nBug: 22322814\nTest: make -j 50 checkbuild\nChange-Id: Idfded5d24b40d8587011681e6235b6672846da19\n"
    },
    {
      "commit": "f8e5d8ce6cdd9048dc8e67f7343d3842189f7601",
      "tree": "4b79373ad7c6b5934f1bf6d0fd5353c7067f8c60",
      "parents": [
        "faa7b29f1e0c311e42ab5a265cb1b17036ca5a10"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 06 13:35:37 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 06 13:55:41 2018 -0700"
      },
      "message": "Delete MarkCompact GC\n\nTest: test-art-host\nBug: 77721758\nChange-Id: I99889353eb97f46c59de7ed44f2944f83867031d\n"
    },
    {
      "commit": "1ce5432af49b4d87cb9d7308f1cc493fd557188f",
      "tree": "64c3c9cb2abc2769a5c23461fbe4af69dae57087",
      "parents": [
        "6fcf35bc06b1eb88080863b3bd8f7e16ca099910",
        "1ce2b3b76d121a765212d69399241843951973ae"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 05 20:26:26 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 05 20:26:26 2018 +0000"
      },
      "message": "Merge \"Move remaining runtime/base stuff to libartbase\""
    },
    {
      "commit": "6fcf35bc06b1eb88080863b3bd8f7e16ca099910",
      "tree": "3d39e0f9741d65b1b911b7e7c7774d1de6c2442b",
      "parents": [
        "281c99864f635ef4fd005dba4ba0c750cb9a6143",
        "606adb3a515b31e6d4b02becb36f732918fe7713"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 05 18:28:45 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 05 18:28:45 2018 +0000"
      },
      "message": "Merge \"Fix and extend debugging output for bug 74410240.\""
    },
    {
      "commit": "1ce2b3b76d121a765212d69399241843951973ae",
      "tree": "6f2bb0191c869e79891df3151d6faba3a297b9a8",
      "parents": [
        "281c99864f635ef4fd005dba4ba0c750cb9a6143"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Apr 05 11:02:03 2018 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Apr 05 11:07:59 2018 -0700"
      },
      "message": "Move remaining runtime/base stuff to libartbase\n\nMove the remainder of the Arena stuff, plus dumpable and\nruntime/*memory_region* to libartbase.  More preparation to build\nprofiling library.\n\nBug: 22322814\nTest: make -j 50 checkbuild\nChange-Id: Iaf26d310c89bc58846553281576c18102f5e4122\n"
    },
    {
      "commit": "606adb3a515b31e6d4b02becb36f732918fe7713",
      "tree": "eea60acb136237fdff195ab264b5513dae3b0ce7",
      "parents": [
        "30a2d9c61da75359dee4ce90236d19fc6341b07a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 05 14:49:24 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 05 16:34:11 2018 +0100"
      },
      "message": "Fix and extend debugging output for bug 74410240.\n\nTest: Manually break in the resolution trampoline and\n      force printing the message.\nBug: 74410240\n\nChange-Id: I5f3fea53a7ec2170b644fb13bca84bae099243c8\n"
    },
    {
      "commit": "3215fff7ef8fa3c2250b91158560eacc613a4671",
      "tree": "50d6fe7aff3f8fae31dcf2ca020f5079f49a592f",
      "parents": [
        "6371249ce05032db5d8c4c7ec96bf7fd7264c42f"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Apr 03 17:10:12 2018 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Apr 04 14:47:57 2018 -0700"
      },
      "message": "Separate Malloc and MemMap ArenaPools\n\nMake ArenaPool an abstract base class and leave MallocArenaPool\nimplementation with it.  This enables arena_allocator to be free\nof MemMap, Mutex, etc., in preparation to move the remaining collections\nout of runtime/base to libartbase/base.\n\nBug: 22322814\nTest: make -j 50 test-art-host\n      build and boot\n\nChange-Id: Ief84dcbfb749165d9bc82000c6b8f96f93052422\n"
    },
    {
      "commit": "aa12001baf69c124ab3901c13385aaa43fc76987",
      "tree": "9cedf9714284f6a25dc40e8746aae3a719e86de4",
      "parents": [
        "3be56a02c6311d2a751f8a7410843199f9f4c9cc"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Mar 28 16:23:24 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Mar 28 17:32:16 2018 -0700"
      },
      "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"
    },
    {
      "commit": "4bf07f6921384d44987d68e6a6cabf32b9b90714",
      "tree": "7ae8cbed62b7a1534aa745c54d1ebf78449398ab",
      "parents": [
        "b939805d9d4b0957274c562fb8053512d04138b2",
        "7d74ef585063ca2adc0ba9c18008b7c1671ff699"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 27 20:49:45 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 27 20:49:45 2018 +0000"
      },
      "message": "Merge \"Support for API exemptions from API blacklisting.\""
    },
    {
      "commit": "7d74ef585063ca2adc0ba9c18008b7c1671ff699",
      "tree": "eba7606a42ed036ca560564a939da1528aa8ba54",
      "parents": [
        "e8a4e378c5a928d5de07bee6db99150a57dabcd8"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Fri Mar 16 14:18:33 2018 +0000"
      },
      "committer": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Tue Mar 27 16:28:57 2018 +0100"
      },
      "message": "Support for API exemptions from API blacklisting.\n\nAdd support to VMRuntime for setting a list of exemptions from the hidden\nAPI enforcement. The list is used as a prefix match against the signature\nof a field/method. Any signatures that match are treated as being on the\nlight grey list, rather than the dark grey list or blacklist.\n\nRefactor some code in hidden_api.h that deals with field/method signatures,\nto encapsulate the signature in a new class MemberSignature. This allows us\nto avoid building the entire signature in member, instead just using its\nconstituent parts.\n\nTest: $ make test-art-host-gtest-hidden_api_test\nTest: $ adb shell settings put global hidden_api_blacklist_exemptions \\\nTest:    Landroid/view/RemoteAnimationDefinition\\\\\\;:Landroid/app/ActivityManager\\\\\\$TaskDescription\\\\\\;\nTest: Manually verify logcat output from app which uses named APIs\nBug: 73337509\nChange-Id: Id608743d1b5a7a37059875d8991d0d4d65f5fc36\n"
    },
    {
      "commit": "fd8bb93874b9288baf288349321b86ebe3953275",
      "tree": "fa963bf6899943aba95786081c15157736008449",
      "parents": [
        "51986daae0bf23a2eab9eb2daf7bf261be502f49"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Mon Mar 12 16:52:57 2018 -0700"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Fri Mar 16 12:20:58 2018 -0700"
      },
      "message": "Enable ThinLTO for libart\n\nThis helps reducing binary size as well as improve performance of\nlibart.\n\nOn Marlin\n                      No LTO    ThinLTO   Improvement\n  libart.so           5.82MB    5.66MB    2.75%\n  libart.so (64)      7.71MB    7.44MB    3.44%\n  atest (AppStartup)  270.13    265.13    1.85%\n  dex2oat             536.04    533.03    0.56%\n\nBug: 62839002\nTest: Benchmark on Marlin\nChange-Id: Ic386ebceecf89239ad4f28db28b9bfd641efc45c\n"
    },
    {
      "commit": "281fee0dd44a4349fec38fd6f6348ca381c80218",
      "tree": "e82420586df1049df822cec0e33ac52df35e62e9",
      "parents": [
        "8ba5641ddc43fc13cdb0158bd9f3237c4a90a356"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 05 12:59:30 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Mar 08 10:36:56 2018 -0800"
      },
      "message": "ART: Remove static libbase\n\nExcept for static binaries, do not include a static copy of libbase.\n\nBug: 34867873\nTest: mmma art\nChange-Id: I6ed37b45c01c9dac33c4fc3bb71ee416138c2cb8\n"
    },
    {
      "commit": "c431b9dc4b23cc950eb313695258df5d89f53b22",
      "tree": "422273559c3ae52caff0c6b1cf1a62a8312f0e26",
      "parents": [
        "f46f46cf5bd32788d5252b7107628a66594a5e98"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Mar 02 12:01:51 2018 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Mar 05 13:58:20 2018 -0800"
      },
      "message": "Move most of runtime/base to libartbase/base\n\nEnforce the layering that code in runtime/base should not depend on\nruntime by separating it into libartbase.  Some of the code in\nruntime/base depends on the Runtime class, so it cannot be moved yet.\nAlso, some of the tests depend on CommonRuntimeTest, which itself needs\nto be factored (in a subsequent CL).\n\nBug: 22322814\nTest: make -j 50 checkbuild\n      make -j 50 test-art-host\n\nChange-Id: I8b096c1e2542f829eb456b4b057c71421b77d7e2\n"
    },
    {
      "commit": "67bf42e89592c3a1c648f927f2ce3ccb189a1161",
      "tree": "054d5b7adf7cc62d4d2a2118a70c0fbdd1751610",
      "parents": [
        "d961043ff1dd6fddb68aa90c1f939cfafec24219"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Feb 26 16:43:04 2018 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Feb 28 15:08:21 2018 -0800"
      },
      "message": "Header library to remove dependence on runtime/\n\nAdd a new header library to remove libdexfile and others\u0027 dependence on\nruntime (typically runtime/base) includes in libdexfile.  Also a small step\nto tease dexlayout and profman away from relying on these as well.\n\nBug: 22322814\nTest: make -j 50 checkbuild\n      make -j 50 test-art-host-gtest\n\nChange-Id: I38e2fe399a75f4bc6318c77a71954c00ea73ec2b\n"
    },
    {
      "commit": "63e9e8700d0fe14a31d93e95efea603bab78a68e",
      "tree": "6a89ae90a962070ed559c9759232d429a5369507",
      "parents": [
        "c7ac275a5f06b0e1140bf600ec1e654f629c54ab",
        "440a9b3b3e6aa60c14e73a97dd85c9ada0898569"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Feb 23 17:53:23 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 23 17:53:23 2018 +0000"
      },
      "message": "Merge \"Add timestamps to JIT/DEX native debug info.\""
    },
    {
      "commit": "b2f1edc3d1f162bd9007f10bc66009eac5b2daab",
      "tree": "f4c196b5f313167737835a33227778eaf62ac774",
      "parents": [
        "b81dedbf4eae5c5a7e65836d3b6d3b6d541b6fa9",
        "b2ec9f5c128673c43f776cbe12c8eeb0a6884ebb"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Feb 22 16:20:17 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 22 16:20:17 2018 +0000"
      },
      "message": "Merge \"Remove duplication, split tests\""
    },
    {
      "commit": "b69d2d3c3af7a7a62efb38d04dec878ea9b0b43c",
      "tree": "4220e5b7475b5c53b19609ef46d1d081bf8357cb",
      "parents": [
        "c758875461cca47d1b342c3c56a218a704b04365"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Feb 21 13:37:17 2018 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Feb 21 22:42:13 2018 +0000"
      },
      "message": "Remove generate-operator-out.py symlinks\n\nRewrite the operator out step to use a python_host_binary instead.\nTest: mma -j50\n\nChange-Id: I1503ad9851bf6d7bae8964f7cb91ba7f19b660ca\n"
    },
    {
      "commit": "b2ec9f5c128673c43f776cbe12c8eeb0a6884ebb",
      "tree": "724022162a4f3de021cebab32ee5ac67ec860f32",
      "parents": [
        "f13343eb8b2738e2812fd7bd9d5592f529e93c21"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Feb 21 13:20:31 2018 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Feb 21 13:51:15 2018 -0800"
      },
      "message": "Remove duplication, split tests\n\nThe code move to libdexfile/dex/descriptors_names.cc apparently did not\nremove the original code from runtime/utils.cc.  Fix that duplication\nand all the header mentions needed.  Also, split the test files to go\nalong with the new locations for the code to be tested.\n\nBug: 22322814\nTest: make -j 50 checkbuild\n      make -j 50 test-art-host-gtest\n      flash \u0026 boot marlin\n\nChange-Id: Ie734672c4bca2c647d8016291f910b5608674545\n"
    },
    {
      "commit": "440a9b3b3e6aa60c14e73a97dd85c9ada0898569",
      "tree": "26dcc48d91e3eec18ab1e4dd987962a0939f6531",
      "parents": [
        "d1652d14fbf477b3091eec3764b9890f2c072055"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Feb 15 17:47:29 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Feb 21 12:57:12 2018 +0000"
      },
      "message": "Add timestamps to JIT/DEX native debug info.\n\nThis a forward-looking change intended to allow simpleperf to\nreliably correlate samples and native debug information.\n\nI have added the timestamps to both JIT and DEX, and refactored\nthe code in the process to avoid code duplication.\n\nTest: testrunner.py -t 137\nChange-Id: I45fa4310305aff540e036db9af15a86c5b8b7aff\n"
    },
    {
      "commit": "fcbe15ce26930c0c4bb33998fc2abbe4f8770dbe",
      "tree": "6513a2eaf1251e93578916b5171dc42984de7da3",
      "parents": [
        "b40fa7c33075292beeb6840ac679ffd08fd1f719"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Feb 15 09:41:13 2018 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Feb 15 15:15:13 2018 -0800"
      },
      "message": "Build debug library libdexfiled\n\nAdd a debug version of libdexfile for use when CHECKs, etc., are\nenabled.\n\nBug: 22322814\nTest: make -j 50 checkbuild\nChange-Id: I263138611bcdde9dbc8f619bcb2a0a6d3a09fbf6\n"
    },
    {
      "commit": "b40fa7c33075292beeb6840ac679ffd08fd1f719",
      "tree": "99fdee09683add8df9ad7afb15a1f2c7d01885d5",
      "parents": [
        "d1652d14fbf477b3091eec3764b9890f2c072055",
        "7287c4d75e38e7a01c7ea3fdebb47d9cfe128a56"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Feb 15 18:33:22 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 15 18:33:22 2018 +0000"
      },
      "message": "Merge \"Add Class.getPrimitiveClass().\""
    },
    {
      "commit": "7287c4d75e38e7a01c7ea3fdebb47d9cfe128a56",
      "tree": "2b43d1b334e05e1c5719fee3f2a16bebaff059d9",
      "parents": [
        "1efa7cb8c415f4df8a248242cd773a1fc671878e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Feb 15 10:41:07 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Feb 15 15:36:21 2018 +0000"
      },
      "message": "Add Class.getPrimitiveClass().\n\nImplement the native part in ART and remove the native parts\nof the previously needed workaround for java.lang.Void.TYPE.\n\nCompanion libcore/ change:\n    https://android-review.googlesource.com/619326\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: Pixel 2 XL boots.\nBug: 73346078\nChange-Id: Icfb201a1f08d8ff2a65c58f7c0ec25aa2296db29\n"
    },
    {
      "commit": "334b9d73482fba9c335d9b758041fc0865ef74d4",
      "tree": "1e0d2050065110c37ee03ee8010ec24c8d31f32e",
      "parents": [
        "db8d9091bbab41060584ab80882b60df20337da7"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Feb 12 18:27:56 2018 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Feb 14 10:57:05 2018 -0800"
      },
      "message": "Move libdexfile out of runtime\n\nMove the files out of runtime, leaving unfortunate dependences still\nthere on runtime/base (for the moment).  Also separates the build logic\ninto two Android.bp files.\n\nBug: 22322814\nTest: make -j 50 test-art-host\nChange-Id: Ib0a1cda833b29ecfa4c8c50f23fab89ba666f491\n"
    },
    {
      "commit": "139512d4b110b087ea5439852f9f53e90e3d5a33",
      "tree": "6372bda67a55ba5bc505def17eb87b942827cf4b",
      "parents": [
        "cd4ddeea1c33d5f9b7758d116451bd06f1b81aff"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Feb 08 15:44:50 2018 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Feb 09 10:59:57 2018 -0800"
      },
      "message": "Split dex_file_loader_test\n\nInto DexFileLoader and ArtDexFileLoader portions.  This is the last test\nrefactoring before moving libdexfile out of the runtime directory.\n\nBug: 22322814\nTest: make -j 50 test-art-host\nChange-Id: I7568a7b444fb110f64614f2066df6eb5ab3a5c69\n"
    },
    {
      "commit": "0225f8e2939a9340cb7dcebfcfe7996a2bd9bce9",
      "tree": "fd32362dff4ecdc8ff8b0d800a1b46fb0d9d0104",
      "parents": [
        "c7e546ff3963a1d51b1f100d308db735bd19f736"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Jan 31 08:52:24 2018 +0000"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Jan 31 01:24:53 2018 -0800"
      },
      "message": "Revert \"Revert \"Make libdexfile build independent of runtime dir\"\"\n\nThis reverts commit 787784f9effb126b5d0d3dc97d544c4a477b5daf.\n\nReason for revert: Bot configuration issue.\n\nChange-Id: I6a10bb4a9571f89c7e4dd095f9157e830a44e2de\nBug: 22322814\nTest: make -j 50 checkbuild\n"
    },
    {
      "commit": "787784f9effb126b5d0d3dc97d544c4a477b5daf",
      "tree": "1ff6d9fd284a4dd2a337165dff20e71137997c9d",
      "parents": [
        "b40b7e73469339a6b667b4a2e2b8690112a74dc9"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Jan 30 18:48:51 2018 +0000"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Jan 30 18:48:51 2018 +0000"
      },
      "message": "Revert \"Make libdexfile build independent of runtime dir\"\n\nThis reverts commit b40b7e73469339a6b667b4a2e2b8690112a74dc9.\n\nReason for revert: on device libdexfile.so missing\n\nChange-Id: I9bd61a98bef870400580e8c991cb061d3f57fa72\n"
    },
    {
      "commit": "b40b7e73469339a6b667b4a2e2b8690112a74dc9",
      "tree": "7e8a34d9c7894c4c946f674f19f0a0a512b95184",
      "parents": [
        "9690ad794b324ba54e936608881ac0f62538b97a"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Jan 25 17:11:07 2018 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Jan 30 01:17:58 2018 -0800"
      },
      "message": "Make libdexfile build independent of runtime dir\n\nRemove libdexfile\u0027s dependency on utils.cc and move utf.cc into\n/dex.  Remove libdexfile\u0027s constituent sources from libart and\nuse libdexfile wherever libart is. Also remove some ART-specific\ninterfaces.  Libdexfile\u0027s tests remain to be converted, plus\nmoving the files to a new directory peer to runtime/.\n\nBug: 22322814\nTest: make -j 50 test-art-host\nChange-Id: Ifaf695216e4a0e43d3aa377984d933f7a2a243c2\n"
    },
    {
      "commit": "c1d3bacae473e9c64aada5885d1310f628dcd32c",
      "tree": "4a50ef63911629de88d04b375c2f3321077ea8f5",
      "parents": [
        "26f927518fda8e334e2af2003056b44a9265d5a0"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Jan 26 14:38:55 2018 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Jan 29 09:25:46 2018 +0000"
      },
      "message": "ART: Type conversion fixes for MethodHandles\n\nRemove illegal conversion path from byte to short.\n\nThrow WrongMethodTypeException on later error paths of reference to\nprimitive conversion.\n\nBug: 72489224\nTest: art/test.py --host -g\nChange-Id: Iddca81ee7185bb90cc5e8ab19cfa03ddfb1652ec\n"
    },
    {
      "commit": "8c0961f9e061ee4b04c1c4ba8ad5cca13bcf884d",
      "tree": "f6e5a970a6bcc0935e150cb6c28a520bf31ba964",
      "parents": [
        "2b1a21ed3581f77f34d582507177ebce33565534"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Jan 23 16:11:38 2018 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Jan 24 09:24:29 2018 -0800"
      },
      "message": "Move missed files to libdexfile\n\nReduce the dependencies on utf and utils in preparation for separate\ndirectory.\n\nBug: 22322814\nTest: make -j 50 test-art-host\n      make -j 50 dexdump2 dexlist\n\nChange-Id: Icdecf895dafec63ef903514eef79d459abc14925\n"
    },
    {
      "commit": "b6d077aceb38922891a6b9e79714bad3072f9c15",
      "tree": "c3a749ae1b45bf25e8ebbda0a384563b635e74ab",
      "parents": [
        "d78ca5213b780ca3165acb68e44f88f639e8ca45",
        "36060d1f2fba5d146a7b74f636e8cb11e1f04203"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 23 01:21:23 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 23 01:21:23 2018 +0000"
      },
      "message": "Merge changes I82227160,Ief091d99\n\n* changes:\n  Fix spelling mistake for ProfileLoadSatus\n  Load profiles from zip archives\n"
    },
    {
      "commit": "1e2de64a0906a0dc2812c93e9de89791826b3ceb",
      "tree": "7f1a38c74882c439d1efa0d543436d7892e51b19",
      "parents": [
        "f147a3f896e0726e3a4d47e7092e0cc6930c559e"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Jan 18 01:08:23 2018 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Jan 22 15:10:35 2018 -0800"
      },
      "message": "Load profiles from zip archives\n\nExtend the profile logic to support loading from zip archives. The\nprofile will be loaded from the zip entry called \u0027primary.prof\u0027.\n\nIf the zip file does not contain such an entry an empty profile will be\ncreated. This gives more flexibility in handling archives which may lack a\nprofile entry.\n\nTest: m test-art-host-gtest\nBug: 30934496\nChange-Id: Ief091d995661af8302e086b19bc533187dffd463\n"
    },
    {
      "commit": "5a1f6294919206d117662925ff2ad7cd0802721d",
      "tree": "3414edb24e5a834207551a3b172d37552cbe2a55",
      "parents": [
        "5577295109a8af9f5bd31430670e5cbbc1a1e079"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Jan 19 11:08:51 2018 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Jan 22 20:50:17 2018 +0000"
      },
      "message": "Build dexdump2 and dexlist without libart\n\nFinally, flesh out libdexfile enough that it can replace libart for use\nin dexdump2.\n\nBug: 22322814\nTest: make -j 50 dexdump2 dexlist\n      dexdump2 -d fb/base.apk\n      dexlist fb/base.apk\n\nChange-Id: Ibf9a1cd642cd473eea0b2208d72b4768aaa17f02\n"
    },
    {
      "commit": "28ccbfc1c03b7b26185ff5995708b4717671dcec",
      "tree": "318323665cafd57b6e59b776080f730a58ddd9c5",
      "parents": [
        "0d413f64984775f0e719d186bccfbd388a745d17"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Jan 19 02:46:02 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Jan 19 03:30:30 2018 +0000"
      },
      "message": "Tweaks to libdexfile build definitions.\n\nRemove vendor variant which I added in previous CL. Thanks to\nDavid Sehr and Dan Willemsen for showing me how to avoid it.\n\nDon\u0027t export headers. Our elf.h shadows system elf.h which breaks\nmost tools that depend on this library. Icky.\n\nThis is primarily to unblock development. Long term, we should\ndecouple the dex code more to avoid having to do this.\n\nBug: 66919073\nTest: m test-art-host-gtest\nChange-Id: Ie1d4a22754cec1d063e1644cd8ed1534e732bb1a\n"
    },
    {
      "commit": "e73550ddf8a8d8d22998476f8c16f90461af91fa",
      "tree": "b486127cd046e2d940b619a953779073c1c7836a",
      "parents": [
        "fa0b0db6fbdcbf20bf78c53500ac98cfc3a26208"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Jan 16 12:35:41 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jan 17 13:55:36 2018 +0000"
      },
      "message": "Make libdexfile usable from libunwind\n\nCan not depend on libutils as that causes build cycle.\nUse just jni_headers instead.\n\nMake the library available in vendor builds.\n\nFill one of the basic dex Open methods which does not\ndepend on the ART runtime.\n\nAdd some needed definitions to elf.h for libunwind.\n\nBug: 66919073\nTest: m test-art-host-gtest\nChange-Id: Ie3a42c127a19c1b986934723688e9f8903ba8fb9\n"
    },
    {
      "commit": "8892c6bd9235e7ae697039c901aaeea1597a7473",
      "tree": "fa10893a270bad91d3503a761f140cbe9c97a74c",
      "parents": [
        "210531f8775c89feb90d430cd5b6026b4cf8ef89"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jan 09 15:10:17 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Jan 13 01:40:47 2018 +0000"
      },
      "message": "Move debug info offsets into a side table\n\nAdd a compact side table for figuring out the debug info offsets\nfor a given method index. This reduces dex size by ~1.2%.\n\nThe debug table is keyed by method index and has leb encoded\noffsets for the offsets. This means the table is smaller if debug\ninfos are encoded by method index order.\n\nTo prevent expansion for method indicies without debug info, there\nis a bitmap that specifies if a method index has a debug info offset.\n\nMotivation: Reduce code item size and allow more deduping in the\nfuture.\n\nTest: test-art-host\nBug: 63756964\n\nChange-Id: Ib983e85c1727f58c97676bde275f4a9756314da0\n"
    },
    {
      "commit": "013fd8073f3ece22b0bba1853d3f3430c8a9e4bd",
      "tree": "d1fb1ce709d4927a8b5f5d7fc673b6932ca4977a",
      "parents": [
        "a7e4a15ba7b40fbe1ecd76ce0d99de90aa42201f"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Jan 11 22:55:24 2018 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Jan 12 12:47:13 2018 -0800"
      },
      "message": "Create an ART-independent DexFileLoader\n\nOpening DEX files should not rely on instantiating a runtime or having a\nlarge number of dependencies on runtime components.  This CL makes\nDexFileLoader a stub class that is independent of ART, and introduces a\nsubclass ArtDexFileLoader that contains the current implementations.\n\nBug: 22322814\nTest: make -j 50 test-art-host\nChange-Id: Ia6e92ae93c347057ea0c10455525239cbbe42c03\n"
    },
    {
      "commit": "9e734c7ab4599d7747a05db0dc73c7b668cb6683",
      "tree": "dce1d1993734a947fb2e6f626eb1b425cb72143b",
      "parents": [
        "b496af808eaf3af5ebac50aef4fbec33323b5016"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Jan 04 17:56:19 2018 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Jan 05 11:07:19 2018 -0800"
      },
      "message": "Create dex subdirectory\n\nMove all the DexFile related source to a common subdirectory dex/ of\nruntime.\n\nBug: 71361973\nTest: make -j 50 test-art-host\nChange-Id: I59e984ed660b93e0776556308be3d653722f5223\n"
    },
    {
      "commit": "dc578c7e47b2db623b382932bfe4dbc6dce41aa4",
      "tree": "409e6dc0c338bf75c1ce55acfae91fe86ef3028e",
      "parents": [
        "1d32a16f93d8bb479523fd237277ecbbff5bf1f4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 27 11:51:45 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 27 13:24:11 2017 -0800"
      },
      "message": "Move dex exception helpers to their own file and use dex accessor\n\nAlso change the input argument to be a code item accessor\ninstead of a code item pointer. This removes the dependency on\nthe code item layout.\n\nBug: 63756964\nTest: test-art-host\n\nChange-Id: If75a168d0b5a77d08fa3c6ba38d00705158911db\n"
    },
    {
      "commit": "403207107da7f11525c4d305184c56b35ec1c17a",
      "tree": "f97f080fcfa8051df18536e97a33582ee4bbbc6a",
      "parents": [
        "ba3a790338725a37ecd4cb314c4a6147e29aef38"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Dec 14 11:52:04 2017 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 19 09:26:11 2017 -0800"
      },
      "message": "Add support for selecting alternate JDWP implementations\n\nChange JDWP options parsing to take place later and add a\n-XjdwpProvider:_ option that can be used by the runtime to select an\nappropriate JDWP provider. The argument is a string.\n\nIf \u0027none\u0027 is given JDWP will be totally disabled.\n\nIf \u0027internal\u0027 is given the current internal JDWP implementation is\nused.\n\nIf \u0027default\u0027 is given the \u0027internal\u0027 JDWP implementation will\ncurrently be used.\n\nOther values will be added in the future.\n\nAlso adds a runtime callback that will be invoked when the runtime\nwants to start or stop the debugger (namely at the post-zygote fork\nand just before exit) and check if a debugger is availible.\n\nAlso add \u0027-XjdwpOptions:_\u0027 in preparation for the eventual removal of\nthe existing -Xrunjdwp\u003d_ and -Xagentlib:jdwp\u003d_ as top-level options.\nAll of these options now store their arguments as a std::string to be\ninterpreted by the JDWP implementation as it sees fit. Also change the\njdwpOptions to default to transport\u003ddt_android_adb if there is not one\nspecified and it is available. This will make changing the default\ntransport based on the JDWP provider easier.\n\nThese new options are needed to allow us to support both the old,\ninternal, JDWP implementation as its replacement is tested and\nverified. This lets us switch between them with little difficulty.\n\nWe will probably remove one or both of these options once we have\nconfidence that the new jdwp implementation has stuck.\n\nTest: ./test.py --host -j50\nTest: ./test/run-test --host --debug 001-HelloWorld\nTest: Manual, flash walleye, debug app\n\nBug: 62821960\n\nChange-Id: Ie31db6b6f7d76a03d4ab8e178fcf298ed0eec203\n"
    },
    {
      "commit": "dcc528d2c7d5ac2cc075d4c965fdf702421d0f43",
      "tree": "e070070248facaf4c23f0ceb4a713de29b681462",
      "parents": [
        "57943810cfc789da890d73621741729da5feaaf8"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 07 13:37:10 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 07 16:26:11 2017 -0800"
      },
      "message": "ART: Move runtime-debug flags to own files\n\nTo reduce the need for base/logging.h and separate out concerns.\n\nTest: m\nChange-Id: Ib373357325c6e622f608ada341594c3bea2fce2e\n"
    }
  ],
  "next": "f3c52b42a035902245d00a619fed0275afb063d2"
}
