)]}'
{
  "log": [
    {
      "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"
    },
    {
      "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": "0de385f9eb5f8c066121ea2d43e8b8eea6a726fa",
      "tree": "918bee18727b0a8de4332db161d457c4241939b4",
      "parents": [
        "21ff4ad92e8d74cfe8d95ec64b177d47084ec374"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 11 11:11:13 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Oct 17 12:17:28 2018 -0700"
      },
      "message": "ART: Refactor for bugprone-argument-comment\n\nHandles libartbase, libdexfile and libprofile.\n\nBug: 116054210\nTest: WITH_TIDY\u003d1 mmma art\nChange-Id: Ibeee2446e2978af45402d9ca47c75ffc438de316\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": "fc4b2eaa427e43a51c6f39ffecac0ef4fa732b61",
      "tree": "b6bc4cd9bc846ae40eac280dbc2c9514e05a0f7b",
      "parents": [
        "26f048f48cdb1e884aab2b6fddf26d58346d29ad",
        "c55bb390d88b8eb62a50932f7f9b47c2a3733f16"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 25 00:36:43 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 25 00:36:43 2018 +0000"
      },
      "message": "Merge \"Revert^2 \"ART: Refactor typedef to using\"\""
    },
    {
      "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": "c55bb390d88b8eb62a50932f7f9b47c2a3733f16",
      "tree": "ec2e74f3f8404dffcb9bfde4e7ffa3416a35543d",
      "parents": [
        "89468aeaa6a67ae4025b30d427391186306d6522"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 21 00:02:02 2018 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 20 18:37:12 2018 -0700"
      },
      "message": "Revert^2 \"ART: Refactor typedef to using\"\n\nThis reverts commit ee07743e03042c2ca36e0c9513847a9e7d2509f1.\n\nReason for revert: fixed attributes.\n\nBug: 32619234\nTest: m test-art-host\nTest: m test-art-target-gtest-unstarted_runtime_test\nChange-Id: I6f0a775adfdf6ecd132b470f7c5446e949872e20\n"
    },
    {
      "commit": "ee07743e03042c2ca36e0c9513847a9e7d2509f1",
      "tree": "66867d7443a3798f6d882ef2715ddeb7baf3e771",
      "parents": [
        "9a20ff06f7ccee08a742c315ec6d351ab56ba1cd"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 20 15:05:17 2018 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 20 15:05:17 2018 +0000"
      },
      "message": "Revert \"ART: Refactor typedef to using\"\n\nThis reverts commit 9a20ff06f7ccee08a742c315ec6d351ab56ba1cd.\n\nReason for revert: Attributes on the wrong side.\n\nBug: 32619234\nChange-Id: I8fd2abef619b22c02ccfbf5ae629339f1a60918b\n"
    },
    {
      "commit": "9a20ff06f7ccee08a742c315ec6d351ab56ba1cd",
      "tree": "7e55557e118eb5fffe03ad3456e00d8469a36232",
      "parents": [
        "70dfb6983492aff1c52cc1b52044258aef51f47f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 19 10:58:18 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 19 21:56:32 2018 -0700"
      },
      "message": "ART: Refactor typedef to using\n\nAdd clang-tidy\u0027s modernize-use-using.\n\nBug: 32619234\nTest: WITH_TIDY\u003d1 mmma art\nChange-Id: If50d37b5152af4270784e3cde7951292a9e19033\n"
    },
    {
      "commit": "9f5910cc017704ad00a124519dbf02e6de801793",
      "tree": "f92ed0463c149b272f00b13630e18c6f88656bc2",
      "parents": [
        "adf05bc481b7639ca1397c5e92ffbc301a38518f",
        "6c2cfb525fd0ec0d2da56407dfbadaba711f03b9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 14 10:50:27 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 14 10:50:27 2018 +0000"
      },
      "message": "Merge \"Add a --whitelist and --only-report-sdk-uses to veridex.\""
    },
    {
      "commit": "6c2cfb525fd0ec0d2da56407dfbadaba711f03b9",
      "tree": "e56745efbec75138eefea7b2ba0caf99ee913afc",
      "parents": [
        "7dca45b9677c16a54347cdc0d08bfa2bdd94b464"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 13 14:16:24 2018 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 14 08:40:22 2018 +0100"
      },
      "message": "Add a --whitelist and --only-report-sdk-uses to veridex.\n\nIn order to list SDK uses.\n\nbug: 112978171\nTest: manual\nChange-Id: Ic2b36d6e8a3e07d3ec7001ed24888bd390219a85\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": "8583bec99a94c47831da2a54bd097ecf1f08347a",
      "tree": "2fa8c70e44ba3e95a0b52c3a427224494694a8c9",
      "parents": [
        "9c987cac63304d3a9efef800e25cd86f313c1b09"
      ],
      "author": {
        "name": "Anestis Bechtsoudis",
        "email": "anestis@census-labs.com",
        "time": "Sat Sep 08 22:32:29 2018 +0300"
      },
      "committer": {
        "name": "Anestis Bechtsoudis",
        "email": "anestis@census-labs.com",
        "time": "Mon Sep 10 23:21:28 2018 +0300"
      },
      "message": "oatdump: Convert cdex before exporting dex files\n\nUse DexLayout to convert the compact dex files inside a vdex container\nback to a standard dex file before exporting. There is limited benefit\nwhen exporting a cdex file since it is an art internal format that is\nnot supported from most dex parsers/tools. Backwards compatibility is\nstill maintained, although not really useful since the oat loader will\nreject files of different versions.\n\nAlso since commit 734806, the VdexFile::UnquickenDexFile() is no longer\nimplementing apis unhiding. Therefore, the oatdump should manually\nunhide them before exporting. Otherwise the verifier will complain\nwhen reading the exported standard dex files.\n\nThis feature is mostly useful when inspecting oat files that have the\noriginal bytecode being stripped from the matching archive (apk, jar).\n\nTest: oatdump --oat-file\u003dservices.odex --export-dex-to\u003d/tmp \\\n      --header-only \u0026\u0026 dexdump2 /tmp/services.jar_export.dex (manual)\nTest: test-art-host-gtest\n\nChange-Id: Ide79c5b778f1d6d6b4e58a95811e66cccb20735e\nSigned-off-by: Anestis Bechtsoudis \u003canestis@census-labs.com\u003e\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": "675e0a545b04a392a0026d7ce9c67222d717f7bc",
      "tree": "48f19fcfb2f41b5d114071fc9c6cc7405aa3db67",
      "parents": [
        "7f00f5a1fa25f9b6414905983e7ac2739f662615"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Aug 30 17:29:00 2018 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Aug 30 18:26:27 2018 -0700"
      },
      "message": "Fix various not so benign fdsan errors.\n\nBug: http://b/113558485\nTest: art/test.py --target --gtest\nChange-Id: Ic376ec33fff30a239d978e40b0c48966c6d0a9c2\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": "c34bebf39410f5571d3d5813157b61f274d435c3",
      "tree": "73909d3b34a2908e9de44cc60c4a2ff74eabefd7",
      "parents": [
        "f345404c725330914b8313d2c1af17226c5b92ca"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Aug 16 16:12:49 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Aug 21 13:51:00 2018 +0100"
      },
      "message": "Remove unnecessary indirection from MemMap.\n\nAvoid plain MemMap pointers being passed around by changing\nthe MemMap to moveable and return MemMap objects by value.\nPreviously we could have a valid zero-size MemMap but this\nis now forbidden.\n\nMemMap::RemapAtEnd() is changed to avoid the explicit call\nto munmap(); mmap() with MAP_FIXED automatically removes\nold mappings for overlapping regions.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: Pixel 2 XL boots.\nTest: m test-art-target-gtest\nTest: testrunner.py --target --optimizing\nChange-Id: I12bd453c26a396edc20eb141bfd4dad20923f170\n"
    },
    {
      "commit": "4b233677a7b83e7961ba605191909c9d40b507e7",
      "tree": "3bbb6cd8e8db9ae5b042d6574b02426de95d2172",
      "parents": [
        "921e51710566d68cf0d5504bcb19f9ec4fee3f87"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 08 10:06:44 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 08 10:08:24 2018 -0700"
      },
      "message": "Delete ClassDataItemIterator\n\nNo longer required.\n\nBug: 79758018\nTest: test-art-host\nChange-Id: Ieb3e5d27dbcb4697052a1ae43dafbd268506277b\n"
    },
    {
      "commit": "396dc08833659c78409567b28f7bb25e9254fbb0",
      "tree": "22e8989313c1040e47e010077d6d144ab08c34f1",
      "parents": [
        "0d3f480343f00d971ec55b197b0825a540777e32"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Aug 06 12:29:57 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 07 13:44:46 2018 -0700"
      },
      "message": "Move hiddenapi to ClassAccessor\n\nTest: test-art-host\nBug: 79758018\n\nChange-Id: Ib0848cc69ffaa7735f43d88e9719cc43953e4a93\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": "4b22b34c698db8aa59343d0a5af89fc737532bce",
      "tree": "985c0e28dcdf5a497737690b50d31c4eb7bbda85",
      "parents": [
        "9e53f5f19167848d043f91e6d20436e9b568b55a"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Thu Aug 02 14:43:21 2018 -0700"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Thu Aug 02 14:43:21 2018 -0700"
      },
      "message": "Modernize codebase by replacing NULL with nullptr\n\nFixes -Wzero-as-null-pointer-constant warning.\n\nTest: m\nBug: 68236239\nChange-Id: Id869744db54b5b366454a5e13b467ac1f4df2845\n"
    },
    {
      "commit": "efcdd13a3d820aa084ed4255196da1363cf9e5cf",
      "tree": "59d28153d72bef9cd11cacd8f56cf021a3b239b0",
      "parents": [
        "eeac119a22b09496eb66109c906df6a5243eac36",
        "a34812c0801b8b991b5b5b1d0d5e5a4ccf2bf0ac"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 02 16:54:56 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 02 16:54:56 2018 +0000"
      },
      "message": "Merge \"Move dex_file_verifier_test and dexlayout to ClassAccessor\""
    },
    {
      "commit": "350b6a312222b9b27bfee0e72ce261a45cb60e1c",
      "tree": "ca740698a94e6cdd106c52311430917ac68f16ec",
      "parents": [
        "605339045d347074b9149c0185fe2ca7fafe470d",
        "759fea2974699e8dea2bcfbe319a932ff3654810"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Aug 02 07:58:51 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 02 07:58:51 2018 +0000"
      },
      "message": "Merge \"ART: Improve IsValidMemberName\""
    },
    {
      "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": "759fea2974699e8dea2bcfbe319a932ff3654810",
      "tree": "1dd4ff3b891344523698ccc51d718ec9f434ae72",
      "parents": [
        "72fb8639a61e100dcc39645c35a5c3e394ab0eba"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Aug 01 14:41:11 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Aug 01 14:49:02 2018 -0700"
      },
      "message": "ART: Improve IsValidMemberName\n\nForce inlining of the fast-path IsValidPartOfMemberNameUtf8.\n\nperf stat of dexdump -c of a large app,\n  before:\n     4,867,415,428      instructions:u\n     1,089,412,280      branches:u\n        26,880,249      branch-misses:u\n  after:\n     4,425,845,396      instructions:u\n       978,781,201      branches:u\n        26,585,670      branch-misses:u\n\nTest: m test-art-host\nChange-Id: I5b96a9fa4c3f2ec70126c4931e01f30b5e8a1172\n"
    },
    {
      "commit": "c49e8f29ead62e4d832cd7243a7bd9f493faab43",
      "tree": "ae9e9283fb4b1eff5ee559cfe4e7f0119477b38e",
      "parents": [
        "537dd4a3c0f6369de716787ecc6f3effa7822ea6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jul 19 17:00:36 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 01 14:06:45 2018 -0700"
      },
      "message": "Move DexFileVerifier to ClassAccessor\n\nTest: test-art-host\nBug: 79758018\n\nChange-Id: I57cc324a26c51909fc2535f1c471c42ccb670c58\n"
    },
    {
      "commit": "94c54de5c510415d0cc9d13eb2c9fe29e8b586f5",
      "tree": "bca4435bb901748315c6112a91be4e0638c7c3cf",
      "parents": [
        "9acb522e35e3302786a338c7f50585dd412d68d3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jul 26 22:38:47 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jul 27 10:16:06 2018 -0700"
      },
      "message": "Move dex_file_tracking_registrar and art_dex_file_loader_test to class_accessor\n\nTest: test-art-host\nBug: 79758018\n\nChange-Id: Ic114d407697176be55c89adf4486cd63fc018844\n"
    },
    {
      "commit": "4ac9ade09d796ce4fc866a02d05c1fba64578f78",
      "tree": "4b6894e379bb224dc86141acf573949c37af24c4",
      "parents": [
        "c19adea473a8415adcbdeb8eedb1245d4ae92351"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jul 24 10:27:21 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jul 24 17:42:44 2018 -0700"
      },
      "message": "Move dexdump, dexlist, openjdkjvmti to ClassAccessor\n\nTest: test-art-host\nBug: 79758018\n\nChange-Id: Iecdcf81b9dd2fa5cd938579847d4934467abf813\n"
    },
    {
      "commit": "98dad409dc3b1b54a2e514710a7fc60084629b7f",
      "tree": "2c7791ca4eb8dc085dc7fc0e453b32e9e8b1b513",
      "parents": [
        "fe62f672694a70d151d0b55bbce718b5d66a5f5a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 04 18:00:12 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jul 23 17:08:30 2018 -0700"
      },
      "message": "Finish moving oatdump to ClassAccessor\n\nMoved one remaining part of oatdump/ to class accessor.\n\nBug: 79758018\nTest: test-art-host\n\nChange-Id: I7a1abfa9547658f1e9349c09f2c088bdc820af85\n"
    },
    {
      "commit": "6250dfa22577160b270f3f3165260739707cf7d3",
      "tree": "2b68128ea361e61d1186252a5ba1e98277fc9585",
      "parents": [
        "125a47c0d5c77894eeef2229ec26e72a42bfa5e5",
        "e166facea335b9adcff7717d6d30150a41718668"
      ],
      "author": {
        "name": "Dario Freni",
        "email": "dariofreni@google.com",
        "time": "Fri Jul 20 08:59:35 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 20 08:59:35 2018 +0000"
      },
      "message": "Merge \"Add a public error code to DexFileLoader::OpenAll.\""
    },
    {
      "commit": "bd39d145e4986217bcb8dce1d4a9631d926a2781",
      "tree": "52dfd3307ab5279e960f9a1bf6e474e47440a3d8",
      "parents": [
        "6f4cf6e8fa15de2f9bf7c6a649ea7a2fabef886a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jul 19 11:14:42 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jul 19 11:37:05 2018 -0700"
      },
      "message": "ART: Clean up unused using declarations\n\nMake tidy happy, and enable checking.\n\nTest: mmma art\nChange-Id: I9e18e80b3f37dd2aeb8ecd1c25abe4d5cf2f1c45\n"
    },
    {
      "commit": "e166facea335b9adcff7717d6d30150a41718668",
      "tree": "fee3bff71f8820141c6f58b9e733677c9c0e906e",
      "parents": [
        "6743f1ebd4a1a266896541acb5c4dde1f78e708f"
      ],
      "author": {
        "name": "Dario Freni",
        "email": "dariofreni@google.com",
        "time": "Mon Jul 16 11:08:03 2018 +0100"
      },
      "committer": {
        "name": "Dario Freni",
        "email": "dariofreni@google.com",
        "time": "Thu Jul 19 16:12:13 2018 +0100"
      },
      "message": "Add a public error code to DexFileLoader::OpenAll.\n\nSome of the APKs in the build system don\u0027t contain any dex file (e.g.\nthey are only there to test that PackageManager can install them).\nUsers of this library (e.g. veridex) can now verify the error condition\nto determine whether they should just skip the file or propagate the\nerror.\n\nTest: m test-art-host-gtest; ran veridex on an APK without classes.dex\nBug: 110073830\nBug: 78924201\nChange-Id: I65b6a5aa8abb404a77b90352dd066fb0dff36955\n"
    },
    {
      "commit": "c1528176838174896afc001c3ebbc8b8ba06412c",
      "tree": "e7f33e67f9eed91266829449396f90ee9a3ef1e9",
      "parents": [
        "848f0d9782e467deb35b0ad3a904aeefbc9ef802"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 10 17:19:00 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 10 17:19:00 2018 -0700"
      },
      "message": "ART: Correctly compare in UTF-16 space\n\nWhen trying to cache the locations of constructor names, actually\ntake care of using UTF-16 comparison, as the string table may\ncontain strings with UTF-16 codepoints that are incompatible with\nstrcmp.\n\nAdd a crafted test to dex_file_verifier_test\n\nBug: 110157789\nBug: 78568168\nTest: m test-art-host\nChange-Id: Ifce56e53522eac2d421b316761ef0adfe341a5b9\n"
    },
    {
      "commit": "0e4563c4ccd3a36dff11c33fc98aa9cedae722e4",
      "tree": "c64221847df3d435cf0c5633a60380bad2719df4",
      "parents": [
        "0162450a86c1586c8e0d28710ea0280bfa64ae32",
        "0b6de0c0de6c760a6bdd45a37e92055f662ad4ff"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Jul 04 13:13:02 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 04 13:13:02 2018 +0000"
      },
      "message": "Merge \"hiddenapi: Add \u0027list\u0027 command to generate public/private API lists\""
    },
    {
      "commit": "0b4267720380ca746abb9090364cea9ee6cb1435",
      "tree": "3e330d7241d5608858b9084a246a4bb8b88b070f",
      "parents": [
        "7583d915800ad330da0232dfdb0a4d1bda2d074c"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Jul 03 23:03:42 2018 +0000"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Jul 03 23:03:56 2018 +0000"
      },
      "message": "Revert \"Refactor DexFile ownership\"\n\nThis reverts commit b095f022a9683a9123018c01e22595cf969fd88b.\n\nReason for revert: Caused huge interpreter performance regression.\n\nChange-Id: I0f27f8f234d315807695362bf679ef47f68723f7\n"
    },
    {
      "commit": "7583d915800ad330da0232dfdb0a4d1bda2d074c",
      "tree": "2a22fcf9783d34fb8ed51527541daebfeaf184ac",
      "parents": [
        "1398c8fe04673bc1cff6811c9017368fb8d4bb99",
        "9bafa8b8abeafb36b2d791e89df65c4a3b74fd54"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Jul 03 23:03:19 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 03 23:03:19 2018 +0000"
      },
      "message": "Merge \"Revert \"Cache DexFile begin and size\"\""
    },
    {
      "commit": "9bafa8b8abeafb36b2d791e89df65c4a3b74fd54",
      "tree": "851fd56078bdff9edb4a8354c8695fc5c7bda2f4",
      "parents": [
        "689caf046cb99efda4462183eeaacb11a6119adb"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Jul 03 21:19:34 2018 +0000"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Jul 03 21:19:34 2018 +0000"
      },
      "message": "Revert \"Cache DexFile begin and size\"\n\nThis reverts commit 689caf046cb99efda4462183eeaacb11a6119adb.\n\nReason for revert: Did not fix regression caused by prior CL.\n\nChange-Id: I8a01bacfa98539d2980095c445cd580d73e39975\n"
    }
  ],
  "next": "0b6de0c0de6c760a6bdd45a37e92055f662ad4ff"
}
