)]}'
{
  "log": [
    {
      "commit": "7ed5e6002fc493984b3a4887a867ef751a139b4d",
      "tree": "0aa7dc09bcf352ff4c9bd3ff0da2f66e51c12165",
      "parents": [
        "bf7ce2508c6ed8beb2431fba43af3cdd68a8eb63"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Wed Sep 04 17:25:23 2019 +0900"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Sep 05 23:21:31 2019 +0000"
      },
      "message": "Export headers from libdexfile_external\n\nlibdexfile_external didn\u0027t export any header. This caused the abi dumper\nto (conservatively) treat all header files in its include paths as\nexported headers. As a result, the dump became unnecessary large due to\nthe transitively exported headers.\n\nFixing this by explicitly specifying the exported headers.\n\nBug: 140166209\nTest: m\nChange-Id: Icd6db4705bee6c38646f5d0251aeb65b19d00327\n"
    },
    {
      "commit": "ab5f4c17a86b8c808dba862db566f0ffa1146367",
      "tree": "8f43f6a0581f8284009d9a235473667a7c94145e",
      "parents": [
        "c94b44dac8bcee13ae7eedd6fe541ddf6dfc424b"
      ],
      "author": {
        "name": "Ulya Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Fri Aug 16 13:59:11 2019 +0100"
      },
      "committer": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Fri Aug 30 15:38:34 2019 +0000"
      },
      "message": "Allow space characters in SimpleName for DEX format 040.\n\nWe allow both ASCII and Unicode spaces (everything in the Unicode category\n\u0027Zs\u0027). This includes characters:\n\n  0x20, 0xa0, 0x1680, 0x2000..0x200a, 0x202f, 0x205f, 0x3000\n\nRe-enabled DX building in ART tests, as we temporarily need DX for testcase\ngeneration (until D8 is updated to support spaces in SimpleName).\n\nBug: 137432016\nTest: 2029-spaces-in-SimpleName\nTest: art/test.py --host -r -t 2029-spaces-in-SimpleName\nChange-Id: I02f0207a3a291caeb6c3070cc48ea8c55c792199\n"
    },
    {
      "commit": "61f071630083775fe64d177455a056daa7071eca",
      "tree": "4d8e610f3939ca23f588bcdffe66aa859ae1a3c5",
      "parents": [
        "81448a21dd3f2c4608496e6dc7a1f093dcccf1e0"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jun 26 12:44:04 2019 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Aug 02 10:36:58 2019 +0000"
      },
      "message": "Introduce a Testing Runtime APEX (test) module including ART gtests.\n\nDefine a new flavor of the Runtime APEX, having the same contents\nas the Debug Runtime APEX plus ART gtests that have dependencies\non Runtime APEX internal libraries.\n\nPreviously, when these ART gtests were built and installed in\nthe data partition, they would depend on \"legacy\" ART internal\nlibraries being installed in the system partition (not the ones\nfrom the Runtime APEX). As we plan to remove these ART libraries\nfrom the system partition, we needed a way to be able to build\nand install device ART gtests without triggering the installation\nof these legacy ART internal libraries.\n\nThis Testing Runtime APEX is meant to be used for ART testing only,\nand should never be included in any product.\n\nThis change adds build rules for the Testing Runtime APEX (and\ncorresponding unit tests), but does not replace the Debug Runtime APEX\nfor device testing yet (this will be implemented in a follow-up\nchange).\n\nAlso rename `art_apex_test` module type as `art_apex_test_host`.\n\nTest: m com.android.runtime.testing\nTest: art/build/apex/runtests.sh\nTest: art/build/apex/art_apex_test.py\nBug: 129534335\nChange-Id: I8d70bdcf7c6253dd5bc8786a702f130d444c3cb6\n"
    },
    {
      "commit": "d1abab7110101d65774f9d090850d20aaa07b661",
      "tree": "6e171d36e7c497c17efc26ab0f9c7be4f888094b",
      "parents": [
        "0134a28ec42f5c96a3dffcf496bf1af05d0942dc"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 31 16:14:00 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Aug 01 17:01:19 2019 +0000"
      },
      "message": "ART: Check dex file constraint A1\n\nTest: TODO\nChange-Id: I77d6c7e4d6cf47fdc0268326b30808b56b59b813\n"
    },
    {
      "commit": "4345aacf582a5206976d5bed98ab4abd7b9a8c40",
      "tree": "594191df77d214fac994b63761ac25bba257bb40",
      "parents": [
        "6b689ceb63b4fffaf0e617f7d363c841dd29e458"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Jul 17 15:51:54 2019 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 19 17:07:13 2019 +0000"
      },
      "message": "Cleanup some usages of include_dirs\n\nThe include_dirs property causes problems when unbundling as they can\ndirectly reference directories inside the runtime module repositories\nwhich will break the unbundled build as those repositories will not be\npresent. While these usages do not cause problems as they are\nreferences within the runtime module repository they need removing so\nthat the build can enforce no usage of runtime module repository paths\nin the include_dirs property.\n\nThis change:\n* Replaces include_dirs with local_include_dirs where possible.\n* Uses libnativehelper provided header libs, this is possible as they\n  have been updated to build against the NDK.\n* Adds headers for disassembler, libdexfile\n* Makes libart_runtime_headers build against NDK.\n\nTest: m checkbuild\nBug: 134379140\nChange-Id: Iaf065caf4b6a2fcf252f6d5da8fff5be97a242ea\n"
    },
    {
      "commit": "323844002e54243e295497e7f829e46a533da621",
      "tree": "e6219f651332ee140042e4e0d4c975919f4fe9bf",
      "parents": [
        "297a0533d2e3f1d49f0b73c5d1e3b09ce0418de2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 17 20:06:44 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jul 18 13:12:57 2019 +0000"
      },
      "message": "jitzygote: Handle case of methods having the resolution stub.\n\nWe need to cache the compiled code until the class is initialized.\n\nTest: test.py\nTest: jitzygote config boots\nBug: 119800099\nChange-Id: Ib7a1efc3e101d9dabfad963621a1fe4a142e9b29\n"
    },
    {
      "commit": "56cb3ceba9d5a44b1460b12b81c27737a7c0ec3e",
      "tree": "0c04ea38fc9eb98bab7e9f6bd3a49ae7be930188",
      "parents": [
        "60415ae617133fd06b3dd909b6db37f5c26dcd6b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 02 14:40:14 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 05 15:58:24 2019 +0000"
      },
      "message": "ART: Slightly simplify/modernize dex_file_verifier.cc\n\nUse anonymous namespace instead of static. Make things proper\nconstexpr functions. Move definitions to class when methods are\nsmall.\n\nTest: m test-art-host\nChange-Id: Iadeac41d24bd35c88825fcfae02fccb40289b82a\n"
    },
    {
      "commit": "60415ae617133fd06b3dd909b6db37f5c26dcd6b",
      "tree": "0cae4f834b8398b6f8ef52a942b7dfc94db724fc",
      "parents": [
        "07a560d98c5e5e6dfcdb966d19f9d2cc155ace4f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 02 14:03:13 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 05 15:58:24 2019 +0000"
      },
      "message": "ART: Move DexFileVerifier class to cc file\n\nHide all details. None were accessible before anyways. Instead,\nonly expose art::dex::Verify.\n\nTest: m test-art-host\nChange-Id: I19a68440045622b78c1678c92027f6e0e1185d75\n"
    },
    {
      "commit": "07a560d98c5e5e6dfcdb966d19f9d2cc155ace4f",
      "tree": "fd062bb732d8b09da9dbb12d0079190cf472ac09",
      "parents": [
        "e32d24c75bf62e3cb9bff266ad4be859634320a9"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 02 11:17:42 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 05 15:58:24 2019 +0000"
      },
      "message": "ART: Encapsulate init-optimization fields\n\nPut fields that belong together into a struct.\n\nTest: m test-art-host\nChange-Id: Ie0a4dfb2201b7603c6cf78e361fe0b264ab02e06\n"
    },
    {
      "commit": "e32d24c75bf62e3cb9bff266ad4be859634320a9",
      "tree": "73a9c51958a77b3040b0ce04041424930b709873",
      "parents": [
        "d17eac6b037f67494e31671d1a1d9d233ba3f237"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 05 10:28:59 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 05 15:36:58 2019 +0000"
      },
      "message": "Store zygote compiled code in a shared map.\n\n- Store flags in the ArtMethod to know that it is compiled by the zygote\n- Query the map when entering a zygote compiled method from the\ninterpreter.\n\nBug: 119800099\nTest: boots\nChange-Id: Ib1a38266573e28d371034d02d6bb83f9b8b2e317\n"
    },
    {
      "commit": "f5e3c66d63437ff1cc088b6a58e566fb7b5a3482",
      "tree": "dcea409ba8d6105875ca8614951bb86873c1921d",
      "parents": [
        "4d6ca2e01e5e9b0006b94039f53e552dd0236d02"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 01 14:54:23 2019 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 02 21:30:29 2019 +0000"
      },
      "message": "ART: Use bitset in dex file verifier\n\nUse a bitset instead of a hash set. The maximum memory usage is 8K,\nwhich is reasonable and bounded.\n\nInstruction count improvement is in the noise (a percent of a percent).\nBranch misses improve by a percent.\n\nBug: 110852609\nTest: m test-art-host\nChange-Id: I8bb44ba8ab90db8ef632f2977774b389c3a504b6\n"
    },
    {
      "commit": "1459929a7e9ea96932b6c24597e1692b9b05606c",
      "tree": "c682a4cdfbf11508b693c633ba311a6bb93e53d5",
      "parents": [
        "eaa84415d382df617f3bc7a84d3b109078adaba5"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jun 17 13:08:14 2019 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 27 22:51:55 2019 +0000"
      },
      "message": "ART: Change unordered_set to HashSet\n\nChange defined_classes_ to a HashSet and reserve space to avoid\nallocations.\n\nBug: 110852609\nTest: m test-art-host\nChange-Id: I79fa57b781257777de76362b3aff4974e0dccd36\n"
    },
    {
      "commit": "5254d6f23d6a3c8cde1634ce144a417d1cee3832",
      "tree": "a553a15131af4f66bc892637d2d2a30085390f7b",
      "parents": [
        "c4a546c9a8896d53deab715aa9e8fca1f89e9d57"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jun 21 11:22:47 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 26 18:15:10 2019 +0000"
      },
      "message": "ART: Use memoization for type id table check\n\nReduces dex file verifier cycles by 2%.\n\nBug: 110852609\nTest: mmma art\nTest: m test-art-host\nChange-Id: Id5990226239c3c9176a039c45dde699847acbca1\n"
    },
    {
      "commit": "c4a546c9a8896d53deab715aa9e8fca1f89e9d57",
      "tree": "c506a92acf5290ec73c65fd659a67a09c409340a",
      "parents": [
        "7107e8c3974036a6b2362da2d990907d9026cbe8"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 20 16:53:23 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 26 18:15:10 2019 +0000"
      },
      "message": "ART: Cache type index validity\n\nUse a bit vector to memoize checked type descriptors.\n\nReduces dex file verifier cycles by 10-30%.\n\nBug: 110852609\nTest: m\nTest: mmma art\nTest: m test-art-host\nChange-Id: Ie3aa4c551e03b013d7b26d80bc9cd3e804a0f50c\n"
    },
    {
      "commit": "1e52a07b4de0f000028e55c332aa46495f60879c",
      "tree": "1eb7dfdce749461c5a8997cbde49ed6d0fea2aa0",
      "parents": [
        "e0ce8bf743b7fc5816bc4045716d75378ce3b654"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jun 25 09:12:04 2019 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jun 25 16:25:13 2019 +0000"
      },
      "message": "Correct Indicies -\u003e Indices\n\nThis is a misspelling that is somewhat common in art/.\nFix up all the instances I could find.\n\nTest: ./test.py --host\nChange-Id: I0a5def6e4126cf4e61efb0619bd59eb45ba7f324\n"
    },
    {
      "commit": "b11d521ed04d411aad61e5d5d7e4f81edfe49542",
      "tree": "d1d02a92f49605f2fa32571c6f03fb6d2d323422",
      "parents": [
        "521ff988097af7c79a0b94368d33d21f7c7dfb7d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jun 17 09:23:17 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jun 18 20:00:58 2019 +0000"
      },
      "message": "ART: Preallocate offset map\n\nReserve space in the offset-to-type map in the dex file verifier.\nThis avoids reallocations and improves performance, and in the\ncommon case reduces peak memory consumption.\n\nBug: 110852609\nTest: m test-art-host\nChange-Id: I57bf32e6486c115b35fb2bdccb789a8b09272840\n"
    },
    {
      "commit": "8867f3b017546ff187a99ac57bc91ac2bcf1f4f9",
      "tree": "29dbf68255584d48694bd8a50b23d8758987278c",
      "parents": [
        "d3b6664f454e7ea61597c0235b4a9df95056f4cd"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri May 31 20:01:46 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Jun 07 17:01:44 2019 +0000"
      },
      "message": "Switch-interpreter: Add new \u0027next\u0027 instruction field.\n\nThis field is set by handlers to the next instruction to execute.\nIt is initialized to fall-through and can be overwritten as needed.\n\nAs the first step, only DCHECK its value against the \u0027inst\u0027 field.\nThe next step will be to remove all the inst-\u003eNext_xxx() calls.\n\nTest: test.py -b -r --host --64 --interpreter\nTest: run-libjdwp-tests.sh --mode\u003dhost --variant\u003dX64 --debug --no-jit\nChange-Id: I92740d21871cf3a5b34d9d1615ad2a71ba021339\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": "abdb4592fa28d6e75f1160f01cde58ad7c3fef37",
      "tree": "e887df0046489008f318fce65909ab0535aa386c",
      "parents": [
        "639e73b5ad1d96a1e67743735a13f7a268b455aa"
      ],
      "author": {
        "name": "Eric Holk",
        "email": "eholk@google.com",
        "time": "Thu May 16 08:33:12 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon May 20 19:35:19 2019 +0000"
      },
      "message": "Use string length from DEX instead of recomputing\n\nThis gives around a 2% improvement in startup time overall. Here are results from a selection of\napps:\n\ncom.android.gallery3d/.app.GalleryActivity: 203.2ms → 197.7ms (change: -5.4ms, -2.7%)\ncom.android.messaging/.ui.conversationlist.ConversationListActivity:\n  202.1ms → 199.1ms (change: -3.0ms, -1.5%)\ncom.android.contacts/.activities.PeopleActivity: 277.3ms → 270.7ms (change: -6.6ms, -2.4%)\ncom.android.camera2/com.android.camera.CameraLauncher:\n  351.7ms → 344.1ms (change: -7.7ms, -2.2%)\ncom.android.dialer/.main.impl.MainActivity: 259.5ms → 254.2ms (change: -5.3ms, -2.0%)\ncom.android.settings/.Settings: 189.0ms → 186.5ms (change: -2.4ms, -1.3%)\ncom.android.email/.activity.Welcome: 222.8ms → 219.3ms (change: -3.6ms, -1.6%)\norg.mozilla.firefox/.App: 370.2ms → 358.3ms (change: -11.9ms, -3.2%)\n\nThis is the average of 100 runs on a Pixel 2 XL.\n\nBug: 132691958\nTest: device boots, start app many times\nChange-Id: I93b6eb5105e32788cfc8159c6c21b400a161f86c\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": "27a47a3c100658797032f443607eb0a62e9e537b",
      "tree": "bce8df6993df72bfe5a8b7cf4ee2dc56ee18fb19",
      "parents": [
        "957c538a4d712066e6d7a309ee07f013c8d2e0cd"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu May 16 13:29:15 2019 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu May 16 13:29:15 2019 -0700"
      },
      "message": "ART: Forward-declare ClassIterator and Signature in dex_file.h (iwyu)\n\nTest: mmma art\nChange-Id: I9385dd02db52ef10bf748cde118c1573733faffb\n"
    },
    {
      "commit": "2f7a55c0370583954239c8b36bf1beb2665d8379",
      "tree": "00550ea6a460b3044b8bea83a150cab0049b6d2b",
      "parents": [
        "3ba32d966cc836b997a9ac595f32504554b958e0"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu May 09 15:46:38 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed May 15 18:37:05 2019 +0000"
      },
      "message": "ART: Forward-declare DexInstructionIterator (iwyu)\n\nTest: mmma art\nChange-Id: I43269f47668eece5204cc0895895346205a274d1\n"
    },
    {
      "commit": "1389dd450eb257bbe48e94b2917c60d64fa10fe7",
      "tree": "da3f8ca00f986719b8e4fb111433244359d06088",
      "parents": [
        "b2a8964f4218c2c52dacf599ebf5cf69f8753bf0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri May 03 22:43:12 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon May 06 23:45:14 2019 +0000"
      },
      "message": "Track libziparchive API change.\n\nBug: http://b/129068177\nTest: treehugger\nChange-Id: I6632e246bf76f535a14de5e521bcdf65481ef544\n"
    },
    {
      "commit": "52fc7ab4d557cfbcd1a7494fd5bf52671c0e122f",
      "tree": "7f8cb1a73ecb9599b2a6687892ea66820d70cca9",
      "parents": [
        "917cfdb915bd7674e27d6fe353274318862e0d8b"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri May 03 11:03:52 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri May 03 13:58:40 2019 +0000"
      },
      "message": "Fix mac build: Enable libdexfile_external (attempt 2)\n\nBug: 131709594\nChange-Id: Id9110adfcb42a94701eccc421ca7d9cceacd4cd2\n"
    },
    {
      "commit": "b74f307cda4b1b186dcbdf6c84f1ee02a50ad3cb",
      "tree": "080b8c9b4317e2b5f4c942d0c7be6dbb18200dfa",
      "parents": [
        "1db789ea17f87415a38d72066ca0baf3f5252474"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed May 01 15:19:00 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu May 02 15:59:33 2019 +0000"
      },
      "message": "ART: IWYU for HiddenApi domain\n\nMake the domain a known char storage and forward-declare in DexFile\nto significantly reduce the list of transitive includes. Fix up\nmissing includes.\n\nTest: mmma art\nChange-Id: I9d43113e982fc0b509fd9a8168c6788e9431500a\n"
    },
    {
      "commit": "1db789ea17f87415a38d72066ca0baf3f5252474",
      "tree": "d4ef1ad7ec5ffcda670efb853481cc1db4326743",
      "parents": [
        "0e5dc3438d52568ce0dc026ac2a00e4c4b20476b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed May 01 14:54:43 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu May 02 15:59:03 2019 +0000"
      },
      "message": "ART: Small iwyu\n\nArtField doesn\u0027t need dex_file_types. This in turn exposes a\nmissing include in modifiers.\n\nTest: mmma art\nChange-Id: I318e2919121f350a0447f6fc0814d81779fd9cc5\n"
    },
    {
      "commit": "d112012197d2a6b4c96a710737b35d50d75098aa",
      "tree": "3d1a97d2d2c20f57969f025006c844687c835a8d",
      "parents": [
        "68fa4ca3138a4950a33c74283488681fb602e85c"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed May 01 00:21:43 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed May 01 00:23:10 2019 +0100"
      },
      "message": "Fix mac build: Enable libdexfile_external\n\nChange-Id: I8d905bc1e2aeec7a5610fac8b60bbcd5c9b1e8aa\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": "fc8e7598fe013bebff210b48347daf80316ac0a4",
      "tree": "37b6594c1f4e7e40bbdfcee88560a688db868620",
      "parents": [
        "8f88207206fe39f6dcb4e76e24716c81566f26cc"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 09 11:46:11 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 09 20:42:19 2019 +0000"
      },
      "message": "art: remove unnecessary references to external/zlib.\n\nBug: https://issuetracker.google.com/115695768\nTest: builds\nChange-Id: If28672497d5702e084ac033eceaeb31a18eb292e\n"
    },
    {
      "commit": "35a3f6a09931ee631a0377ee3ca98a7fb1f4f61d",
      "tree": "c3bbc93f5d7c5c74b49a03fc9a2609f7a918840e",
      "parents": [
        "3bfc694a4bcc9ef3de19b94a34701c76c6008071"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Mar 04 15:59:06 2019 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Apr 02 19:20:14 2019 +0000"
      },
      "message": "Create vdex file for dex loaded with InMemoryDexClassLoader\n\nPrevious CL introduced a background verification thread for dex bytecode\nloaded with InMemoryDexClassLoader. Extend the logic to collect the\nresults of class verification into an instance of VerifierDeps and dump\nit into a vdex file in the app\u0027s data folder.\n\nThe background thread does not collect full VerifierDeps (e.g.\nassignability dependencies, etc), just a bit vector of whether a class\nwas successfully verified or not.\n\nThe vdex format is extended to include boot classpath checksums and the\nclass loader context it was created for. These are optional and\ncurrently left empty for regular vdex files.\n\nThe generated vdex files are treated as a cache with a limited capacity,\ncurrently capped at 8 files. The least recently used file (in terms of\natime reported by stat()) is unlinked if the cache is full and a new\nvdex is about to be generated.\n\nBug: 72131483\nTest: art/tools/run-libcore-tests.sh\nTest: art/test.py -b -r -t 692 -t 693\nChange-Id: I26080d894d34d8f35f00c7925db569f22f008d2c\n"
    },
    {
      "commit": "d53f60658fb0d28279919cc856a55e4b6504dabe",
      "tree": "2e152d283254df61f7b18738a67e5fbce453c54b",
      "parents": [
        "fe1d952a9912bf597174dc636d0f87db06a8d925"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Mar 22 14:55:21 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Mar 27 15:11:58 2019 +0000"
      },
      "message": "Partially disable building ART for host on Mac.\n\nBuilding ART for host on Mac is not currently needed.\n\nBuilding ART for target on Mac still works.\n\nThe main motivation is remove the custom elf.h from the code base.\n\nBug: 73344075\nTest: \"m -j40\" on Mac.\nChange-Id: I4b6f7aa7b291dcb6d751374ecf8d15f35877bd2e\n"
    },
    {
      "commit": "8982186538943d31b9db0b94e9bf10b5c4a75ae7",
      "tree": "df8f79208eed6bd8801f9e4ec11a1d08e85078a5",
      "parents": [
        "4bb2af5e6163cf68ec65c5497983303302a15a09"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Mar 19 13:57:43 2019 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Mar 22 13:48:56 2019 +0000"
      },
      "message": "Support FDs for class loader context dex files\n\nWhen compiling secondary dex files, dex2oat/dexoptanalyzer must open\nall dex files in the given class loader context. However, these tools\ndo not have the SELinux permission to open app data files and instead\nrely on installd to open them and pass file descriptors via command\nline arguments.\n\nThis patch extends ClassLoaderContext::OpenDexFiles to support opening\ndex files from a provided list of FDs, assuming the order corresponds\nto the flattened class loader context. FDs can be passed to dex2oat/\ndexoptanalyzer using a new \u0027--class-loader-context-fds\u003d\u0027 command line\nargument. The format is a colon-separated list of integers.\n\ndexoptanalyzer is also extended with a separate mode in which\ndexopt-needed analysis is not performed, only the class loader context\nis flattened and list of its dex files is printed to standard output\nas a colon-separated list of paths. This mode is enabled with\n\u0027--flatten-class-loader-context\u0027 and is used by installd to obtain a\nlist of files it should open for dex2oat/dexoptanalyzer.\n\nBug: 126674985\nTest: atest installd_dexopt_test\nChange-Id: I46a671c90d14ad8615508c106a88ac1ee8a4ef28\n"
    },
    {
      "commit": "f1d973dd98e1f95a28718ab25c8452be3639708a",
      "tree": "1d936d4d69790a76822906c7df6ee07630a68ce4",
      "parents": [
        "6c5ed85653345b78c17faacf5e26a8e872b510f0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 19 13:38:34 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 19 16:45:31 2019 +0000"
      },
      "message": "Fix PrintableString() for 4-byte UTF-8 sequences.\n\nTest: Additional test in utf_test.\nBug: 128865240\nChange-Id: I535e028319393abb17ee258086e47593f80f4ed3\n"
    },
    {
      "commit": "a5c3a808020d81447bc19d07a99288e9d28a6e6c",
      "tree": "83a9b1eac0a7209e6e407c0462d0b1ba8f95f62c",
      "parents": [
        "98fb083a30e9b37685f943e2923e65e60e0a0971"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Mar 08 14:59:41 2019 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Mar 14 14:34:20 2019 +0000"
      },
      "message": "hiddenapi domain: Use oat dex file location if available\n\nTo determine the caller and callee domains of a hidden API access check,\nthe logic will test the dex location against several known system\nlocations. However, DexFile instances backed by an OatFile have relative\ndex locations to avoid need to rewrite the .oat file when moving files\nbetween folders. The canonical dex location is stored in the OatDexFile\ninstead.\n\nBecause the OatDexFile data structure is not available in libdexfile,\nmove the domain resolution logic to hidden_api.cc and resolve when dex\nfiles is first registered with the class linker.\n\nTest: m test-art-gtest\nTest: camera does not crash\nBug: 126901248\nBug: 127852529\nChange-Id: Id494b1c47a2199c227dec046174e08320b9cbc3b\n"
    },
    {
      "commit": "35e6caa39e407af25a8ecbadc4994a4f17c639dc",
      "tree": "90cac934587ded4a453d2e9e8e3048c92093ede3",
      "parents": [
        "23a8eb6623cef293dafd0b7be184a1695279525a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Mar 09 00:38:49 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Mar 09 03:20:01 2019 +0000"
      },
      "message": "Check /system/framework first in ArtDexFileLoader::Open.\n\nThis fixes art_dex_file_loader_test. The order was changed in:\nhttps://android-review.googlesource.com/c/platform/art/+/915434\n\nTest: art_dex_file_loader_test\nChange-Id: Ie7c05b8ece43f74948036f9c516e6f87deb370b9\n"
    },
    {
      "commit": "3c83921510c849cd43b90ab6094abce232c8c088",
      "tree": "f635ef8dbed33154d55254f892f234ff49860154",
      "parents": [
        "d51e574e05a66bd6706f6e9e05f8abe0f8581551"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Mar 04 14:29:50 2019 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Mar 05 15:17:01 2019 +0000"
      },
      "message": "Assign conscrypt to core-platform hiddenapi domain\n\nConscrypt accesses internals of libcore, assign it to core-platform\ndomain accordingly.\n\nBug: 125701194\nBug: 119068555\nBug: 127269864\nTest: compiles, boots, no violations conscrypt\nChange-Id: I3ee26d8cebcc9c74bd9f3e6e03278378efe9db43\n"
    },
    {
      "commit": "e7e26d10a7a1446b42c00104b162bf07e7c01a04",
      "tree": "fb571d4903a499d9effae5940440af5159b8548e",
      "parents": [
        "815d5e5304a5b57db64d6829813a14e464d5c55f"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Feb 28 15:04:14 2019 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Mar 05 15:17:01 2019 +0000"
      },
      "message": "Assign non-runtime /apex/* dex files to platform domain\n\nUntil now only /system/framework and /apex/com.android.runtime were\nknown locations, assigning \"platform\" domain to the former and\n\"core-platform\" domain to the latter. The media and conscrypt modules\nwere left in the \"application\" domain.\n\nThis patch adds a hardcoded path to the apex root and assigns all dex\nfiles in subdirectories to the \"platform\" domain. This affects both\nconscrypt and media modules.\n\nAny other dex files on boot classpath are also assigned to \"platform\"\non first access. A warning is printed in such case and it is now deduped\nto avoid logspam.\n\nBug: 125701194\nBug: 119068555\nTest: compiles, boots, no conscrypt/media warnings about missing domain\nTest: art/test.py -b -r -t 674\nChange-Id: I33bef18459741095d3d99b541fc88b21cf547800\n"
    },
    {
      "commit": "70ae00d6b9aefb285b8c8427d59cd5d1c296cecf",
      "tree": "ebb0a76aa207a7a801de8a02c798713820c6100b",
      "parents": [
        "42d9967a2417fe08987c152e40cebeb88851ec44"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Feb 15 22:41:14 2019 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Tue Feb 19 15:22:35 2019 +0000"
      },
      "message": "Fix missing entry for the static libdexfile_support test in the gtest list.\n\nAlso comment on the lack of test_per_src for those tests, and update the\nfind predicate in run-gtests.sh to handle these test binaries that end with\n_tests instead of _test.\n\nBug: 123186083\nTest: m test-art-host-gtest-art_libdexfile_support_tests\nTest: m test-art-host-gtest-art_libdexfile_support_static_tests\nTest: Buildbot style device test:\n  art/tools/buildbot-build.sh -j8 --target \u0026\u0026 \\\n  art/tools/cleanup-buildbot-device.sh \u0026\u0026 \\\n  art/tools/setup-buildbot-device.sh \u0026\u0026 \\\n  art/tools/buildbot-sync.sh \u0026\u0026 \\\n  art/tools/run-gtests.sh\nChange-Id: I2c103f760dde1154f44b1c90ff3ab9ae356d6318\n"
    },
    {
      "commit": "fe94b1c4e8f85c753a5b7b2f0958a54068c46af2",
      "tree": "01d99cadf22d3eb95972cdd28a988e0e7964261b",
      "parents": [
        "a05344750f6996b32de18a25d0ba55115235dbb6"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Jan 31 17:40:39 2019 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Feb 13 14:24:19 2019 +0000"
      },
      "message": "Open libdexfile_external on demand in libdexfile_support.\n\nThis allows users to depend on libdexfile_support (typically via\nlibbacktrace) also in binaries that don\u0027t run java code. The drawback is one\nextra address load in all calls.\n\nAlso add support for a nonfunctional fake with recovery and vendor variants,\nso that clients don\u0027t need special cases to avoid the libdexfile dependency.\n\nBug: 123403798\nBug: 123186083\nTest: Flash and boot\nTest: atest -a libdexfile_support{,_static}_tests\nTest: mmma art/libdexfile/\nTest: mmma system/core/{libunwindstack,libbacktrace}, run host gtests (cannot get atest to work)\nChange-Id: Ia99ad8039bb37fe25bf7009a85ae89c2aa660bd1\n"
    },
    {
      "commit": "84bf698dad167c2c101d0119c6f358733ec6452b",
      "tree": "072e00d1773571ff25455be79dcc44e301772fff",
      "parents": [
        "c2f8b5086545b6ddb7bacb30f78539f7582696ea"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Tue Feb 05 15:07:57 2019 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Feb 07 15:23:37 2019 +0000"
      },
      "message": "Revert^2 \"Switch from version script to APEX stubs for libdexfile_external and add it to the Runtime APEX.\"\n\nThis reverts commit 7e7ab23b780767fac89e37ca81a1bc8c4cc74e67.\n\nReason for revert: Another try with http://r.android.com/892234 in place.\n\nTest: m checkbuild dist\nTest: m\nTest: m oatdumps\nTest: Flash and boot\nTest: art/build/apex/runtests.sh\nBug: 119632407\nBug: 120670568\nBug: 122885634\nChange-Id: I037d8b5ebae4ba1c0b84d3ac2ac396f6065407a7\n"
    },
    {
      "commit": "eb37ba594146338bf7e7e2bf3769d08046fb263f",
      "tree": "7fac104aed3aec8d8390c8cbe1f7fbd85b4f998a",
      "parents": [
        "e027d727b833930f1bd0029bc1b2cf750d8af5da"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 05 14:10:38 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 06 12:24:10 2019 +0000"
      },
      "message": "Replace StringPiece with std::string_view in Signature.\n\nAnd also in Signature-related code. Remove the function\nDexFile::CreateSignature() which was used only in a test\nas the test can use method searching functions that take\nstd::string_view instead.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 123750182\nChange-Id: I3f24c8f4f677e2e40503dbab347df1eb031b4132\n"
    },
    {
      "commit": "7e7ab23b780767fac89e37ca81a1bc8c4cc74e67",
      "tree": "a3df28047fc8777b432472f69693adad9281f047",
      "parents": [
        "db48919b682fe237ae8198ed12d933705b442144"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Feb 01 12:58:08 2019 +0000"
      },
      "committer": {
        "name": "David James",
        "email": "davidjames@google.com",
        "time": "Fri Feb 01 22:32:53 2019 +0000"
      },
      "message": "Revert \"Switch from version script to APEX stubs for libdexfile_external and add it to the Runtime APEX.\"\n\nThis reverts commit 23b2704ad1ac6cc40a31f491ea71f5d469e10a62.\n\nReason for revert: Breaks cf_x86_phone-userdebug: https://android-build.googleplex.com/builds/build-details/5273735/targets/cf_x86_phone-userdebug\n\nBug: 123700170\nBug: 113373927\nChange-Id: I366212e879afea310b99562917b447c758ca8537\n"
    },
    {
      "commit": "1923176c8e497c035dd0607037302664fcc77a2a",
      "tree": "3b7d415875c0546946711f01d65c47e923958f8e",
      "parents": [
        "6061d161a2ef1055d9b7ab9ef93e86434147b9df",
        "16fc474a8ce9acf1b902dfcc57d061366b02777e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 01 09:35:09 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 01 09:35:09 2019 +0000"
      },
      "message": "Merge \"Special case dex files that have hidden API data.\""
    },
    {
      "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": "16fc474a8ce9acf1b902dfcc57d061366b02777e",
      "tree": "59cf113a930c81740b9feb484947e9fc692176ea",
      "parents": [
        "6d55d3991217f1fb931f8a6bbf12a00f8974abe0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 30 16:53:24 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 31 14:00:14 2019 +0000"
      },
      "message": "Special case dex files that have hidden API data.\n\nRevert of 5462920633c948669dc6e28c61ef92cfeb0cce2b.\n\nDexlayout can increase the size of a dex file, so overestimate the\nsize needed when we know we\u0027re going to run dexlayout on it.\n\nBug: 123474797\n\nTest: CtsJvmtiRunTest983HostTestCases\nTest: art/test/run-test --always-clean  --host --prebuild --compact-dex-level fast --optimizing --no-relocate --runtime-option -Xcheck:jni --debuggable --jvmti-redefine-stress --64  980-redefine-object\nChange-Id: Iea3d38a7f3a55d9a694b95687fb333f680f8106b\n"
    },
    {
      "commit": "23b2704ad1ac6cc40a31f491ea71f5d469e10a62",
      "tree": "40d36704eed6bfdf64cc3298f1c3a93b4fae91fe",
      "parents": [
        "6d55d3991217f1fb931f8a6bbf12a00f8974abe0"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Jan 11 10:36:35 2019 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Jan 30 19:34:47 2019 +0000"
      },
      "message": "Switch from version script to APEX stubs for libdexfile_external and add it\nto the Runtime APEX.\n\nTest: m checkbuild dist\nTest: m\nTest: m oatdumps\nTest: Flash and boot\nTest: art/build/apex/runtests.sh\nBug: 119632407\nBug: 120670568\nBug: 122885634\nChange-Id: Ib98a8f7dbb1e94f553a7ebe575f320dbbebad292\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": "206348cea8b086a484b8bde37b2e281e5f7db638",
      "tree": "1e83b6484dbd9218ace7c94d266dc90ed7e66505",
      "parents": [
        "58a268aa3569d8ad4f0e831de578620e1079ed59"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Wed Dec 05 11:11:33 2018 -0800"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Mon Jan 28 09:37:57 2019 -0800"
      },
      "message": "Selectively allow dead reference elimination\n\nAllow dead reference elimination in methods not containing\n@ReachabilitySensitive accesses or calls, when the class is marked\n@DeadReferenceSafe.\n\nAdd 1339-dead-reference-safe to aggressively check that everything\nworks as intended.\n\nBug: 111453875\n\nTest: art/test/testrunner/testrunner.py --host --64 -t 1339-dead-reference-safe\n\nDetect ReachabilitySensitive annotations.\n\nChange-Id: I70c20431fdbcfcfd2692b2255d12ad59e37cb669\n"
    },
    {
      "commit": "12162de4cd7fe726c51789630b8b45ca55f39bb8",
      "tree": "dbdc00e9d253731e3e44d09591ca409336531e65",
      "parents": [
        "fbfba6a7d4b8892a2ce2de006ff3a767163ed05b"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Jan 21 16:01:30 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jan 22 21:02:15 2019 +0000"
      },
      "message": "hiddenapi: check for CorePlatform domain\n\nSet Hidden API Domain to CorePlatform if dex file is in the Runtime\nModule.\n\nBug: 119068555\nTest: 674-hiddenapi\n\nChange-Id: I24475098deb6f8d9d51d218ab1a8ee0caf01ae81\n"
    },
    {
      "commit": "e7681823f8259c8c04ce0c361746216606784e69",
      "tree": "8bd248fc6be126d7d4e55bb4072ed24b2851ebbd",
      "parents": [
        "90faceb71e25748172ba6369209f8a2a66735394"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Dec 14 16:25:33 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Jan 21 10:22:27 2019 +0000"
      },
      "message": "hiddenapi: Print warnings for @CorePlatformApi violations\n\nWhen accessing a method/field at runtime, determine the context of both\nthe caller and the callee, and add new logic for the case\n\"platform -\u003e core-platform\" which used to be always allowed.\n\nIf the callee is marked with kAccCorePlatformApi, access is allowed.\nIf not, a warning is printed into logcat.\n\nBug: 119068555\nTest: 674-hiddenapi\nChange-Id: I64839596bf6eb06d7a169fd59b18fd82c140ce6e\n"
    },
    {
      "commit": "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": "46c824638dcaf240eb9d6163a4b9512cc2667719",
      "tree": "6f847a7176fb1fbb3cc6ae57ddec18424e78c0fa",
      "parents": [
        "95e49e77438077353254622d4c61f3cb3d5c5f49"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 14 08:51:52 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 14 10:01:18 2019 +0000"
      },
      "message": "Fix off by one comparison.\n\nWe need at least two arguments (executable + the gtest output argument)\nto match the gtest xml framework.\n\nTest: dex_file_ext_c_test\nChange-Id: I030a1647421e0de44e3ab4bd9fb93cc5ec1ab83c\n"
    },
    {
      "commit": "3319162e6bef20170df1b5d38fe25e87412a2970",
      "tree": "18f2179418b1e9a8d8415f5de169454af0db3337",
      "parents": [
        "ca13323b6fa5ae91148b8dd5fca80fa0ef1ad475",
        "8bf1c84f26ad5ad2b7c8413d96846cd770aec772"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Jan 11 20:22:18 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 11 20:22:18 2019 +0000"
      },
      "message": "Merge \"Fix memory leaks in DexString wrapper and in unit tests.\""
    },
    {
      "commit": "8bf1c84f26ad5ad2b7c8413d96846cd770aec772",
      "tree": "ba131a66f1280b713548a9e2d7945ae1b90af9f1",
      "parents": [
        "4a60ab2c6caac1c1d52a0a9189d4f6f36cd78a00"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Jan 11 17:33:54 2019 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Jan 11 17:36:06 2019 +0000"
      },
      "message": "Fix memory leaks in DexString wrapper and in unit tests.\n\nThis addresses the art-gtest-asan failure from http://r.android.com/867370:\nhttp://ab/5224785\n\nTest: env SANITIZE_HOST\u003daddress m test-art-host-gtest-dex_file_supp_test\nBug: 119632407\nChange-Id: I84f761561223c7da56a335b6691189020027a4a0\n"
    },
    {
      "commit": "78438e2f7798925da65fbbb75a0fd789a4b3215c",
      "tree": "67e5046a487fb39c670e089d3e7a3574d8ecd2cc",
      "parents": [
        "4a60ab2c6caac1c1d52a0a9189d4f6f36cd78a00"
      ],
      "author": {
        "name": "Greg Kaiser",
        "email": "gkaiser@google.com",
        "time": "Fri Jan 11 06:28:49 2019 -0800"
      },
      "committer": {
        "name": "Greg Kaiser",
        "email": "gkaiser@google.com",
        "time": "Fri Jan 11 06:28:49 2019 -0800"
      },
      "message": "libdexfile: Fix inconsequential resource leak in test\n\nWe make sure to close \u0027output_fd\u0027 in an error case.  This is\ninconsequential since the test terminates almost immediately\nafter this.  But fixing this helps static analysis find other\nleaks in our code.\n\nTest: TreeHugger\nChange-Id: Id3392c366d575dc93f3e1ad802e436b44dda0870\n"
    },
    {
      "commit": "e6a269f6d36691b05f92067ad611cd759582aff8",
      "tree": "bdc4f66edd22a67b23d0e3900903c023479795ec",
      "parents": [
        "267789c018ff795c9ee653a185e95a2c091b7c4b",
        "750bf0415258435202aaadba51375f8b63b49c78"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Jan 11 10:31:00 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 11 10:31:00 2019 +0000"
      },
      "message": "Merge changes Ibd3ef6e3,I6e9944a2\n\n* changes:\n  Add unit tests for libdexfile external API.\n  Separate libdexfile external C ABI from the C++ header file.\n"
    },
    {
      "commit": "3a04004876cf772464529be96a037a86d8a38272",
      "tree": "0e2fbe44b4753cb275db3372c9ff1d29587c72e6",
      "parents": [
        "26d4df2487e728bd8c82c3f500b554b4ab78ee1f",
        "2ccc9c3f2a6318e15a7a1d63ece206a6a075fa19"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Jan 11 10:28:03 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 11 10:28:03 2019 +0000"
      },
      "message": "Merge changes from topic \"ext-dex-signature-arg\"\n\n* changes:\n  Rename libdexfile external API header.\n  Expose PrettyMethod\u0027s with_signature in GetMethodInfoForOffset.\n"
    },
    {
      "commit": "750bf0415258435202aaadba51375f8b63b49c78",
      "tree": "d5559366283424f43cfdf44640b8401966fc6f42",
      "parents": [
        "fdb2f60e7ad3d676ec55286e29e11bc7506b1973"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Jan 09 22:51:12 2019 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Jan 10 15:48:31 2019 +0000"
      },
      "message": "Add unit tests for libdexfile external API.\n\nThis prompted a fix to ExtDexFileMakeString in the C API to make it fully\nsupport strings with NUL chars. That\u0027s currently not expected to be\nrequired; it\u0027s for the sake of API completeness.\n\nTest: m test-art-{host,target}-gtest-dex_file_supp_test\nTest: art/test/testrunner/run_build_test_target.py -j80 art-test\nBug: 119632407\nChange-Id: Ibd3ef6e3ea7ae196f541e926a4a7665be1c91819\n"
    },
    {
      "commit": "fdb2f60e7ad3d676ec55286e29e11bc7506b1973",
      "tree": "103339655651dbcdaa89baf949f0a098dd7a647c",
      "parents": [
        "2ccc9c3f2a6318e15a7a1d63ece206a6a075fa19"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Jan 09 14:47:00 2019 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Jan 10 15:48:13 2019 +0000"
      },
      "message": "Separate libdexfile external C ABI from the C++ header file.\n\nAlso add a test to compile it with C.\n\nTest: m\nTest: m test-art-{host,target}-gtest-dex_file_ext_c_test\nTest: art/test/testrunner/run_build_test_target.py -j80 art-test\nBug: 120978655\nChange-Id: I6e9944a2051bef9a2775bc2072df4e0ed81dc833\n"
    },
    {
      "commit": "2ccc9c3f2a6318e15a7a1d63ece206a6a075fa19",
      "tree": "a872f89ea7b6085d505b7d0135548efbe2f86623",
      "parents": [
        "a711c7f2913b0e69af0ea71e72ffe20868d05f2e"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Jan 09 23:21:36 2019 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Jan 09 23:21:36 2019 +0000"
      },
      "message": "Rename libdexfile external API header.\n\nFor consistency with the new header file added in http://r.android.com/867369.\n\nTest: m\nBug: 120978655\nChange-Id: I7f3d1575c253028289d57b1a972c1f0bbcc88c7a\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": "a711c7f2913b0e69af0ea71e72ffe20868d05f2e",
      "tree": "cbb56ea033f7d268c1cc154d24afd8faa1034062",
      "parents": [
        "5098ab9245f5ed87dcc78b5ea7cf2ca4f1578b97"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Dec 14 15:21:24 2018 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Jan 09 14:47:03 2019 +0000"
      },
      "message": "Expose PrettyMethod\u0027s with_signature in GetMethodInfoForOffset.\n\nThis isn\u0027t strictly necessary for the current use case in libunwindstack.\nThe reason for it is symmetry with GetAllMethodInfos.\n\nAlso drop the default for with_signature.\n\nThis is an incompatible C++ API change, so let\u0027s do it now.\n\nTest: mmma art/ system/core/{libunwindstack,libbacktrace} system/extras/{simpleperf,perfprofd}\nTest: Run out/host/linux-x86/nativetest*/libunwindstack_test/*\nTest: mmma system/extras/simpleperf \u0026\u0026 adb root \u0026\u0026 adb shell rm -rf /data/test \u0026\u0026 adb push out/target/product/taimen/testcases/simpleperf_unit_test /data/test \u0026\u0026 adb shell /data/test/arm64/simpleperf_unit_test \u0026\u0026 adb shell /data/test/arm/simpleperf_unit_test\nBug: 119632407\nChange-Id: I01345bd1b07554f70976cb8536f1304a3a739bf9\n"
    },
    {
      "commit": "62629598f845c2efec0dff652e440e8fbcce4b8a",
      "tree": "7af96934e7ca5313787a9b328e85e6606645c4e5",
      "parents": [
        "d77abd9e128f60917f712b8da84bab46e3ed5870"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 03 16:08:31 2019 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 03 16:09:07 2019 -0800"
      },
      "message": "ART: Some more IWYU in common headers\n\nForward-declare a few structs and classes. Remove unused includes.\n\nBug: 119869270\nTest: mmma art\nChange-Id: I21215cee39269b373784d6a82577039322a4a950\n"
    },
    {
      "commit": "436896cd020eee6de97b619a670832b0607c3f16",
      "tree": "7cc5cbafcfbe6f590cb3e9d816112815a3f00668",
      "parents": [
        "7458a7afdfe3046d962ea13dd0f6b176283505b2"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 02 15:06:53 2019 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 03 09:19:10 2019 -0800"
      },
      "message": "ART: Some IWYU for IterationRange\n\nRemove unnecessary include. Forward-declare in common headers.\n\nBug: 119869270\nTest: mmma art\nChange-Id: I0a1403259ea3f1142548009deb6313dab0fed26f\n"
    },
    {
      "commit": "7458a7afdfe3046d962ea13dd0f6b176283505b2",
      "tree": "b4573042cc825952812de920f24c4af71322d509",
      "parents": [
        "ad1aa6340567c0660506069d760ff41483eb3821"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 02 10:32:11 2019 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 03 09:19:10 2019 -0800"
      },
      "message": "ART: Refactor code_item_accessors\n\nRefactor to internal templated functions to not leak DexFile details\nprematurely.\n\nBug: 119869270\nTest: mmma art\nChange-Id: I6f281703b750ec016e8cf18abfa55980a00506dd\n"
    },
    {
      "commit": "ad1aa6340567c0660506069d760ff41483eb3821",
      "tree": "dbceabc90859e9353a8683d8be02a702205be9c9",
      "parents": [
        "b8bca301eff0db87d37bc4ab898a4973d211019b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 02 10:30:54 2019 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 03 09:19:10 2019 -0800"
      },
      "message": "ART: Move Signature to its own header\n\nReduce the dependencies on dex_file.h\n\nBug: 119869270\nTest: mmma art\nChange-Id: I1450fe2c3f4a7f5b535ed38cc19cb8a053228541\n"
    },
    {
      "commit": "b8bca301eff0db87d37bc4ab898a4973d211019b",
      "tree": "7948ba60e7941e5c977f20cad146ae5e0f856907",
      "parents": [
        "3f1dcd39e134d994ac88dcc4f30ec8cabcd8decf"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 02 10:28:38 2019 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 02 11:31:00 2019 -0800"
      },
      "message": "ART: Move DexFileStringEquals to DexFile\n\nAvoid a static function in an inline header being shared.\n\nBug: 119869270\nTest: mmma art\nChange-Id: If10189f92bca71c8bd3ef679bdc48a0dbc113fa3\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": "d4d7918f4443ade4e909308dab53183d19943849",
      "tree": "05afc9173b7e1840cdcfef2f5c2309d0a3151147",
      "parents": [
        "adf595900e6f6328c68a15b88f53529cb5e520f3"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Dec 20 18:04:07 2018 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Dec 20 18:05:10 2018 +0000"
      },
      "message": "Move constructors and operators should be noexcept.\n\nBug: 121130430\nTest: env WITH_TIDY\u003d1 mmm art/libdexfile:libdexfile_support\nChange-Id: Id73ec33bdb7d8a334b015935a2c87a1d178ad385\n"
    },
    {
      "commit": "10db8feb19c0d9e0383142b3d1a3c793de1c9453",
      "tree": "8b59078f2742c60f369b2f20a198aad2fad54566",
      "parents": [
        "5c030d3c25b958b8d3157d4cc7d807fa89786fec"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Jul 18 11:01:20 2018 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Dec 18 21:27:49 2018 -0800"
      },
      "message": "Support Windows builds for libartbase/libdexfile\n\nEnable building key libraries for windows tools in the SDK.\n\nBug: 22322814\nTest: run dexdumps on a large APK under wine on Linux\nChange-Id: Ib7180f8385300244bf914e9ae1f993e869f71109\n"
    },
    {
      "commit": "cc564914090823045d56cecc528edea20db4fb01",
      "tree": "fc05ee8628197120c927938a6ce625ec8c67cc87",
      "parents": [
        "500b4da0e8d5746bfc75baa9db3d57f51a0af6af"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Dec 14 15:07:49 2018 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Dec 14 15:33:47 2018 +0000"
      },
      "message": "Do not cache the method name from PrettyMethod.\n\nRestores parity with the cache that was present before the external API was\nintroduced.\n\nTest: mmma art/\nTest: mmma system/core/{libunwindstack,libbacktrace} and run host gtests\nBug: 119632407\nChange-Id: If15114595513442b16fef47bb277bf43e781a658\n"
    },
    {
      "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": "785c987bb1e66d6ddce662b61c0fbd094195b022",
      "tree": "325f4c3212d0c4be96e3f09a157e183dbafc2813",
      "parents": [
        "c2f685a64f819193fb563d33924d233872b8970a"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Nov 28 00:25:18 2018 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Dec 13 17:58:22 2018 +0000"
      },
      "message": "Plumb through the container as an optional arg to DexFileLoader::Open.\n\nTest: make\nTest: device boot\nBug: 119632407\nChange-Id: I27727806f1dd52ce22b3f4d1b0ffb57e3ab6269d\n"
    },
    {
      "commit": "1c065287805511371b0da2c7d7d8404fe491c9e9",
      "tree": "d0ced0e5f62cea335fc41efa1e84decf571e9a81",
      "parents": [
        "dc12509a6331b7f4c48a1b3a52a2387363841571",
        "97b281129e556e6f3a91e9893f71ca45e7715e3f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Dec 10 18:24:35 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 10 18:24:35 2018 +0000"
      },
      "message": "Merge \"ART: Clean up base/utils.h\""
    },
    {
      "commit": "ca0f2dceb2ab4fdbebf9d2b75c774c363b4191b4",
      "tree": "a2d6822b068e29c2bab2edc643dd208206e2e77b",
      "parents": [
        "b023b3fd99a3369479e965c8e5d1d79b2491f75d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 10 12:14:36 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 10 15:14:40 2018 +0000"
      },
      "message": "Fix ComputeModifiedUtf8Hash().\n\nExplicitly cast the character to uint8_t so that we do not\nproduce different results depending on whether the platform\nhas a signed or unsigned char.\n\nTest: Additional test in utf_test.\nBug: 120749178\nChange-Id: Icf329baa9eb95c2db820b51873e72d95aabf398e\n"
    },
    {
      "commit": "97b281129e556e6f3a91e9893f71ca45e7715e3f",
      "tree": "3e90f0148f3f6d073a29b0bfcd774e0689fb9fb4",
      "parents": [
        "0bbac3089b5637103585b04774eea3d959c4f24d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Dec 04 09:09:12 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 06 11:37:19 2018 -0800"
      },
      "message": "ART: Clean up base/utils.h\n\nRemove dead code. Remove unnecessary includes.\n\nBug: 115837065\nBug: 119869270\nTest: m\nChange-Id: Ieb07546e9ebd476b7b1459fb8dd6cf5545d0af20\n"
    },
    {
      "commit": "c1896c9a0e15df3a1b9a3a19bcd2a933b654fe06",
      "tree": "b68a5f5163f8da0da87d671a225addaa2a13095f",
      "parents": [
        "f2970cd870948a6ee1c8ecd30c9c3147d05aa0be"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 29 11:33:18 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 29 11:33:18 2018 -0800"
      },
      "message": "C++17 compatibility: make WITH_TIDY\u003d1 happy again.\n\nBug: http://b/111067277\nTest: builds\nChange-Id: I8b69ea3815e14bb6eb27f40c0dd01a85b340a355\n"
    },
    {
      "commit": "427766c709b762f01f2bb92143bf33ece1c88290",
      "tree": "d2adbfc5e93428338ba0ffc76a9352f0939097e4",
      "parents": [
        "a63423df04f629ab4286fd16536d87ba906eaed5",
        "489a3fce39b3e441f6788c11e97c3d14e43f743c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 28 21:24:21 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 28 21:24:21 2018 +0000"
      },
      "message": "Merge \"ART: Mark implicit constructor NOLINT\""
    },
    {
      "commit": "2025488b81ac0cfa9af5cfd10c7f8a45c215d9a3",
      "tree": "101d49fadb624ee8b5a22a1866b0f319dfea8fc0",
      "parents": [
        "ef6b2aa28fec148d3fe635a34260fde8c89622c7",
        "85f1c576d228c2c43e9a0dc37f0cbb91fad59c45"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 28 18:37:15 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 28 18:37:15 2018 +0000"
      },
      "message": "Merge \"ART: Some iwyu for logging.h\""
    },
    {
      "commit": "489a3fce39b3e441f6788c11e97c3d14e43f743c",
      "tree": "e69015fbcec5b47fd8586a866a7795994775fdb7",
      "parents": [
        "98034bfb4178e5054c89e5a4aa738afe1caff396"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 27 07:55:34 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 27 07:55:34 2018 -0800"
      },
      "message": "ART: Mark implicit constructor NOLINT\n\nBug: 32619234\nTest: m test-art-host\nChange-Id: I1f039d0c15c207c2b72a3f02a60945854db350f4\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": "85f1c576d228c2c43e9a0dc37f0cbb91fad59c45",
      "tree": "67d17ea5a7eb6021dabb335730402bd28d72694a",
      "parents": [
        "79c693b3133da397cec7eaff19de631b65a0cf70"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 21 13:52:48 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 21 15:22:07 2018 -0800"
      },
      "message": "ART: Some iwyu for logging.h\n\nRemove over-broad use in headers. Fix up transitive includes.\n\nBug: 119869270\nTest: mmma art\nChange-Id: I518fa7c8bee014b260818fca1fbde6ec47d126da\n"
    },
    {
      "commit": "85865697ff9fabede3d64ff64cde72727c3fc4c1",
      "tree": "0c67639c4c286149fa3f06f5f412683e39014790",
      "parents": [
        "b321ac28f726a7ed41f277382d85702ffdfbe00f"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Oct 30 17:26:20 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Nov 16 11:11:20 2018 +0000"
      },
      "message": "Runtime flags only for fast/slow hiddenapi path\n\nWith more flags being supported in the dex file, stop copying all of\nthem into ArtField/ArtMethod access flags. Instead, store the\ninformation needed to figure out whether to enter the slow path and\nretrieve full access flags from dex or not.\n\nAt the moment, the only runtime flag is kAccPublicApi assigned to all\nclass members on the whitelist.\n\nThe CL also moves hardcoded API membership of intrinsics out of\nArtMethod and into hidden_api.h, and moves ArtMethod::SetIntrinsic\ninto the .cc file.\n\nTest: m test-art\nChange-Id: Ia1cc05060dbc22341768161dfd8697c6158e803a\n"
    },
    {
      "commit": "ec3adef6e4a5c71d16d4e9d00ef810759ea7da15",
      "tree": "2dfccbc2d529ad40c23681d3bbfcb9e47d5e62eb",
      "parents": [
        "b56e8353020acda1a8285daa11c69f57060cd015"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Nov 14 16:16:37 2018 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Nov 14 16:16:37 2018 +0000"
      },
      "message": "libdexfile: rename kVerifyNone to kVerifyNothing\n\nDisambiguation for clang compiler drop.\n\nBug: 119327768\nTest: art/tools/buildbot-build.sh --host -j32\nTest: Treehugger\nChange-Id: I5937868cdde6127ffca92d1dbb9be3ede6792b88\n"
    },
    {
      "commit": "39d8c873645df7c956bf306693d95212d1d51906",
      "tree": "84bdfb98c931343b507c19a8149c84ba48a0c7b1",
      "parents": [
        "1e152a6090c546f4a6184a5610c85cae7ac77068"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Nov 01 16:44:20 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Nov 01 19:28:17 2018 +0000"
      },
      "message": "Optimize string comparisons in Class::FindClassMethod.\n\nThe method is relatively hot in non-quickend code.\n\nAvoid full string comparisons by comparing the unicode lengths first.\n\nTest: ./art/test.py -b -r --interpreter --host --64\nChange-Id: Ib0aa7008ca36e3916967fe082948d16823b93e02\n"
    },
    {
      "commit": "244c2b957d911db10a4a1944fb5508dc13c28465",
      "tree": "6e5843e0f49a5a61ab237f626426cad738541565",
      "parents": [
        "3a37d82b40be8af990b0240bb4ac012e6509f9b6",
        "123333a65e8d2593232c20c6933b60fbb7737ddd"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Oct 31 14:10:27 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 31 14:10:27 2018 +0000"
      },
      "message": "Merge \"Remove dependencies on libutils.\""
    },
    {
      "commit": "9581e6176c78f3f2a8f40ff9d5a6c4d4029253fb",
      "tree": "e12f130a067566c9360b04e14714e8743c9e21ae",
      "parents": [
        "30890f6af9bae6ece7267c72e3c82e3c61da4d9e"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Oct 30 14:29:43 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Oct 31 09:42:07 2018 +0000"
      },
      "message": "Cache whether we should use interpreter invoke fast-path.\n\nThere is many conditions to check on each invoke.  If they all pass,\ncache the result in the access flags of the called ArtMethod.\n\nThis speeds up arm64 golem interpreter benchmarks by 4%.\n\nTest: ./art/test.py -b -r --interpreter --host --64\nChange-Id: I86313dbdba84cbf8c707aae84e0ff05b6e034700\n"
    },
    {
      "commit": "123333a65e8d2593232c20c6933b60fbb7737ddd",
      "tree": "0714a05eea12a18f0267875d02e4e5aa7c24227a",
      "parents": [
        "eead626e0567d11ed0402e9586a99ca4a1d023eb"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Tue Oct 30 14:19:58 2018 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Tue Oct 30 16:03:04 2018 +0000"
      },
      "message": "Remove dependencies on libutils.\n\nThe libutils dependency of libziparchive was removed in aosp/796795.\n\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\nTest: art/test/testrunner/run_build_test_target.py art-asan (build only)\nBug: 118374951\nChange-Id: I58cdf7a39558c87e48bdc1274d6c6ddd36301d8d\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": "47cd272d15f41109b3dacb21cfa509d18a03e011",
      "tree": "f2693adde283631362b3acc2c573d7280632621f",
      "parents": [
        "6e32b0059b4c3073c601018da3ca315ad568525a"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Oct 23 12:50:02 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Oct 30 11:04:29 2018 +0000"
      },
      "message": "Remove HiddenApiAccessFlags, move content to hiddenapi::\n\nHiddenapi code in runtime/ has all code in the hiddenapi:: namespace\ninstead of using a class as a wrapper. Refactor HiddenApiAccessFlags\nfor consistency. Also turn ApiList into `enum class` for stricter\ntype checks.\n\nTest: m test-art\nChange-Id: Ifb3c443ea43860476abd4fd3d4934cd14e2cdcc1\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": "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": "6ea9b92f23a58a00f1ece8d85e6eb369bc27a721",
      "tree": "bb013d009f5708b7cbbd38d20a31a7e45cf02174",
      "parents": [
        "ce2a00daa92670a4fc01ef59fdbc3769a846f69c"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Sat Oct 27 00:53:58 2018 -0700"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Sun Oct 28 06:52:04 2018 +0000"
      },
      "message": "Fix defaulted-function-deleted warning\n\nExplicitly defaulted move constructor is implicitly deleted.\n\nTest: m checkbuild\nBug: 111759196\nChange-Id: I45e0af221fd4c598478353d1a5b0abdd73b2bd16\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"
    }
  ],
  "next": "0dbc363f32d075017e1c4fb5e17715e3f12d0157"
}
