)]}'
{
  "log": [
    {
      "commit": "b94cc1129aa03e77d001eb3429a8a0efa0d6ac1e",
      "tree": "df8fa5e2004827f3de87bbe3e61b92aa6193114a",
      "parents": [
        "b3b2db7edeaa09751dab44a7d0339590fd7b1788"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Jul 16 19:03:32 2019 +0000"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Jul 16 22:42:24 2019 +0000"
      },
      "message": "Revert \"Disable dexdiag_test on fugu.\"\n\nThis reverts commit 674040421e40712df79493ecef62b6af028d657a.\n\nReason for revert: I think the underlying problem has been fixed.\n\nBug: 136245508\n\nChange-Id: I342be643c3e798caa241a1398210655e395bbadc\n"
    },
    {
      "commit": "bfa8b1ea0f7edf84c4137d5a822cc8acaf90acda",
      "tree": "758b5fac4fb835aa04671d4c128dfb68efa18629",
      "parents": [
        "bc919af448aef9e8043e56ca83a2aa4ff90b9ad6"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Jul 12 14:30:27 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Jul 16 00:00:16 2019 +0000"
      },
      "message": "Skip reading usage stats for map data.\n\nBug: 136245508\n\nTest: Ran DexDiag tests on cuttlefish and Taimen (32 bit and 64 bit).\nChange-Id: I0093d721033a29a3e5a11c3430e82e38f624320c\n"
    },
    {
      "commit": "674040421e40712df79493ecef62b6af028d657a",
      "tree": "7f73066645bf0e52972eb825ed865a74f049eb83",
      "parents": [
        "e1070377d890f278a49ec8719e66b36860124132"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jul 01 11:10:55 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jul 01 14:56:29 2019 +0000"
      },
      "message": "Disable dexdiag_test on fugu.\n\nBug: 136245508\nTest: dexdiag_test\nChange-Id: I54b0071bb0cac94d7ae4adb4460c0557fa4c865c\n"
    },
    {
      "commit": "436f6c1e53b735ace36fbfe48c337ece07d76e62",
      "tree": "77cadf8842b3d33f0491441c4c2e0d873a391f40",
      "parents": [
        "9a292a1d28c11eba629f6bd62d475af83b155f9e"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed May 22 13:28:42 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri May 24 17:55:27 2019 +0000"
      },
      "message": "Switch-interpreter: Add helpers to get opcode arguments.\n\nAdd trivial helpers to get opcodes arguments (A/B/C).\n\nEnsure the generic getters in Instruction can take\nadvantage of knowing the format at compile-time.\n\nAs the first step, I have simplified the code only where\nthe argument is used as index for SetVReg/GetVReg calls.\n\nTest: ART_USE_CXX_INTERPRETER\u003dtrue ./art/test.py -b --host\nTest: ART_USE_CXX_INTERPRETER\u003dtrue ./art/tools/run-jdwp-tests.sh \\\n      --mode\u003dhost --variant\u003dX32 --debug --no-jit\nChange-Id: I765c0eb16438806c3624fabe3aade040c7bb3387\n"
    },
    {
      "commit": "0dc93b1ba94460b0ae126dd4db335261165c74b7",
      "tree": "78b3afa099dce52a1eb39d6a9788d610b14a1f6b",
      "parents": [
        "9b81ac36e161fd993eab17b43b93a96e8c63b5cc"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed May 15 10:30:22 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 17 20:40:21 2019 +0000"
      },
      "message": "ART: Run bpfmt over ART\u0027s blueprint files\n\nTest: mmma art\nChange-Id: Ic85df4770c12ec02836c877b243d4aec234aaada\n"
    },
    {
      "commit": "7711c35fa603b86d520991c4e97ca297add81881",
      "tree": "ce476e232ecf0176c5c9bed81f1528a1c6801fab",
      "parents": [
        "39239870737e3669ff1f85475458e5f57ed79194"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Apr 10 17:50:12 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Apr 30 08:11:20 2019 +0000"
      },
      "message": "Fix debug/release dependencies on libartbase\n\nWe load both the debug and release build when running tests.\nThe different builds have different layout of some classes,\nwhich can currently result in random native heap corruptions.\n\nFix the build dependencies to avoid the double loading,\nand add runtime check to avoid it in the future again.\n\nTest: test.py -b --host --64\nTest: test.py -r --target -t 001-HelloWorld\nChange-Id: Ie62f91dc06209c91e25ba5f11c9d61243ac7579d\n"
    },
    {
      "commit": "7c5acbb122485b6215dc34defc1f19e07390bb95",
      "tree": "af0889bb17ef622b8c51d9f110991ca025caef16",
      "parents": [
        "51c655847f2f7d2a9127574d3aeda12755014608"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 20 13:54:52 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 25 20:41:37 2019 +0000"
      },
      "message": "ART: Fix some types\n\nUse better types and fix some typing issues exposed by clang-tidy\u0027s\nreadability-implicit-bool-conversion.\n\nBug: 32619234\nTest: WITH_TIDY\u003d1 mmma art\nChange-Id: I787d291a4843a3192a84853d105d57377b774b23\n"
    },
    {
      "commit": "fb6a5c00ef02cda7ea919d717daaf46abd0414e4",
      "tree": "9ecfaac9bee174b3b31e0294c46c4d32a5f7b714",
      "parents": [
        "f160394fda141184f0ec3d139ec5ca810f142bda"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Mar 29 20:20:16 2019 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Apr 12 13:47:09 2019 +0100"
      },
      "message": "Add and use art::GetAndroidRuntimeBinDir.\n\nThis method returns the location of the directory containing the\nAndroid Runtime binaries, which is expected to be the Android Runtime\nAPEX\u0027s bin directory on target and the Android Root\u0027s bin directory on\nhost (at least for now).\n\nAlso remove art::CommonArtTestImpl::GetTestAndroidRoot as it is no\nlonger used.\n\nTest: ART gtests on host and target\nBug: 121117762\nChange-Id: I4593bbd4d675ca9d3f7b708482aac82c1892a9ad\n"
    },
    {
      "commit": "93aa8b035fe17bee04d3271a3595e3c098d63937",
      "tree": "6ea6675d9a1763d40e1d5abea58236d65c2c72f3",
      "parents": [
        "f75dce49ebe792cfd0b62c59c86fdc793926ee4d"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Apr 08 13:40:29 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 09 04:12:55 2019 +0000"
      },
      "message": "Fix include order\n\nFix a code review comment that came in after submit of aog/940389.\n\nBug: None\nTest: make test-art-host-gtest-dexlayout_test\nChange-Id: I093440a027541f94a96c594a624757c2f2c7948c\n"
    },
    {
      "commit": "a8d23cb7febebc44ddfc03a3a135bb983eb95029",
      "tree": "6228c445b8321eec2c813802aefa7ce593acee64",
      "parents": [
        "1ea8a62e320cb53b65910093b35240b3139b2cfa"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Apr 08 11:29:11 2019 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Apr 08 20:20:18 2019 +0000"
      },
      "message": "Use CommonArtTest for dexlayout, dexdiag\n\nUse the non-Runtime CommonArtTest for dexlayout and dexdiag.  Also,\nmove some lines that should have been put in common_runtime test.h.\n\nBug: None\nTest: build test-art-host-gtest\nChange-Id: Ie2f7feb1c62de4994ea2eac368d352634e088e74\n"
    },
    {
      "commit": "4f215d1b1ceba9dfc8d8f3d8644da81302b2cd86",
      "tree": "34ee009a807d394ab7e1bb7f9ab3b1d36e3c7269",
      "parents": [
        "774232ae5a825ad4a366edc57081bff265e0ac32"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Apr 03 09:28:21 2019 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Apr 04 15:28:48 2019 +0000"
      },
      "message": "Rename dexdump2 to dexdump\n\nComplete the migration from dalvik/dexdump to art/dexdump.\n\nBug: 22322814\nTest: make checkbuild test-art-host-dexdump\nChange-Id: I95d5b83d9855b440f2fe4073f1e1d746fe807888\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": "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": "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": "fcea622316fe60bbfde8ab7ad55cdcb2105f472b",
      "tree": "bf293a505724009180dea4d761d0e260dbfa92d4",
      "parents": [
        "21283ba50fa05c00891578825fa65a1a6b278750",
        "2110de53147743e537e9d7df0b06ac2ebd9e343c"
      ],
      "author": {
        "name": "Sandeep Patil",
        "email": "sspatil@google.com",
        "time": "Tue Jan 22 22:08:24 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 22 22:08:24 2019 +0000"
      },
      "message": "Merge \"dexdiag: Replace libpagemap with libmeminfo\""
    },
    {
      "commit": "1783480faec4ed9502349c4642ec9c3facad3adb",
      "tree": "837e853701ebb10a93ffccfade8e2b21cf5d3e09",
      "parents": [
        "8c4d7170d3327c0dc2ffc4668382226b515f15c1"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Jan 21 19:46:46 2019 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Jan 22 10:00:25 2019 +0000"
      },
      "message": "dexlayout: ProcessOffset in WriteHiddenapiClassData\n\nWriteHiddenapiClassData would not call ProcessOffset before starting to\nwrite data. This is only a problem if compute_offsets_ is false as it\nwould continue writing where previous section left off and that place\nnot being the end of the file.\n\nThis fixes dexlayout_test gtest.\n\nBug: 123150330\nTest: m test-art-host-gtest-dexlayout_test\nChange-Id: I552122d0968584db4a53d7219986f9693210b1e1\n"
    },
    {
      "commit": "2110de53147743e537e9d7df0b06ac2ebd9e343c",
      "tree": "0b040d41738c86b9a5e34badaa09c751bf439cc6",
      "parents": [
        "e0c33a29811343e634b7445b7c0aac3c9a6a8f73"
      ],
      "author": {
        "name": "Sandeep Patil",
        "email": "sspatil@google.com",
        "time": "Mon Jan 21 17:21:09 2019 -0800"
      },
      "committer": {
        "name": "Sandeep Patil",
        "email": "sspatil@google.com",
        "time": "Mon Jan 21 17:21:09 2019 -0800"
      },
      "message": "dexdiag: Replace libpagemap with libmeminfo\n\nlibpagemap is to be deleted, so remove the libpagemap usage and use\nlibmeminfo instead.\n\nBug: 111694435\nTest: dexdiag `pidof com.google.android.calendar`\n\nChange-Id: I4ecb1c56bf5f4ac518e3c51a392591a4a3f0b2fb\nSigned-off-by: Sandeep Patil \u003csspatil@google.com\u003e\n"
    },
    {
      "commit": "90faceb71e25748172ba6369209f8a2a66735394",
      "tree": "64707bbd718b29de9a19c01b12b0cc872685bb13",
      "parents": [
        "62a4bcf3fe11e6800f5d451b41003c135358ed6a"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Dec 14 14:36:15 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Jan 21 09:48:59 2019 +0000"
      },
      "message": "hiddenapi: Support \u0027core-platform-api\u0027 flag\n\nAdd support for parsing @CorePlatformApi stubs and encoding it in\nhiddenapi dex flags of the corresponding fields/methods.\n\n(1) The CL refactors hiddenapi::ApiList class to store a second value:\na bit vector of \"domain API\" flags. These are intended for encoding\nmembership in a set of API stubs only available to certain callers,\ne.g. @CorePlatformApi when platform code calls core platform or\n@TestApi for CTS tests.\n\n(2) Parse @CorePlatformApi stubs and set domain flags for its members.\n\n(3) Parse the flags at runtime and set kAccCorePlatformApi access flag\non the corresponding ArtField/ArtMethod objects.\n\nBug: 119068555\nTest: m appcompat\nTest: dexlayout -b \u003ccore-oj jar\u003e | grep \u0027CORE-PLATFORM-API\u0027\nChange-Id: Idbfa6d3af7459258a5a0b6da7c03c037a577eb75\n"
    },
    {
      "commit": "9d9227ae2d8806446fa3e60870d0e8df5e5c9377",
      "tree": "adb174eac909e16705e95bb6e8b23759ebe96249",
      "parents": [
        "163a37ad5f2d0b16bdd32fb8964580991900049a"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Dec 19 12:32:50 2018 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Jan 07 21:41:30 2019 +0000"
      },
      "message": "Build dexlist, dexlayout, and profman for Windows\n\nBug: 22322814\nTest: wine on linux on a large dex file.\nChange-Id: I93a89253799715de54e1c52213595b0749a5f47f\n"
    },
    {
      "commit": "3f1dcd39e134d994ac88dcc4f30ec8cabcd8decf",
      "tree": "365d20ad6b68ff1dbd4903764b63880324136e4d",
      "parents": [
        "0f0a4e40667c87fbd4ae5480eddbfd701bfabfa2"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Dec 28 09:39:56 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 02 10:32:25 2019 -0800"
      },
      "message": "ART: Move dex structs into own header\n\nSeparating out the structs from DexFile allows them to be forward-\ndeclared, which reduces the need to include the dex_file header.\n\nBug: 119869270\nTest: m\nChange-Id: I32dde5a632884bca7435cd584b4a81883de2e7b4\n"
    },
    {
      "commit": "dcfa89bfc06a6c211bbb64fa81313eaf6454ab67",
      "tree": "4aaf6da88861029e387525957bf68796cf95648c",
      "parents": [
        "fd667d4165aefe51010e4fe3bd81b820ed9884ef"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Oct 31 11:04:10 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Nov 22 12:49:26 2018 +0000"
      },
      "message": "Rename and reorganize hiddenapi::ApiList\n\nChange values of ApiList flags to make them easier to extend in the\nfuture and unify naming across all components. Light greylist is now\njust \"Greylist\", dark greylist becomes \"GreylistMaxO\".\n\nNote that the version code in \"GreylistMaxO\" must also include any\nmaintenance releases, i.e. entries on \"GreylistMaxO\" are accessible\nto apps with targetSdkVersion\u003c\u003d27 (O MR1).\n\nTest: m, phone boots\nTest: m test-art\nChange-Id: I9622e0646eb265008a8bb2652270876ae95dac84\n"
    },
    {
      "commit": "eead626e0567d11ed0402e9586a99ca4a1d023eb",
      "tree": "57cf06ed51f580f44da42def5c47f1c47e22f4a0",
      "parents": [
        "b97c8af44dca6f0edbe80b13921bd47f9913c6fb",
        "65ed42a3d3a7bf1a42e759ed53c16b179f54813a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 30 12:33:27 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 30 12:33:27 2018 +0000"
      },
      "message": "Merge \"Revert \"Link compression libs statically into libartbase and use those everywhere.\"\""
    },
    {
      "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": "6e32b0059b4c3073c601018da3ca315ad568525a",
      "tree": "f4d259e7c52dcbbbdbe6a31d56720fca692af733",
      "parents": [
        "f82eb6e0309a138ea11e309ad125675efc44125b",
        "8a94003e66f337fe84870ff68d3f6f234555cf06"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Tue Oct 30 10:51:59 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 30 10:51:59 2018 +0000"
      },
      "message": "Merge \"Link compression libs statically into libartbase and use those everywhere.\""
    },
    {
      "commit": "f82eb6e0309a138ea11e309ad125675efc44125b",
      "tree": "6a66d8dc3262e963ac5559721a231df4ea1103d7",
      "parents": [
        "dc0156dd2e76d518bf1432ae95785ddff9144b78",
        "20c765f645fa9be77e045463c5064d41211a2815"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Oct 30 10:02:20 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 30 10:02:20 2018 +0000"
      },
      "message": "Merge \"Revert^4: Add dex item for hiddenapi flags\""
    },
    {
      "commit": "c57c680b16eb4857eef16134a811f4c2ff9d95f0",
      "tree": "9527328cb8738878e1b727a48620769224dddb2c",
      "parents": [
        "ce2a00daa92670a4fc01ef59fdbc3769a846f69c"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Mon Oct 29 14:28:56 2018 -0700"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Mon Oct 29 14:39:24 2018 -0700"
      },
      "message": "Modernise code to use std::make_unique\n\nGenerated by clang-tidy.\n\nTest: m checkbuild\nChange-Id: Idb24960d9326c0d94ab5d04b18deb0894d23da9f\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": "20c765f645fa9be77e045463c5064d41211a2815",
      "tree": "dcb9dfb6bf5363d1e933589f22339dc999b96703",
      "parents": [
        "ce2a00daa92670a4fc01ef59fdbc3769a846f69c"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Sat Oct 27 21:45:15 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Sun Oct 28 20:00:03 2018 +0000"
      },
      "message": "Revert^4: Add dex item for hiddenapi flags\n\nMove hiddenapi access flags to own data section so as to:\n(a) increase amount of information stored per method/field\n(b) use encoding which can be supported long-term.\n\nThe dex item is implemented as:\n - array of offsets indexed by class def index\n - streams of uleb-128 encoded flags.\nOffsets in array point to the beginning of the flags stream\nfor the given class def. Flags are encoded in the same order\nas fields and methods are encoded in class data. Zero offset\nmeans that the class either does not have class data, or all\nof its flags are zero.\n\nThe patch updates:\n(a) libdexfile with data structure declarations and accessor\n    methods,\n(b) hiddenapi tool to create the new item from hiddenapi lists\n    and insert it into the given dex file,\n(c) dexlayout to copy the flags into compact dex,\n(d) dex file verifier to verify the item.\nIt also removes skipping of verification for boot class path\ndex files as those now pass DexFileVerifier, and removes the\nneed for removing the flags for JVMTI.\n\nThe size increase is 450 KB.\n\nThis reverts commit d33d318685ec4a1c9e7995c914c104ab6487513b.\n\nChange-Id: Id00e0efb38ee1eab8d7ed5c645a7778b6b94b849\nTest: phone boots\nTest: m test-art\n"
    },
    {
      "commit": "d33d318685ec4a1c9e7995c914c104ab6487513b",
      "tree": "3bb8a93f499ac537d445e90533598571f3d2d120",
      "parents": [
        "fe3a979f6214e2ea94a9aed4c573c6a6f64c7096"
      ],
      "author": {
        "name": "Luman Qu",
        "email": "quluman@google.com",
        "time": "Fri Oct 26 16:53:25 2018 +0000"
      },
      "committer": {
        "name": "Luman Qu",
        "email": "quluman@google.com",
        "time": "Fri Oct 26 16:53:25 2018 +0000"
      },
      "message": "Revert \"Revert^2: Add dex item for hiddenapi flags\"\n\nThis reverts commit fe3a979f6214e2ea94a9aed4c573c6a6f64c7096.\n\nReason for revert: Caught by droidcop https://b.corp.google.com/issues/118481351\n\nChange-Id: I17cc3586c9ae3b49839633d9543edce2937c388d\n"
    },
    {
      "commit": "fe3a979f6214e2ea94a9aed4c573c6a6f64c7096",
      "tree": "b31c1748dcd30a5bf76c2186b4c0124fb18b9dd6",
      "parents": [
        "d9a0437b0d6cb1438bf21284a2502cbfe293db06"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Oct 25 17:24:38 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Oct 25 17:25:17 2018 +0000"
      },
      "message": "Revert^2: Add dex item for hiddenapi flags\n\nMove hiddenapi access flags to own data section so as to:\n(a) increase amount of information stored per method/field\n(b) use encoding which can be supported long-term.\n\nThe dex item is implemented as:\n - array of offsets indexed by class def index\n - streams of uleb-128 encoded flags.\nOffsets in array point to the beginning of the flags stream\nfor the given class def. Flags are encoded in the same order\nas fields and methods are encoded in class data. Zero offset\nmeans that the class either does not have class data, or all\nof its flags are zero.\n\nThe patch updates:\n(a) libdexfile with data structure declarations and accessor\n    methods,\n(b) hiddenapi tool to create the new item from hiddenapi lists\n    and insert it into the given dex file,\n(c) dexlayout to copy the flags into compact dex,\n(d) dex file verifier to verify the item.\nIt also removes skipping of verification for boot class path\ndex files as those now pass DexFileVerifier, and removes the\nneed for removing the flags for JVMTI.\n\nThe size increase is 450 KB.\n\nThis reverts commit d9a0437b0d6cb1438bf21284a2502cbfe293db06.\n\nTest: phone boots\nTest: m test-art\nChange-Id: I224bf1b587529f36ea00a666680c4e4c8ca16a42\n"
    },
    {
      "commit": "d9a0437b0d6cb1438bf21284a2502cbfe293db06",
      "tree": "3bb8a93f499ac537d445e90533598571f3d2d120",
      "parents": [
        "fd2aa2bf72563870c9261f248f992a20ac4837a8"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Oct 24 12:34:06 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Oct 24 12:37:49 2018 +0000"
      },
      "message": "Revert \"Add dex item for hiddenapi flags\"\n\nThis reverts commit 0dbc363f32d075017e1c4fb5e17715e3f12d0157.\n\nReason for revert: marlin running out of space\n\nChange-Id: I80218af6408812b639b7c807bf8cb2a1d5239d94\n"
    },
    {
      "commit": "cd98cde0642e664ae2396555c5d90c0a44c77ba7",
      "tree": "69790ce15b0d5c213669cab12108b8f33f2f6f9f",
      "parents": [
        "349d1377aa300512177729e7988d824b67638552",
        "0dbc363f32d075017e1c4fb5e17715e3f12d0157"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Oct 24 09:19:00 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 24 09:19:00 2018 +0000"
      },
      "message": "Merge \"Add dex item for hiddenapi flags\""
    },
    {
      "commit": "0dbc363f32d075017e1c4fb5e17715e3f12d0157",
      "tree": "950dfed748f63863db6b95d7b854940171b544c6",
      "parents": [
        "62ada4cd2c9a7ef5d1ab4c538d660f8a6a7f7571"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Sep 10 09:14:30 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Oct 23 14:51:01 2018 +0100"
      },
      "message": "Add dex item for hiddenapi flags\n\nMove hiddenapi access flags to own data section so as to:\n(a) increase amount of information stored per method/field\n(b) use encoding which can be supported long-term.\n\nThe dex item is implemented as:\n - array of offsets indexed by class def index\n - streams of uleb-128 encoded flags.\nOffsets in array point to the beginning of the flags stream\nfor the given class def. Flags are encoded in the same order\nas fields and methods are encoded in class data. Zero offset\nmeans that the class either does not have class data, or all\nof its flags are zero.\n\nThe patch updates:\n(a) libdexfile with data structure declarations and accessor\n    methods,\n(b) hiddenapi tool to create the new item from hiddenapi lists\n    and insert it into the given dex file,\n(c) dexlayout to copy the flags into compact dex,\n(d) dex file verifier to verify the item.\nIt also removes skipping of verification for boot class path\ndex files as those now pass DexFileVerifier, and removes the\nneed for removing the flags for JVMTI.\n\nThe size increase is 450 KB.\n\nTest: phone boots\nTest: m test-art\nChange-Id: Idec301db540cf164fccc97136d1df4abb8f758bd\n"
    },
    {
      "commit": "dfcd82c09e8ce4562ed39e006d4b1c8163b4e25e",
      "tree": "d9bfd3e043a95b3c8e302769cef23c13a89df3c5",
      "parents": [
        "4f570a43146c1456071f2ffe6590ab96e723051a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Oct 16 20:22:37 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 19 13:06:33 2018 -0700"
      },
      "message": "ART: Fix android-cloexec warnings\n\nUse the DupCloexec helper wherever possible. Add O_CLOEXEC to open\nand fopen calls.\n\nBug: 32619234\nTest: WITH_TIDY\u003d1 mmma art\nChange-Id: I0afb1beea53ab8f68ab85d1762aff999903060fe\n"
    },
    {
      "commit": "4f570a43146c1456071f2ffe6590ab96e723051a",
      "tree": "7831f6e65bb5fa00fe54d0eb3f7e8146b1a42bf8",
      "parents": [
        "d43723ae34bb3845a9c0e4cb790ffaff13974562",
        "f4efa9ed0d7616bd32b258562d6977d9b7554af2"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Oct 19 12:10:23 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 19 12:10:23 2018 +0000"
      },
      "message": "Merge \"Remove oat_data_begin checks from OatFile.\""
    },
    {
      "commit": "afaf7f8198fe5ffc054278da6800f81dd83f272c",
      "tree": "3ebdec9fca813351d178709743121fa66815a7a0",
      "parents": [
        "6ca8ec7809f87ccac8d9d66d267f2379bdfdfe66"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Oct 16 11:32:38 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 18 08:20:09 2018 -0700"
      },
      "message": "ART: Enable bugprone-unused-return-value\n\nEnable bugprone-unused-return-value as an error. This is on top of\nthe compiler warning for attribute((warn_unused)).\n\nMark the current occurrences (all unique_ptr.release()) with NOLINT\nto signal that we know what we\u0027re doing.\n\nBug: 32619234\nBug: 117926937\nTest: WITH_TIDY\u003d1 mmma art\nChange-Id: I36659722335eef36acfa5845289104257a393874\n"
    },
    {
      "commit": "f4efa9ed0d7616bd32b258562d6977d9b7554af2",
      "tree": "826f880e65c88f85929c64907a414013f0901801",
      "parents": [
        "a52ac0cd739e6c5b33bdaf81a19370d3acf4eadf"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 17 14:12:45 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 17 17:34:47 2018 +0100"
      },
      "message": "Remove oat_data_begin checks from OatFile.\n\nMake it a CHECK() directly in the ImageSpace instead. This\ncheck was a rather weird way to prevent the use of dlopen()\nfor boot image on host because it would load the oat file\nat the wrong address. This is now done by refusing to use\ndlopen() on host when we have a memory `reservation`.\n\nAlso clean up affected files for bugprone-argument-comment.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 77856493\nChange-Id: I6f0f9d5a0542574017d98acc2f4f30a585b483f4\n"
    },
    {
      "commit": "9b031f7e4834b263ae531409a9f6c82cfdc89477",
      "tree": "4b5fdfc3ecc12b5b7e32959bec0c26595b87d2ab",
      "parents": [
        "c71f38bdf7dca39a070ba25d436edcd758551f42"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 04 11:03:34 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Oct 09 14:38:45 2018 -0700"
      },
      "message": "ART: Refactor for bugprone-argument-comment\n\nHandles smaller subdirectories.\n\nBug: 116054210\nTest: WITH_TIDY\u003d1 mmma art\nChange-Id: I81c8f3396b9922684b68e9f3d8fccefe364f1279\n"
    },
    {
      "commit": "ba62f6638bc78e91f90e48a63d183bff15be940f",
      "tree": "d50af6920371a003c5f60111c3502feab7da8ef1",
      "parents": [
        "2c3d9a443abdfd491b187e7c7660895f8bafb529",
        "d228d91d06f3e2ec20954b6bec2d1d1aa47690b7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 03 18:12:55 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 03 18:12:55 2018 +0000"
      },
      "message": "Merge \"Dexlayout: update help string for checksum.\""
    },
    {
      "commit": "c74d9cbd4c7b1b5b1a4c5a6bb34e9426336bbecc",
      "tree": "d1030d4bc5fb0986ef9f6e80d81b8a204c011ced",
      "parents": [
        "5ec6f36d4688e70c652882bff8c6a3c060ccc83e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 20 13:44:44 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 20 20:31:46 2018 -0700"
      },
      "message": "ART: Modernize counting-down loops\n\nPreparation for readability-implicit-bool-conversion.\n\nBug: 32619234\nTest: WITH_TIDY\u003d1 mmma art\nChange-Id: I7a6f9636d5f4537020f99e8cf8560f7f6b6b7ba0\n"
    },
    {
      "commit": "6142e58efa7ccd012bb1f206edaedd48137f5f8a",
      "tree": "de7328e0a04c240aace1fc7ebe30a18fc0fa396a",
      "parents": [
        "4727396c867c6b4641f5bb0edb925d554379ae8e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 18 16:49:15 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 19 21:56:32 2018 -0700"
      },
      "message": "ART: Add redundant-void-arg check\n\nAdd modernize-redundant-void-arg.\n\nBug: 32619234\nTest: WITH_TIDY\u003d1 mmma art\nChange-Id: I02e8702c237ce89c39880a65f15f21a56df8760d\n"
    },
    {
      "commit": "8351aac7bc2153cd2ad7247d467303019a76eac3",
      "tree": "0bcd742215805b88f08b71f8418e0de68dea1379",
      "parents": [
        "322c0891ebc1cf3e3b28d4cbb003b0e40506bc32"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 10 12:37:49 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 18 16:02:41 2018 -0700"
      },
      "message": "ART: Refactor for bool literals\n\nApply modernize-use-bool-literals.\n\nBug: 32619234\nTest: mmma art\nChange-Id: Ib9b36ca360af0f68ce89517a24b5d9fb49f23e58\n"
    },
    {
      "commit": "e5afbf335a8bc110ff7d4f86585a284c98a25a13",
      "tree": "7596a7b52e5f9a63b409969aba2805aaf012f199",
      "parents": [
        "7dca45b9677c16a54347cdc0d08bfa2bdd94b464"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 12 17:51:54 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 13 14:44:52 2018 -0700"
      },
      "message": "Refactor DecodeDebugLocalInfo\n\nRefactor the function to use a visitor instead of callback.\n\nTest: test-art-ghost\nBug: 112311591\nBug: 77709234\n\nChange-Id: I55385994952373b3fec4f9122400cf3c9d43da3b\n"
    },
    {
      "commit": "3e2e123239952c80e1b37431bf2efbbe07a41940",
      "tree": "153be0dafdbce55b5e5432cb10025b802a637402",
      "parents": [
        "68851b53e4152d3edaea977573af8bdc0bd23313"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 11 12:35:30 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 12 11:32:40 2018 -0700"
      },
      "message": "Refactor debug info position visiting\n\nMove logic to CodeItemDebugInfoAccessor, makes it easier to modify\nthe debug info format.\n\nTest: test-art-host\nBug: 112311591\nBug: 77709234\nChange-Id: Ice56a88951efa54dc07d88f2c228c01be4670e73\n"
    },
    {
      "commit": "cba17e81e71491d3994a1198a740b563a7ab1f57",
      "tree": "f11e57c00bedf9349b0a21a46b4896bdc9b5e4a7",
      "parents": [
        "e7c9164cb7b6f964000df8114d79e6fb544ca95c",
        "fa6a1b0a1d9d186a0ad9bb413a4e49f1ffd187d8"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Sep 08 21:46:00 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Sep 08 21:46:00 2018 +0000"
      },
      "message": "Merge \"ART: Continue adding override annotations\""
    },
    {
      "commit": "d176e93d66df409e2eee5343efd26b35c73fb71b",
      "tree": "0c8bd5250f9c12330c2aa6129e73990cfc25dae9",
      "parents": [
        "ac9fa1811e0b7ab33d80df4476d5b09db058e939",
        "ec5ed06b59a3b85e7f98ffc50e0539e5a77d1ba1"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 07 17:15:07 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 07 17:15:07 2018 +0000"
      },
      "message": "Merge \"ART: Refactor static include list\""
    },
    {
      "commit": "fa6a1b0a1d9d186a0ad9bb413a4e49f1ffd187d8",
      "tree": "6d3bef945030868d7e78162dc3f4f35a07ce410a",
      "parents": [
        "a0878aa9f4f4102e56a6381b28a8d7c38dec80b9"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 07 08:11:55 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 07 09:13:50 2018 -0700"
      },
      "message": "ART: Continue adding override annotations\n\nUse Clang-tidy\u0027s modernize-use-override to add more annotations. Ignore\ninferred annotations on destructors.\n\nBug: 32619234\nTest: mmma art\nChange-Id: Ic432c928e398d44df9171e42db04ee19946e6887\n"
    },
    {
      "commit": "693eee9c7c9fe66ac709613f2480b92c25811f8e",
      "tree": "935ce6304cdcddfe0911d74f93ace10147047e83",
      "parents": [
        "e080222ba63946f57423df8ddc9dc33a3346f29b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 06 19:51:10 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 07 09:07:45 2018 -0700"
      },
      "message": "ART: Add Size() to CollectionMap\n\nAdd a Size() override. Make base function pure to avoid future errors.\nFixes clang-tidy\u0027s bugprone-virtual-near-miss.\n\nBug: 32619234\nTest: mmma art\nChange-Id: I4112ea4d652a39a6b18712fb649823f086dd5b38\n"
    },
    {
      "commit": "d228d91d06f3e2ec20954b6bec2d1d1aa47690b7",
      "tree": "d3d09cc36528a4ad93c019a151e547e25f13a0e1",
      "parents": [
        "9c568f10f68cdbeb285e41cb4538c06f5e90c1b2"
      ],
      "author": {
        "name": "Matthew Cary",
        "email": "mattcary@google.com",
        "time": "Fri Sep 07 11:09:39 2018 +0200"
      },
      "committer": {
        "name": "Matthew Cary",
        "email": "mattcary@google.com",
        "time": "Fri Sep 07 11:09:39 2018 +0200"
      },
      "message": "Dexlayout: update help string for checksum.\n\nThe -u flag to update the dex file checksum was missing from\nthe dexlayout project help string. No code was changed.\n\nTest: compiles, manual.\nChange-Id: I45c1c1a05c58e42c86df1da1ce95cb8cd5f8ce05\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": "c09cd0513b860c4301ca7bd6a9065b583d102295",
      "tree": "1c7aa4ed2b9b5b1335829461e764c94565afb71d",
      "parents": [
        "40f8a74cba008af768316f0b5bfe9502174b6d02"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Aug 23 16:36:36 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Aug 31 11:50:53 2018 +0100"
      },
      "message": "Reserve boot image memory in one go.\n\nLoad boot image components into the reserved memory.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nTest: Pixel 2 XL boots.\nTest: m test-art-target-gtest\nTest: testrunner.py --target --optimizing\nBug: 77856493\nChange-Id: I214f947979bc0bbfc6df4312527504e90b88a01d\n"
    },
    {
      "commit": "4146840f4a88d7c4f44300758c942fd4d95db17a",
      "tree": "0fb437912c47ab5b5b9e9f9f099102129ba6a409",
      "parents": [
        "ecbb5701276dd5965d68fe825da31637ca62d8c1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 29 11:39:00 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 29 14:48:55 2018 -0700"
      },
      "message": "Change dex naming for output directory\n\nWrite to Dex file names to match storage inside APK for -w option.\ndir/classes.dex\ndir/classes2.dex\n...\ndir/classesn.dex\n\nThis makes it easier to overwrite the Dex files in the APK.\n\nBug: 113059564\nTest: test-art-host\n\nChange-Id: Iadf1621402315887165813da4abf00d466f0f623\n"
    },
    {
      "commit": "36f7df52b1aeadd85c9f29e8b995c74a599a4e26",
      "tree": "59251ecd87c27d79e1eedc128452d500aaf8f5e4",
      "parents": [
        "213f895897c85bf98ebc65c8d8d0605d228ed3e8"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 28 17:59:53 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 28 17:59:53 2018 -0700"
      },
      "message": "Add dexlayout option for updating checksum\n\n-u causes dexlayout to update the Dex checksum.\n\nTest: manual\nBug: 113059564\nChange-Id: I915f1fa50b56255a972407ddb4e03492cc65e26c\n"
    },
    {
      "commit": "f73cacaae3d8f89327d8886b37792a849cabd9ac",
      "tree": "79047e31d512d065db47af7e68fa155c1f638f11",
      "parents": [
        "bbc6e7edb5fca4a61ac53dd9bce79cb4f0bb3403"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Aug 24 17:19:07 2018 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Aug 28 11:09:40 2018 +0100"
      },
      "message": "Remove superfluous \u0027virtual\u0027 specifiers in ART.\n\nRemove \u0027virtual\u0027 specifier on methods already bearing the \u0027override\u0027\nspecifier.\n\nTest: mmma art\nChange-Id: I114930969a5ca048d88de9ecd18e2c6403593e31\n"
    },
    {
      "commit": "bbc6e7edb5fca4a61ac53dd9bce79cb4f0bb3403",
      "tree": "0fbce767bc383358cf4cd65aafc74140e1850982",
      "parents": [
        "19379b58bd433da91230e4fe6cd96e7416d16adc"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Aug 24 16:58:47 2018 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Aug 28 11:06:07 2018 +0100"
      },
      "message": "Use \u0027final\u0027 and \u0027override\u0027 specifiers directly in ART.\n\nRemove all uses of macros \u0027FINAL\u0027 and \u0027OVERRIDE\u0027 and replace them with\n\u0027final\u0027 and \u0027override\u0027 specifiers. Remove all definitions of these\nmacros as well, which were located in these files:\n- libartbase/base/macros.h\n- test/913-heaps/heaps.cc\n- test/ti-agent/ti_macros.h\n\nART is now using C++14; the \u0027final\u0027 and \u0027override\u0027 specifiers have\nbeen introduced in C++11.\n\nTest: mmma art\nChange-Id: I256c7758155a71a2940ef2574925a44076feeebf\n"
    },
    {
      "commit": "fe42d218cf8a3dcaa832651ea62e49ce7384c867",
      "tree": "cca4e8ed50410e965363ff7e776de7eda4ebea1a",
      "parents": [
        "d3678dc2531f95ced2d015b800ecd9018ce96c73"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Aug 24 14:01:14 2018 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Aug 24 15:50:47 2018 +0100"
      },
      "message": "dexdump2: Remove conversion from dollar sign to dot\n\nThis was presumably added to render nested classes similar to how they\nare referred to in source, but since a dollar sign (\u0027$\u0027) is a valid\ncharacter in a class name and its use is growing thanks to annotation\nprocessors and D8/R8 it only resulted in very wrong names. If you are\nat the level where you can understand dexdump\u0027s output, you can handle\ndollar signs being present in nested class names.\n\nBefore:\n\n    [000234] -..Lambda.Lambda.fcyZxanqBZSHC_nf-noKh-e3bnY.\u003cclinit\u003e:()V\n        0000: new-instance v0,\n        L-$$Lambda$Lambda$fcyZxanqBZSHC_nf-noKh-e3bnY; // type@0000\n        0002: invoke-direct {v0},\n        L-$$Lambda$Lambda$fcyZxanqBZSHC_nf-noKh-e3bnY;.\u003cinit\u003e:()V // method@0001\n        0005: sput-object v0, L-$$Lambda$Lambda$fcyZxanqBZSHC_nf-noKh-e3bnY;.INSTANCE:L-$$Lambda$Lambda$fcyZxanqBZSHC_nf-noKh-e3bnY; // field@0000\n        0007: return-void\n\nAfter:\n\n    [000234] -$$Lambda$Lambda$fcyZxanqBZSHC_nf-noKh-e3bnY.\u003cclinit\u003e:()V\n        0000: new-instance v0, L-$$Lambda$Lambda$fcyZxanqBZSHC_nf-noKh-e3bnY; // type@0000\n        0002: invoke-direct {v0}, L-$$Lambda$Lambda$fcyZxanqBZSHC_nf-noKh-e3bnY;.\u003cinit\u003e:()V // method@0001\n        0005: sput-object v0, L-$$Lambda$Lambda$fcyZxanqBZSHC_nf-noKh-e3bnY;.INSTANCE:L-$$Lambda$Lambda$fcyZxanqBZSHC_nf-noKh-e3bnY; // field@0000\n        0007: return-void\n\nBug: 113152880\nTest: art/test/dexdump/run-all-tests\nTest: dalvik/dx/tests/run-all-tests\nChange-Id: I22a1d3db5b7e0fe6b6c77b5cf8f37e7254bd40f4\n"
    },
    {
      "commit": "8f75f7bdc9e72204ed4712670fd04e88f60e7f13",
      "tree": "69fb1725aa7f565713e6ab34633f3de72d515261",
      "parents": [
        "34be5e212b18f03a6cd3ec3b11cd05df49a4d32a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Aug 06 23:38:48 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 07 08:38:47 2018 -0700"
      },
      "message": "Move veridex to ClassAccessor\n\nBug: 79758018\nTest: test-art-host\n\nChange-Id: I38bfc8ca1050698a60807ae77eadeb04a5809579\n"
    },
    {
      "commit": "a34812c0801b8b991b5b5b1d0d5e5a4ccf2bf0ac",
      "tree": "7a45987265ef96b06bfb8d7761f7a83a16c340b5",
      "parents": [
        "605339045d347074b9149c0185fe2ca7fafe470d"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 01 17:10:43 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 01 18:03:24 2018 -0700"
      },
      "message": "Move dex_file_verifier_test and dexlayout to ClassAccessor\n\nBug: 79758018\nTest: test-art-host\n\nChange-Id: I01d53eaf45d28fd762800c2716d6bf2dd3c9ad9e\n"
    },
    {
      "commit": "35d5b8a2c5d2fce03be59aa003c3bf3c1b481be0",
      "tree": "7665f6d1527be61af13c8ef53f10833dd4200cfd",
      "parents": [
        "b28683f43231e65860ecf91c96a8c0234542c019"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jul 03 09:18:32 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jul 03 09:18:32 2018 +0100"
      },
      "message": "ART: Do not use std::\u003ccontainer\u003e::at().\n\nThese functions are specified as throwing std::out_of_range\nand we do not use exceptions.\n\nTest: m\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: I67c365ed6d779c101a18b9f386c751c48ca76e16\n"
    },
    {
      "commit": "5774f57afc997ffe765c32199bd0d5e55d23005a",
      "tree": "5efdd0edb9c5a6d55c20f76c26fc7b330f014c87",
      "parents": [
        "7e56bd41cde4e489a11050d9e340bf8b5692d9e8",
        "bc802de2244ed9769d1ddf8841d7965a29493d9a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jun 21 15:28:05 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 21 15:28:05 2018 +0000"
      },
      "message": "Merge \"Revert^2 \"ART: Fix some performance-X tidy\"\""
    },
    {
      "commit": "54159c6c6fe529a55ef3d15a3c8418362d5a43fb",
      "tree": "2ec461de8ec15383134f4c6e209f4b8a33854277",
      "parents": [
        "44217b253bf4e5990de7051129ecda34f94d7f25"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jun 20 14:30:08 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jun 21 13:46:50 2018 +0100"
      },
      "message": "Use HashSet\u003cstd::string\u003e instead of unordered_set\u003c\u003e.\n\nChange the default parameters for HashSet\u003cstd::string\u003e to\nallow passing StringPiece as a key, avoiding an unnecessary\nallocation. Use the HashSet\u003cstd::string\u003e instead of\nstd::unordered_set\u003cstd::string\u003e. Rename HashSet\u003c\u003e functions\nthat mirror std::unordered_multiset\u003c\u003e to lower-case.\n\nFix CompilerDriver::LoadImageClasses() to avoid using\ninvalidated iterator.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nChange-Id: I7f8b82ee0b07befc5a0ee1c420b08a2068ad931e\n"
    },
    {
      "commit": "bc802de2244ed9769d1ddf8841d7965a29493d9a",
      "tree": "acac22c89c8cdedb65d6dc0657755851834500f7",
      "parents": [
        "35d4b9410c362685fdd8181483a6126dd3e20cdd"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 20 17:24:11 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 20 17:25:25 2018 -0700"
      },
      "message": "Revert^2 \"ART: Fix some performance-X tidy\"\n\nThis reverts commit 6856214f2c849600bcb94cc6e84975ba8cb69920.\n\nFix lifetime issue in imgdiag.\n\nTest: mmma art\nTest: m test-art-target-gtest-imgdiag_test\nChange-Id: I919db6310c0713313340adfe66bcd75a1c5c236e\n"
    },
    {
      "commit": "6856214f2c849600bcb94cc6e84975ba8cb69920",
      "tree": "a103f54ec49fac8d5cd15661f5c2d0cb5dab32e5",
      "parents": [
        "89de444350fdbd7df4fb4d95bb71f00e6673b466"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 20 21:49:11 2018 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 20 21:49:11 2018 +0000"
      },
      "message": "Revert \"ART: Fix some performance-X tidy\"\n\nThis reverts commit 89de444350fdbd7df4fb4d95bb71f00e6673b466.\n\nReason for revert: Seemingly breaks imgdiag_test on device.\n\nChange-Id: I46084ecb4205575381aafffd90a0f1a1126e8d2d\nTest: mmma art\n"
    },
    {
      "commit": "89de444350fdbd7df4fb4d95bb71f00e6673b466",
      "tree": "57fa7214c4059afcfd11aa35a81999b8558b91b8",
      "parents": [
        "e383d23918db4eede30c3d78589d4639de3ec446"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jun 18 13:33:55 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jun 19 17:11:21 2018 -0700"
      },
      "message": "ART: Fix some performance-X tidy\n\nFix performance-for-range-copy, performance-unnecessary-copy-initialization\nand performance-unnecessary-value-param issues.\n\nTest: mmma art\nTest: m test-art-host\nChange-Id: I43d8736fc541030a3c61f66aeee0b9c2f1d295f7\n"
    },
    {
      "commit": "dbf540399a2aaddad00b1233b80808c80dc0d443",
      "tree": "b5a1933b5edd1b998a815b22695f2591e8db072c",
      "parents": [
        "4f0e0b8a4161ec9217b0b3cbca5fa6d3a289cc6a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jun 18 14:47:01 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jun 19 17:09:45 2018 -0700"
      },
      "message": "ART: Fix clang-analyzer leak/memory warnings\n\nFix warnings, or make code more obvious to the analyzer.\n\n(The analysis itself is too expensive to force it on for all\nlocal builds.)\n\nTest: mmma art (with clang-analyzer-cplusplus.NewDeleteLeaks)\nChange-Id: Id3687eb6f3af3a0b4f2df1422bc6d83650517623\n"
    },
    {
      "commit": "2b5a38f8fbdecf9c82f06ec108c7ee7463bd8093",
      "tree": "51e3648106f2f74196f9476209a7a649e7885dcb",
      "parents": [
        "5f7c6a1fc35e04b75e1154620c5fd0ab8758e62c"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Jun 14 15:13:04 2018 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Jun 15 10:55:56 2018 -0700"
      },
      "message": "Refactor ownership in dex_ir\n\nRemove some unnecessary generality, consolidating and simplifying the\ninterface to Header and moving all the construction code out of dex_ir.\nThis makes item ownership exclusively controlled by the collections\nthemselves, preparing for in-place construction.\n\nBug: 33017139\nTest: make -j 40 test-art-host-gtest\nChange-Id: Ice461ae89ef9f8bed3350780e8dd6283bc6eca1b\n"
    },
    {
      "commit": "d83437cba0eaac9797def3c09f7812e25fdcd6ac",
      "tree": "e29156febe965efb57099b232d9b85342db39a41",
      "parents": [
        "a316f9129a698ccb995b035f8781f93c58981893"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Jun 11 14:06:23 2018 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Jun 13 11:08:05 2018 -0700"
      },
      "message": "Use factory pattern for dex_ir objects\n\nIn preparation for memory improvements, make dex_ir API more friendly to\npre-allocated or in-place type allocation.\n\nBug: 33017139\nTest: make -j 50 test-art-host\nChange-Id: I09b67e279a04535b175433287ce98ecbdc37f7a3\n"
    },
    {
      "commit": "671af6c3f3858bb372fb4946b14c069c2d456a60",
      "tree": "41d0326309b5acb94566335c8825acdd70695427",
      "parents": [
        "df810b9c8d5013cd6f5799a75b6aaf0f3991210c"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu May 17 11:00:35 2018 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu May 17 11:00:35 2018 -0700"
      },
      "message": "Make dexlayout and profman independent of libart\n\nRemove the libart dependency from these two tools.  Dexdiag remains\ndependent because vdex_file.* is in runtime.  It could possibly be moved\nalso.\n\nBug: 78652467\nTest: make -j 40 checkbuild\n      make -j 40 test-art-host-gtest\n\nChange-Id: I68a62f8b2a2730067aee5ff5e0cf81acdca0d703\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": "06d10a78506fae7e033795cda7b1d9d0e1f1fff5",
      "tree": "91f94a605395776710f3d14298613a803158f3aa",
      "parents": [
        "93d301397c83b08f6fc165847a3d518e1031f392"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon May 14 08:53:38 2018 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon May 14 16:49:55 2018 +0100"
      },
      "message": "ART: Add dex::ProtoIndex\n\nTest: m -j32 test-art-host\nChange-Id: Ic2d2a7a43be1b8590b97cdf3729200b043ffc6a3\n"
    },
    {
      "commit": "818cb80ff7503f4ce46f05386209d0070b6b70b0",
      "tree": "b0e1bf92b900a8fba3d85553f96849d5fe8abd1f",
      "parents": [
        "2b80ed488c497393270c98f7a767d8495166db8e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri May 11 05:30:16 2018 +0000"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri May 11 05:30:16 2018 +0000"
      },
      "message": "Revert \"Make dexlayout and profman build without libart\"\n\nThis reverts commit 2b80ed488c497393270c98f7a767d8495166db8e.\n\nBug: 78652467\n\nReason for revert: ASAN tests failing\n\nChange-Id: Id4bba2711d8b69c0a64e3e8eb335a18facab9fdd\n"
    },
    {
      "commit": "2b80ed488c497393270c98f7a767d8495166db8e",
      "tree": "e1c249285b2e441b56ec7faf06757f3fe7affde5",
      "parents": [
        "a6ce173839a1bca1811fca7d9a0a39efd720611d"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue May 08 08:58:15 2018 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu May 10 08:23:22 2018 -0700"
      },
      "message": "Make dexlayout and profman build without libart\n\nUse libprofile and libartbase to remove the dependencies on libart for\ndexlayout and profman.  dexdiag remains connected to libart because of\nvdex file APIs.\n\nBug: 78652467\nTest: make -j 40 test-art-host-gtest\nChange-Id: Ie4d58e7e75aa725a6d453a9d4c7fefd868aa7b2d\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": "89b06a15b530acf78727700075d8b457e1cc4eb0",
      "tree": "0d4cc200d359f532cb1fc27f0d7e5cc3b4bf8ee7",
      "parents": [
        "9e363f65c1d85e601b0445b51fefc5156ec71fca",
        "30025095524e471ec347633e39f26ed0606bea65"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Apr 26 09:00:58 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 26 09:00:58 2018 +0000"
      },
      "message": "Merge \"Pass the fd to OatFile::Setup to avoid selinux errors.\""
    },
    {
      "commit": "30025095524e471ec347633e39f26ed0606bea65",
      "tree": "533cbe1808445dcd4dd6d8b7dacc180fcc29b90a",
      "parents": [
        "cee49280366af9aa35e889e90d0ae0e90b453a22"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Apr 19 14:43:29 2018 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Apr 24 14:39:06 2018 +0100"
      },
      "message": "Pass the fd to OatFile::Setup to avoid selinux errors.\n\nbug: 77853712\nTest: test.py\nChange-Id: I069cda5296b561284d71b067924e1bc4a8562710\n"
    },
    {
      "commit": "42d5805b30b095eb1abd39d99ed71d9fa2b7c03b",
      "tree": "53373e5aa0f47ee4e9ebfff54f97e90c44a5b6cd",
      "parents": [
        "cee49280366af9aa35e889e90d0ae0e90b453a22"
      ],
      "author": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Wed Apr 18 22:59:36 2018 -0700"
      },
      "committer": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Thu Apr 19 06:05:14 2018 +0000"
      },
      "message": "Separate out PGO profile files per arch\n\nBug: http://b/78259283\n\nSpecify separate PGO profiles for AArch64/ARM and x86_64/x86.  This\nallows per-arch profile collection that exercises ART\u0027s code generation\nfor the corresponding 32-bit and 64-bit ABIs.\n\nTest: Build Sailfish and x86_64 targets and verify that corresponding\nprofile files are read.\n\nChange-Id: Iad3a657411676952de5ed446db4dd4e754ea9e11\n"
    },
    {
      "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": "c17b7d80652765750fa7f2baf236061014b23f93",
      "tree": "1be2a3330aab9d6b216bd90685e0133ce5bd597e",
      "parents": [
        "2a66809d28c9ee1cbabe52991dbf526095c96c04"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 14 14:00:04 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 15 09:27:08 2018 -0700"
      },
      "message": "Add owned section for CompactDex\n\nThe owned section is the part of the shared data section owned by\na given dex file. This enables efficiently attributing an offset to\na dex file.\n\nBug: 74443371\nBug: 63756964\nTest: test-art-host\n\nChange-Id: I2de9a281e18b02a20c3dcf5f484eacb591220cdc\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": "1f9df4ae66667d3c0b62caace7f2f4374e104159",
      "tree": "96b92f5b5c68f0ca64e62bf2ce74c0abe22901f1",
      "parents": [
        "45d857bad49223c9f981800dfea7914e95f397e7",
        "1d894d90634b3d685a5a1143dd84f0272b4a7dcd"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Thu Mar 08 02:39:29 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 08 02:39:29 2018 +0000"
      },
      "message": "Merge \"Enable ThinLTO for dex2oat\""
    },
    {
      "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": "2daa13448d5caeb7eb4f7fd3981c0d430264c7c3",
      "tree": "547222519fc7627a99eae914fbaa39eb294a82c6",
      "parents": [
        "b2f1edc3d1f162bd9007f10bc66009eac5b2daab"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 20 16:19:28 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Feb 22 10:37:31 2018 -0800"
      },
      "message": "Fix unquickening logic for quickened input dexes\n\nIn the case where an input dex is already quickened (i.e.\nobfuscation), do not attempt to unquicken it. This is done by\nswitching the quicken info table to the compact offset table (used by\ncdex debug infos).\n\nAdded test.\n\nPosssible to get a bit of extra savings by deleting the quicken info\nnum entries field.\n\nQuicken filter size regression average on golem: -0.14%.\n\nBug: 72608794\nBug: 63756964\nTest: test-art-host-gtest-dex2oat_test -j64\nChange-Id: I5534a7509b4c718a9b959fa43b82bde857e0b59e\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": "5e3cfa295a44d4f1a0eb26134c6f866b27245a9f",
      "tree": "fa079fd6d865b1270a88248cd9919902ab387f46",
      "parents": [
        "1efb431b478bbae9d959fad6a58863a4c1b0b47f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 20 16:53:37 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 20 18:17:21 2018 -0800"
      },
      "message": "Generalize CompactDexDebugInfo offset table\n\nRenamed the class to CompactOffsetTable.\n\nMotivation: Use this table for quicken info offsets too.\n\nBug: 72608794\nBug: 63756964\nTest: test-art-host-gtest\nChange-Id: Idcb5355d8a5e4354bc3694152a7270047bed9d0a\n"
    },
    {
      "commit": "1d894d90634b3d685a5a1143dd84f0272b4a7dcd",
      "tree": "aee159e79816473f774863638693639e673d762d",
      "parents": [
        "2b7e1c6d04930361bafbd4959966341fa7c4a097"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Fri Jan 19 22:01:14 2018 -0800"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Fri Feb 16 21:20:46 2018 +0800"
      },
      "message": "Enable ThinLTO for dex2oat\n\nThis helps reducing binary size as well as improve performance of\ndex2oat.\n\nOn Marlin (lower clocked cores)\n  With PGO\n  dex2oat binary + libraries size:\n   - no-lto:   9.90MB\n   - thin-lto: 9.81MB\n\n  dex2oat run time for top 25 apps (with speed filter):\n    Average case: -2.83%\n    Best case   : -4.65%\n    Worst case  :  0.25%, likely noise\n\n  Without PGO\n  dex2oat binary + libraries size:\n   - no-lto:   9.67MB\n   - thin-lto: 9.60MB\n\n  dex2oat run time for top 25 apps (with speed filter):\n    Average case : -0.96%\n    Best case    : -2.30%\n    Worst case   :  0.52%, likely noise\n\nTest: Benchmark on Marlin (low-clock cores)\nBug: 62839002\nChange-Id: Iad39eae4c222b753dd2dab949a928151ea13e630\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": "05f90d133d288b524eaa9deacdc56e7d29ea9f99",
      "tree": "89153d3bccc0aba04423f5712fee09e768d5aa2c",
      "parents": [
        "0efe3243d4f1878e8220ff8bc469beee9ac90518"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Feb 07 13:47:17 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Feb 07 14:56:50 2018 -0800"
      },
      "message": "Avoid generating cdex for dex files with duplicate methods\n\nFor the cases where two different method have the same code item or\ndebug info, avoid generating cdex and write the input dex into the\noat file isntead.\n\nTest: test-art-host-gtest\nBug: 72997076\nBug: 72100771\nBug: 72100668\nBug: 63756964\n\nChange-Id: I5dfe2b47b2c908921c8421367536c2d950186ac6\n"
    },
    {
      "commit": "e1123402f14879643f722885b4748965451be1b2",
      "tree": "63c22592b312cfb66d8cb81ad28f6d297f705f12",
      "parents": [
        "abee76ef780877132cf82c84f42e8ab50e6cc1d1"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Feb 01 02:46:18 2018 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Feb 06 17:39:39 2018 -0800"
      },
      "message": "Make libdexfile tests independent of runtime\n\nRemove dependencies on common_runtime_test and related so that\nlibdexfile\u0027s tests can be run independently of the runtime directory.\n\nBug: 22322814\nTest: make -j 50 test-art-host-gtest\nChange-Id: If306c1995e87cbfc944e11fb13c927bc287014ad\n"
    },
    {
      "commit": "9827367cb7a5dd813995ade66def8d28befd50e5",
      "tree": "d1e1e74979a515779e8b82d9f9eb17409d5cf592",
      "parents": [
        "83784ca898f823e6f02c86996626b5e48e328d85"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Feb 06 11:50:27 2018 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Feb 06 11:52:04 2018 +0000"
      },
      "message": "Fix failure in CodeItemOverrun on target\n\nUse unlink rather than exec /bin/rm to delete files.\n\nBug: b/72979892\nTest: m test-art-target-gtest-dexlayout_test64\nChange-Id: I91aa87fcf9a4fd91a26c1bb524ce2e8567ddf4c7\n"
    },
    {
      "commit": "83784ca898f823e6f02c86996626b5e48e328d85",
      "tree": "6e49bf5bdc66c959d820f02dc8c3908725ecdec8",
      "parents": [
        "540d4be4514b3d02e046d5faebd3cb55a8ea9eff",
        "a27af08ee0c5f307366be73363369cc1d95d6d4c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 06 01:16:13 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 06 01:16:13 2018 +0000"
      },
      "message": "Merge \"Handle code item overruns in cdex code item write\""
    },
    {
      "commit": "a27af08ee0c5f307366be73363369cc1d95d6d4c",
      "tree": "b419ec0515085f2a362da9e123f6531b4d1162b0",
      "parents": [
        "ca6f1c0cb7655e90237583c1b6b771d3c8aae95d"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Feb 03 16:12:23 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Feb 05 14:30:15 2018 -0800"
      },
      "message": "Handle code item overruns in cdex code item write\n\nFor the case where code items overrun, use a safe iterator to not\ncrash.\n\nBug: 72315996\nBug: 63756964\nTest: test-art-host-gtest\n\nChange-Id: I2aa8d127aad09ed3c8e6c9f9cc71c4b5646a5307\n"
    },
    {
      "commit": "279e3a3499d208daf467a1690b111dfb06f3e96e",
      "tree": "74c7d6d860bea25aabae47dc0ca95bafb0571f8e",
      "parents": [
        "ca6f1c0cb7655e90237583c1b6b771d3c8aae95d"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jan 24 18:17:55 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Feb 05 13:38:20 2018 -0800"
      },
      "message": "Enable code item deduping\n\nDedupe code items if they have the same contents, this is safe\nbecause of the fixed quickening logic.\n\nRemoved duplicate code items in ManyMethods that caused the startup\nmethods section to be empty in dex2oat_test.\n\nTo avoid errors related to quickening and compilation of shared code\nitems, quickening is currently disabled for shared code items.\n\nBug: 63756964\nTest: test-art-host\n\nChange-Id: I7c62eb746785d787c5269effd396f7be4859d3a6\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": "807b21b2364eee0770d1e24e5f34d71014afbac2",
      "tree": "5b505e6ae4a4cd67b3a4684f9cb7c2803440f6ca",
      "parents": [
        "7a5a3036f9d8f08871c1c6e03dfa25d3641593e2"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jan 29 05:18:24 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jan 29 06:06:49 2018 -0800"
      },
      "message": "Clean up some compact dex comments\n\nBug: 63756964\nTest: test-art-host\n\nChange-Id: If8748db7a9e68b6a82656fd9ec8fd8072e92af97\n"
    },
    {
      "commit": "5e496145a53a02d8ba0fb3b4a65b024af9f290fd",
      "tree": "0e742b8a9bdf823f10d350e136c1c79f15cbfeda",
      "parents": [
        "26f927518fda8e334e2af2003056b44a9265d5a0"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Jan 27 13:11:14 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Jan 27 17:52:40 2018 -0800"
      },
      "message": "Remove size return values for dex writer\n\nSince moving to streams, the return values are no longer required.\n\nBug: 63756964\nTest: test-art-host\n\nChange-Id: I42be181cfb30eb73274faeef3f1129bdabc84f44\n"
    }
  ],
  "next": "26f927518fda8e334e2af2003056b44a9265d5a0"
}
