)]}'
{
  "log": [
    {
      "commit": "885f0c14dc5c7770b894cac5742e3519b7d9de5b",
      "tree": "c0bdf76d1d1743b5fe26a9b02fa5d7bad1ed8e48",
      "parents": [
        "edad2aaa63d3db34960175a2f54b684dab2eb402"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jan 09 13:48:55 2019 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jan 09 13:48:55 2019 -0800"
      },
      "message": "Fix erroneous section label in oatdump\n\nAt some point the 7th root in an images root table became\nkSpecialRoots. The stringify array in oatdump was not updated however\ncausing it to be incorrectly labeled as kClassLoader.\n\nTest: m oatdump\nTest: oatdump --image\u003d/system/frameworks/boot.oat\nChange-Id: I71dd1223704fc8bb759f43f599fad19119a76782\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": "0ace5633680af8864b76b4f45d63b3407e4dcdf5",
      "tree": "526435a2877d3d04eaa471238b4efd37a347d05d",
      "parents": [
        "d97e00c4f6e8735a854f4443b8bd08fc5a251ce5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 14 11:11:47 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 14 13:12:15 2018 +0000"
      },
      "message": "Revert^2 \"Allow boot image for a part of the boot classpath.\"\n\nThis reverts commit fb83d76a8b186df05f874216b535f5ad57e7bd02.\n\nFixed host run-test dependencies, cleaned up target run-test\nand gtest dependencies.\n\nTest: rm -f out/host/linux-x86/framework/conscrypt-hostdex.jar\n      testrunner.py -b --host --optimizing -t 660-clinit\nBug: 119868597\nChange-Id: Ia0a5aba0223ae6616bf3e109daf0af7b8355d048\n"
    },
    {
      "commit": "fb83d76a8b186df05f874216b535f5ad57e7bd02",
      "tree": "f3db51fcd564929652433e7182eda9ebc7a9bc29",
      "parents": [
        "4433c4351aab98005e12a6b53905678758b74665"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 13 23:30:25 2018 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 13 23:30:25 2018 +0000"
      },
      "message": "Revert \"Allow boot image for a part of the boot classpath.\"\n\nThis reverts commit 4433c4351aab98005e12a6b53905678758b74665.\n\nReason for revert: May be breaking tests.\n\nChange-Id: I3b690dbb06278dc1adce5a389fff938a692bdebd\n"
    },
    {
      "commit": "4433c4351aab98005e12a6b53905678758b74665",
      "tree": "fecf5b03a081dc78df4b058210bb4935d2f7c75c",
      "parents": [
        "6b36d8025de5237b57e7bf23033bfc61a112d6cd"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Dec 04 14:57:47 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Dec 12 16:18:56 2018 +0000"
      },
      "message": "Allow boot image for a part of the boot classpath.\n\nInstead of recording a single uint32_t boot image checksum\nin the oat header, store a string representing composite\nboot class path checksums in the key-value store.\n\nWhen checking the boot class path while loading the boot\nimage, allow the boot class path to contain more components.\nThe runtime shall then load the additional dex files from\nthese components.\n\nTest: Exclude conscrypt from the the core image modules.\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\nTest: run-libcore-tests.sh --mode\u003dhost --variant\u003dX64\nTest: run-libcore-tests.sh --mode\u003ddevice --variant\u003dX64\nTest: run-jdwp-tests.sh --mode\u003dhost --variant\u003dX64\nTest: run-jdwp-tests.sh --mode\u003ddevice --variant\u003dX64\nBug: 119868597\nChange-Id: Ia872fdedea0570ace2c8e597ddb3c6f63a43e62a\n"
    },
    {
      "commit": "91f1032505cfaec3aef51fc0a3085b213813f0ed",
      "tree": "6469e772d9fb562d26dc1d22dd0b71844bbb743f",
      "parents": [
        "573b3877fac3c5a4a9703301502694fe7219b21c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 07 18:04:10 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 07 18:13:55 2018 +0000"
      },
      "message": "Revert^2 \"Pass boot class path to ImageSpace::LoadBootImage.\"\n\nThis reverts commit db4b1deebf425be5f1d0f597d1ef540f19908324.\n\nFixed JDWP tests, see \"Test:\" stanzas below.\n\nChange-Id: I6fb56ac990b78164cbd3f93c9f6df66e0dd9a813\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\nTest: run-libcore-tests.sh --mode\u003ddevice --variant\u003dX64\nTest: run-jdwp-tests.sh --mode\u003dhost --variant\u003dX64\nTest: run-jdwp-tests.sh --mode\u003ddevice --variant\u003dX64\nBug: 119868597\n"
    },
    {
      "commit": "db4b1deebf425be5f1d0f597d1ef540f19908324",
      "tree": "5851aab8a4d71b49dbd272b822bfd1ae2cbd08df",
      "parents": [
        "e3c6dfe2009d2fad6f8e4401cb17935bdd09ab9e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 07 17:18:07 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 07 17:23:26 2018 +0000"
      },
      "message": "Revert \"Pass boot class path to ImageSpace::LoadBootImage.\"\n\nThis reverts commit d19085141ad9c71eae1b0ff585999ac8e27dadd4.\n\nAlso squash a revert of\n    Fix oatdump tests on target.\n    (commit 77eea0898aca2881a87afd177a0422870c39a318)\n\nReason for revert: Broke JDWP tests.\nBug: 119868597\nChange-Id: I005097d2d96014c961e5a4c0b089e7675004febc\n"
    },
    {
      "commit": "77eea0898aca2881a87afd177a0422870c39a318",
      "tree": "a64d11a2f73016ec6a742ac99bcfb7ebbe93618a",
      "parents": [
        "a6dd280a61bdb09f608dd920d23394a5b6223ef4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 07 10:40:03 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 07 10:46:43 2018 +0000"
      },
      "message": "Fix oatdump tests on target.\n\nFix tests broken by\n    https://android-review.googlesource.com/835240\n\nAs these are currently TEST_DISABLED_FOR_ARM_AND_MIPS,\nwe hit these failures only on fugu on buildbot.\n\nTest: m test-art-host-gtest\nTest: m test-art-target-gtest  # With manually enabled tests.\nBug: 119868597\nChange-Id: If365fc8b8feae4b6cf95f8fd5bab83ad952cb281\n"
    },
    {
      "commit": "7a85e70b2bf646d1d7a226fbb4e7fafb66871dd5",
      "tree": "790ee4c1cee812535c856a08355c50c2032c5cd4",
      "parents": [
        "6a98f89c4ad645b04d6c80d3d7e260c59bf6f193"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 03 18:47:23 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Dec 04 17:17:19 2018 +0000"
      },
      "message": "Reduce core image to 6 modules.\n\nThis was\n    Revert^2 \"Reduce core image to core-{oj,libart,simple}.\"\nbut we\u0027re now keeping three additional modules, namely\nconscrypt, okhttp and bouncycastle. And we fix the boot\nclass path used by vogar with the companion change\n    https://android-review.googlesource.com/840810 .\n\nThis reverts commit 00fe35e4021e9a8679eca3ffaede48fd89b56258.\n\nChange-Id: I6137edd91c03c17be50de200267eb9adc971e8fb\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: Pixel 3 XL boots.\nTest: m test-art-target-gtest\nTest: testrunner.py --target --optimizing\nTest: art/tools/run-libcore-tests.sh --mode\u003ddevice --variant\u003dX64\nBug: 119868597\n"
    },
    {
      "commit": "ee45798b02c3a9fffa9c4b5c1fe0fe03a423df66",
      "tree": "61054ce8dae4b30654d41a1ba2f1394ef1c28484",
      "parents": [
        "9f27ffa9031431267ae59ee3469c853355811916",
        "00fe35e4021e9a8679eca3ffaede48fd89b56258"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 03 18:44:49 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 03 18:44:49 2018 +0000"
      },
      "message": "Merge \"Revert \"Reduce core image to core-{oj,libart,simple}.\"\""
    },
    {
      "commit": "00fe35e4021e9a8679eca3ffaede48fd89b56258",
      "tree": "7db00623bf74e8f37a87fcc653c37191b6d37024",
      "parents": [
        "ec91d48cade73c54f7a03c5d53d863bc2490976e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 03 18:43:54 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 03 18:43:54 2018 +0000"
      },
      "message": "Revert \"Reduce core image to core-{oj,libart,simple}.\"\n\nThis reverts commit ec91d48cade73c54f7a03c5d53d863bc2490976e.\n\nReason for revert: Breaks libcore tests.\n\nChange-Id: I0ea55f74635332177eadd9a69fb831e7f5dc16c7\n"
    },
    {
      "commit": "e239cdc2239b69199d2eab4b2943636be8ceb2ba",
      "tree": "4f53232e73c9feaf60c0dcf123068875afd26a9e",
      "parents": [
        "8bda21f1d8bbc1060bf693f5d1666d3396d1cb69",
        "ec91d48cade73c54f7a03c5d53d863bc2490976e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 03 14:50:46 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 03 14:50:46 2018 +0000"
      },
      "message": "Merge \"Reduce core image to core-{oj,libart,simple}.\""
    },
    {
      "commit": "ec91d48cade73c54f7a03c5d53d863bc2490976e",
      "tree": "4980bf99ae69cab7c733aa442aa4bf42f2d42f17",
      "parents": [
        "0776942115cdf9610ad06cc673feebceb8de3c30"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 29 12:17:11 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 30 13:18:44 2018 +0000"
      },
      "message": "Reduce core image to core-{oj,libart,simple}.\n\nAnd pass the -Xbootclasspath: and -Xbootclasspath-locations:\noptions to tests. This eliminates a discrepancy between the\nimage and boot class path (BCP). Next CL shall check the\nBCP stored in the primary boot image oat file against the\nBCP from the runtime.\n\nUse actual *-hostdex.jar/*-testdex.jar files for compiling\nthe core.art. Since conscrypt, okhttp and bouncycastle have\nthe dex files actually stripped from their *-testdex.jar,\nthey are unsuitable for compilation, adding another reason\nto not include them in the core image. For consistency, use\nthe same jars for core image on host.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: Pixel 3 XL boots.\nTest: m test-art-target-gtest\nTest: testrunner.py --target --optimizing\nBug: 119868597\nChange-Id: Iccc152ea0d5b3bd9878aa214cc649762f8f4ea9c\n"
    },
    {
      "commit": "1a8429680f9d08d5f2b49fd93f9ad4df81b7cb66",
      "tree": "75bb0ef44acf50a3108e85529f0495176afbced9",
      "parents": [
        "f2970cd870948a6ee1c8ecd30c9c3147d05aa0be"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 13 15:09:51 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 29 17:01:44 2018 -0800"
      },
      "message": "Add image compressed blocks\n\nAdd support for splitting the image into a set of solid blocks.\n\nAdded dex2oat option --max-image-block-size and correspodning image\nunit test.\n\nMotivation: Enable parallel image decompression in the future.\n\nBug: 116052292\nTest: test-art-host\n\nChange-Id: I37c6c6a43ef94c4a62bf38a0cf51f26ce06347ac\n"
    },
    {
      "commit": "0c78ef7f2e8f010311ce9c0715b1ab3fe28f68f6",
      "tree": "97755cc52e33418aacfd1cc5ebbf061085dec780",
      "parents": [
        "5a78e8dbf068c544b84e98f636b30045b09451c4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 21 14:09:35 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 21 16:47:03 2018 +0000"
      },
      "message": "Remove boot image begin/size from image header.\n\nUse a single boot image range for both the heap (*.art) and\ncode (*.oat) boot files.\n\nThis is done in preparation for boot image extensions. We do\nnot want to encode multiple heap and code ranges and shall\nkeep a single boot image range for the boot image including\nextensions.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 119868597\nChange-Id: I8baec8361602c445652e69bdfbb57e7a7c7c6419\n"
    },
    {
      "commit": "c10a0c60ca388ea5f45c11dd86ca0af11191015a",
      "tree": "8befa85940f28ca1c764e211f6f269daf184d28c",
      "parents": [
        "d52a6f402fac600e7432cfd59a1298659625a6d3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 16 11:39:22 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 21 11:23:38 2018 +0000"
      },
      "message": "ART: Add boot/app image checksums.\n\nAnd check app oat files against the boot image checksum\ninstead of checking the oat checksum. The oat checksums are\nincluded in image checksum calculations and the primary\nimage checksum calculation includes the checksums of the\nsecondary images.\n\nAlso remove the obsolete \"patch delta\" to keep the size\nof the ImageHeader 8-byte aligned, remove the key-value\nstore from secondary oat files and move the oat checksum\nupdate code from oat.cc to the oat_writer.cc.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nTest: Pixel 2 XL boots.\nTest: m test-art-target-gtest\nChange-Id: If74f5f18479c44ede0503bf1911ddb9ff8f3c4f8\n"
    },
    {
      "commit": "12dd9aee74a588bf31f151cebba930849b4baceb",
      "tree": "9d04404a17b4f3e5e9e2b1150fc575a74ecd37c2",
      "parents": [
        "5725e7c4aab576384649de60557dc1f52eb21b9f"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Nov 06 13:32:06 2018 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Nov 06 14:31:16 2018 +0000"
      },
      "message": "Use unified libvixl(d) instead of per-supported-arch libvixl(d)-arm(64).\n\nUsing a unified libvixl(s) saves space by sharing code that was common\nto libvixl(d)-arm and libvixl(d)-arm64 and also addresses multiple\ndefinitions issues that would cause ODR violations.\n\nTest: 32-bit-only device boot test\nTest: 32/64-bit device boot test\nChange-Id: I1d67c43897e08bc0f5743eb038fe574ce2fb54f3\n"
    },
    {
      "commit": "69ebc8fcfb2eb13b17209068c05f5f7add882294",
      "tree": "94905d092f5189ea18eabf325a602b94ef590a34",
      "parents": [
        "0ee508253edcdee41a80fcbf1511234ca176233d",
        "1ca718ec2de53fb5ef2a9211bfcc921311775c90"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 30 17:22:51 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 30 17:22:51 2018 +0000"
      },
      "message": "Merge \"Add PreResolved strings dex cache array\""
    },
    {
      "commit": "1ca718ec2de53fb5ef2a9211bfcc921311775c90",
      "tree": "f5ce8c3f4edd022765c343cc5a9df8ebd292f0ec",
      "parents": [
        "ce2a00daa92670a4fc01ef59fdbc3769a846f69c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 23 12:55:34 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 30 16:03:00 2018 +0000"
      },
      "message": "Add PreResolved strings dex cache array\n\nFor app images, this dex cache may be prepopulated to speed up\napplication startup. This new dex cache array is created when\n--resolve-startup-const-strings\u003dtrue.\n\nTest: test-art-host\nBug: 116059983\nBug: 118385560\n\nChange-Id: I379dc15174281665d7f4ceb106f7fbf51f89b921\n"
    },
    {
      "commit": "20c765f645fa9be77e045463c5064d41211a2815",
      "tree": "dcb9dfb6bf5363d1e933589f22339dc999b96703",
      "parents": [
        "ce2a00daa92670a4fc01ef59fdbc3769a846f69c"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Sat Oct 27 21:45:15 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Sun Oct 28 20:00:03 2018 +0000"
      },
      "message": "Revert^4: Add dex item for hiddenapi flags\n\nMove hiddenapi access flags to own data section so as to:\n(a) increase amount of information stored per method/field\n(b) use encoding which can be supported long-term.\n\nThe dex item is implemented as:\n - array of offsets indexed by class def index\n - streams of uleb-128 encoded flags.\nOffsets in array point to the beginning of the flags stream\nfor the given class def. Flags are encoded in the same order\nas fields and methods are encoded in class data. Zero offset\nmeans that the class either does not have class data, or all\nof its flags are zero.\n\nThe patch updates:\n(a) libdexfile with data structure declarations and accessor\n    methods,\n(b) hiddenapi tool to create the new item from hiddenapi lists\n    and insert it into the given dex file,\n(c) dexlayout to copy the flags into compact dex,\n(d) dex file verifier to verify the item.\nIt also removes skipping of verification for boot class path\ndex files as those now pass DexFileVerifier, and removes the\nneed for removing the flags for JVMTI.\n\nThe size increase is 450 KB.\n\nThis reverts commit d33d318685ec4a1c9e7995c914c104ab6487513b.\n\nChange-Id: Id00e0efb38ee1eab8d7ed5c645a7778b6b94b849\nTest: phone boots\nTest: m test-art\n"
    },
    {
      "commit": "d33d318685ec4a1c9e7995c914c104ab6487513b",
      "tree": "3bb8a93f499ac537d445e90533598571f3d2d120",
      "parents": [
        "fe3a979f6214e2ea94a9aed4c573c6a6f64c7096"
      ],
      "author": {
        "name": "Luman Qu",
        "email": "quluman@google.com",
        "time": "Fri Oct 26 16:53:25 2018 +0000"
      },
      "committer": {
        "name": "Luman Qu",
        "email": "quluman@google.com",
        "time": "Fri Oct 26 16:53:25 2018 +0000"
      },
      "message": "Revert \"Revert^2: Add dex item for hiddenapi flags\"\n\nThis reverts commit fe3a979f6214e2ea94a9aed4c573c6a6f64c7096.\n\nReason for revert: Caught by droidcop https://b.corp.google.com/issues/118481351\n\nChange-Id: I17cc3586c9ae3b49839633d9543edce2937c388d\n"
    },
    {
      "commit": "fe3a979f6214e2ea94a9aed4c573c6a6f64c7096",
      "tree": "b31c1748dcd30a5bf76c2186b4c0124fb18b9dd6",
      "parents": [
        "d9a0437b0d6cb1438bf21284a2502cbfe293db06"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Oct 25 17:24:38 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Oct 25 17:25:17 2018 +0000"
      },
      "message": "Revert^2: Add dex item for hiddenapi flags\n\nMove hiddenapi access flags to own data section so as to:\n(a) increase amount of information stored per method/field\n(b) use encoding which can be supported long-term.\n\nThe dex item is implemented as:\n - array of offsets indexed by class def index\n - streams of uleb-128 encoded flags.\nOffsets in array point to the beginning of the flags stream\nfor the given class def. Flags are encoded in the same order\nas fields and methods are encoded in class data. Zero offset\nmeans that the class either does not have class data, or all\nof its flags are zero.\n\nThe patch updates:\n(a) libdexfile with data structure declarations and accessor\n    methods,\n(b) hiddenapi tool to create the new item from hiddenapi lists\n    and insert it into the given dex file,\n(c) dexlayout to copy the flags into compact dex,\n(d) dex file verifier to verify the item.\nIt also removes skipping of verification for boot class path\ndex files as those now pass DexFileVerifier, and removes the\nneed for removing the flags for JVMTI.\n\nThe size increase is 450 KB.\n\nThis reverts commit d9a0437b0d6cb1438bf21284a2502cbfe293db06.\n\nTest: phone boots\nTest: m test-art\nChange-Id: I224bf1b587529f36ea00a666680c4e4c8ca16a42\n"
    },
    {
      "commit": "d9a0437b0d6cb1438bf21284a2502cbfe293db06",
      "tree": "3bb8a93f499ac537d445e90533598571f3d2d120",
      "parents": [
        "fd2aa2bf72563870c9261f248f992a20ac4837a8"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Oct 24 12:34:06 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Oct 24 12:37:49 2018 +0000"
      },
      "message": "Revert \"Add dex item for hiddenapi flags\"\n\nThis reverts commit 0dbc363f32d075017e1c4fb5e17715e3f12d0157.\n\nReason for revert: marlin running out of space\n\nChange-Id: I80218af6408812b639b7c807bf8cb2a1d5239d94\n"
    },
    {
      "commit": "cd98cde0642e664ae2396555c5d90c0a44c77ba7",
      "tree": "69790ce15b0d5c213669cab12108b8f33f2f6f9f",
      "parents": [
        "349d1377aa300512177729e7988d824b67638552",
        "0dbc363f32d075017e1c4fb5e17715e3f12d0157"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Oct 24 09:19:00 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 24 09:19:00 2018 +0000"
      },
      "message": "Merge \"Add dex item for hiddenapi flags\""
    },
    {
      "commit": "0dbc363f32d075017e1c4fb5e17715e3f12d0157",
      "tree": "950dfed748f63863db6b95d7b854940171b544c6",
      "parents": [
        "62ada4cd2c9a7ef5d1ab4c538d660f8a6a7f7571"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Sep 10 09:14:30 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Oct 23 14:51:01 2018 +0100"
      },
      "message": "Add dex item for hiddenapi flags\n\nMove hiddenapi access flags to own data section so as to:\n(a) increase amount of information stored per method/field\n(b) use encoding which can be supported long-term.\n\nThe dex item is implemented as:\n - array of offsets indexed by class def index\n - streams of uleb-128 encoded flags.\nOffsets in array point to the beginning of the flags stream\nfor the given class def. Flags are encoded in the same order\nas fields and methods are encoded in class data. Zero offset\nmeans that the class either does not have class data, or all\nof its flags are zero.\n\nThe patch updates:\n(a) libdexfile with data structure declarations and accessor\n    methods,\n(b) hiddenapi tool to create the new item from hiddenapi lists\n    and insert it into the given dex file,\n(c) dexlayout to copy the flags into compact dex,\n(d) dex file verifier to verify the item.\nIt also removes skipping of verification for boot class path\ndex files as those now pass DexFileVerifier, and removes the\nneed for removing the flags for JVMTI.\n\nThe size increase is 450 KB.\n\nTest: phone boots\nTest: m test-art\nChange-Id: Idec301db540cf164fccc97136d1df4abb8f758bd\n"
    },
    {
      "commit": "d68ab24b556fca8b89695d4e199a906a611dae64",
      "tree": "88b5135de38d51b4df837a58f509ce2fd7d6950c",
      "parents": [
        "62ada4cd2c9a7ef5d1ab4c538d660f8a6a7f7571"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Oct 18 16:07:10 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 23 11:11:52 2018 +0100"
      },
      "message": "Remove the relocations section from the image.\n\nThis section was unused since\n    https://android-review.googlesource.com/771001 .\n\nThis partially reverts commits\n    6121aa69098e3496cf1a81bf3e5e7ae70f66eacb\n    ca8de0a70eab62707f3c71a211093f340fdcd5f4\nand cleans up.\n\nPrebuilt sizes for aosp_taimen-userdebug:\n  - before:\n    arm/boot*.art: 14951820\n    arm64/boot*.art: 19398428\n    oat/arm64/services.art: 526138\n  - after:\n    arm/boot*.art: 14503936 (-437KiB)\n    arm64/boot*.art: 18817024 (-568KiB)\n    oat/arm64/services.art: 499712 (-26KiB)\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\nBug: 77856493\nChange-Id: Ib44cd00cf3944e93e2d61ca8df381993cfeff130\n"
    },
    {
      "commit": "fa9abc28c7825040812101210ccf9b99ef3d565a",
      "tree": "37fd69b213218fb730f400f2b9179356fedf21d0",
      "parents": [
        "a498458d7882b70682bd3bc25882061329cb938e",
        "98104995d8dfc6fec6ec46f4cd50acd67e435687"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Oct 19 22:59:59 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 19 22:59:59 2018 +0000"
      },
      "message": "Merge \"ART: Use ObjPtr for GetSuperClass\""
    },
    {
      "commit": "f4efa9ed0d7616bd32b258562d6977d9b7554af2",
      "tree": "826f880e65c88f85929c64907a414013f0901801",
      "parents": [
        "a52ac0cd739e6c5b33bdaf81a19370d3acf4eadf"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 17 14:12:45 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 17 17:34:47 2018 +0100"
      },
      "message": "Remove oat_data_begin checks from OatFile.\n\nMake it a CHECK() directly in the ImageSpace instead. This\ncheck was a rather weird way to prevent the use of dlopen()\nfor boot image on host because it would load the oat file\nat the wrong address. This is now done by refusing to use\ndlopen() on host when we have a memory `reservation`.\n\nAlso clean up affected files for bugprone-argument-comment.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 77856493\nChange-Id: I6f0f9d5a0542574017d98acc2f4f30a585b483f4\n"
    },
    {
      "commit": "98104995d8dfc6fec6ec46f4cd50acd67e435687",
      "tree": "390e8a3f8361a894fba2d6136d906aa1c62c29f3",
      "parents": [
        "17c5e022f48a36fd160906b9c99ae14a2f014f17"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Oct 16 12:49:47 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Oct 16 12:49:47 2018 -0700"
      },
      "message": "ART: Use ObjPtr for GetSuperClass\n\nBug: 37224696\nTest: mmma art\nTest: m test-art-host\nChange-Id: If55db6e26bb1bb05a13c59b849bed17839fca6cf\n"
    },
    {
      "commit": "407bdb1d04896c533d205aa255cf8f53ce6660ef",
      "tree": "4453fa8dc685034445c2c009a08690b5835f1a86",
      "parents": [
        "34e3e3c1ac8c0c92c3d898b73b54d670c4dd5a8d",
        "a2da9b99fa1ea3d25d52da71308a623b2aae216c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Oct 11 11:40:57 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 11 11:40:57 2018 +0000"
      },
      "message": "Merge \"ART: Completely remove the --compile-pic option.\""
    },
    {
      "commit": "a2da9b99fa1ea3d25d52da71308a623b2aae216c",
      "tree": "5533be23eee7c24b68b1b72272cbae3f35a708cb",
      "parents": [
        "dc3b4670b170b39a8bd6498d4de69c1513af1db2"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 10 14:21:55 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 10 15:25:26 2018 +0100"
      },
      "message": "ART: Completely remove the --compile-pic option.\n\nAnd the PIC-related fields from image header.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: Pixel 2 XL boots.\nTest: testrunner.py --target --optimizing\nBug: 77856493\nChange-Id: I3787369378f12d8cd9003bebeae62830a67def33\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": "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": "0fb4f9f477721379c897bbe887b5edce19658d67",
      "tree": "0b77ab39c865ba57785ac0d6c48063123f48cfcc",
      "parents": [
        "20f09a36ca7389029cbe7eb514377c816ae6a458",
        "8583bec99a94c47831da2a54bd097ecf1f08347a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 10 23:17:31 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 10 23:17:31 2018 +0000"
      },
      "message": "Merge \"oatdump: Convert cdex before exporting dex files\""
    },
    {
      "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": "e04da79cfca846efa5c5fe3f1a5fff94787c7ca8",
      "tree": "dc2b5641874d1e32bfed0337f0ea1b03276f3460",
      "parents": [
        "1f16a8bb3734f00ace067d5b93cf59ef4fde465b",
        "802bcf50aedd23028226de9057f24d11d81da48a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 10 13:21:16 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 10 13:21:16 2018 +0000"
      },
      "message": "Merge \"ART: Let Soong help with dependencies\""
    },
    {
      "commit": "cba17e81e71491d3994a1198a740b563a7ab1f57",
      "tree": "f11e57c00bedf9349b0a21a46b4896bdc9b5e4a7",
      "parents": [
        "e7c9164cb7b6f964000df8114d79e6fb544ca95c",
        "fa6a1b0a1d9d186a0ad9bb413a4e49f1ffd187d8"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Sep 08 21:46:00 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Sep 08 21:46:00 2018 +0000"
      },
      "message": "Merge \"ART: Continue adding override annotations\""
    },
    {
      "commit": "802bcf50aedd23028226de9057f24d11d81da48a",
      "tree": "43c692488b7634df67c4f9480ee33abafb193ce3",
      "parents": [
        "527dee5aab18e7d1dae9cfbe6446e5d2b7e57137"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 07 16:20:58 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Sep 08 00:01:43 2018 +0000"
      },
      "message": "ART: Let Soong help with dependencies\n\nCommit ec5ed06b59a3b85e7f98ffc50e0539e5a77d1ba1 triggers a linker\nerror only when building the 32-bit host version of oatdumpds.\nLet the linker keep looking for symbols to resolve all dependencies.\n\nTest: HOST_PREFER_32_BIT\u003dtrue mmma art/oatdump\nChange-Id: I880fee4bfe586f2aa868bb7b43b3fa6850497abc\n"
    },
    {
      "commit": "d176e93d66df409e2eee5343efd26b35c73fb71b",
      "tree": "0c8bd5250f9c12330c2aa6129e73990cfc25dae9",
      "parents": [
        "ac9fa1811e0b7ab33d80df4476d5b09db058e939",
        "ec5ed06b59a3b85e7f98ffc50e0539e5a77d1ba1"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 07 17:15:07 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 07 17:15:07 2018 +0000"
      },
      "message": "Merge \"ART: Refactor static include list\""
    },
    {
      "commit": "fa6a1b0a1d9d186a0ad9bb413a4e49f1ffd187d8",
      "tree": "6d3bef945030868d7e78162dc3f4f35a07ce410a",
      "parents": [
        "a0878aa9f4f4102e56a6381b28a8d7c38dec80b9"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 07 08:11:55 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 07 09:13:50 2018 -0700"
      },
      "message": "ART: Continue adding override annotations\n\nUse Clang-tidy\u0027s modernize-use-override to add more annotations. Ignore\ninferred annotations on destructors.\n\nBug: 32619234\nTest: mmma art\nChange-Id: Ic432c928e398d44df9171e42db04ee19946e6887\n"
    },
    {
      "commit": "f94117029115e183256f393e31b9aeeb15428d40",
      "tree": "8d04c65a5b8c96e234b70674ab27dbeefc8893f1",
      "parents": [
        "454a5c248135d94d32dd7d38b21e742661e57d67"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 06 17:16:57 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 06 17:16:57 2018 -0700"
      },
      "message": "ART: Remove utils.h\u0027s ParseUint \u0026 ParseInt\n\nUse the versions from libbase, instead. Removes a runtime-int warning.\n\nBug: 32619234\nTest: mmma art\nChange-Id: I5a9a9e2647b1d93eee6d9ea2bf37cc09390e8c16\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": "e0669326c0282b5b645aba75160425eef9d57617",
      "tree": "3bb05553ee5f14081bb4ea8193fd29fa938e722f",
      "parents": [
        "56b0773d515527df60a38084cef3b813fefb5b9d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Sep 03 15:44:54 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 04 12:57:49 2018 +0100"
      },
      "message": "Remove PIC option from oat files.\n\ndex2oat has been producing only PIC code for some time,\nso there\u0027s no need to record it in the oat file anymore.\nAlso get rid of the now unnecessary relocation logic\nthat was using the flag.\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\nBug: 77856493\nChange-Id: I070071ca5a808371f67883f4ae93d633a76231d0\n"
    },
    {
      "commit": "125a3a4604f7d543334ee6b3d6fd15d0a6e5897a",
      "tree": "d4c572017ae0bc1c311b865cce6d8d9592f141dd",
      "parents": [
        "025059b5bc5974717e94d95cf2d82ff1ad51e75d",
        "2337d53846d9d2e7f82f8cf64ff25585ad010339"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Aug 31 23:40:07 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 31 23:40:07 2018 +0000"
      },
      "message": "Merge changes I207718d6,I700ef52e\n\n* changes:\n  ART: Restrict some checks in the verifier to P+\n  ART: Add API level to verifier\n"
    },
    {
      "commit": "c09cd0513b860c4301ca7bd6a9065b583d102295",
      "tree": "1c7aa4ed2b9b5b1335829461e764c94565afb71d",
      "parents": [
        "40f8a74cba008af768316f0b5bfe9502174b6d02"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Aug 23 16:36:36 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Aug 31 11:50:53 2018 +0100"
      },
      "message": "Reserve boot image memory in one go.\n\nLoad boot image components into the reserved memory.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nTest: Pixel 2 XL boots.\nTest: m test-art-target-gtest\nTest: testrunner.py --target --optimizing\nBug: 77856493\nChange-Id: I214f947979bc0bbfc6df4312527504e90b88a01d\n"
    },
    {
      "commit": "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": "6cc23acba91d26d7afd6bc681004ac5865a8a163",
      "tree": "d5b6850d7ce511658a33ca417764eac92cafe2d1",
      "parents": [
        "e9dce6a280057315a8a58ed46190c9a893c90fba"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Aug 24 15:22:43 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Aug 24 15:22:43 2018 -0700"
      },
      "message": "ART: Add API level to verifier\n\nPass API level to verifier. In preparation for API-level dependent\nchecks.\n\nBug: 111969862\nTest: m test-art-host\nChange-Id: I700ef52e28436a7fda8b9d9ef29841110ed6d3bb\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": "42deda8a5ee207706df37d7cb56d2a48e94073f0",
      "tree": "fc1b40813e502c04241950eef5c8b27313fa9ed7",
      "parents": [
        "dd667714e9504d447e752b0cffdf757a6133392b"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Aug 10 11:23:27 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Aug 10 16:41:33 2018 +0100"
      },
      "message": "Add helper method to iterate over BitTable fields in CodeInfo.\n\nAvoid the repetitive code patterns and simplify code.\n\nTest: test-art-host-gtest-stack_map_test\nTest: checked output of oatdump\nChange-Id: I2354bc652837eb34efeecf4de56a027384544034\n"
    },
    {
      "commit": "8cd54547cec8a4537db5682c2da8be22843b1310",
      "tree": "fb1158993bab2e027984cedab59b402c051a45a7",
      "parents": [
        "91f0fdb4372d3f2bcfcd9db67afcbe7ee1901048"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sun Jul 15 23:58:44 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Aug 01 14:49:40 2018 +0100"
      },
      "message": "Move MethodInfo to CodeInfo.\n\nThere is no need to treat it specially any more,\nbecause of the de-duplication at BitTable level.\n\nThis saves 0.6% of oat file size.\n\nTest: test-art-host-gtest\nChange-Id: Ife7927d736243879a41d6f325d49ebf6930a63f6\n"
    },
    {
      "commit": "6ee06e97cef5ee92944deaeba0da4d10c4c33a2a",
      "tree": "77d69c85d37864b4d3ee970be4b7fd1246adee7b",
      "parents": [
        "f5dcd31d89282b6c9324fdc960e6e7e2281c16f1"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jul 25 21:45:54 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Jul 26 11:45:54 2018 +0100"
      },
      "message": "Decode only the needed tables from CodeInfo.\n\nMost use cases need only the first two bit tables from CodeInfo.\nAdd flag to the decode method so that only those two are loaded.\nWe only touched the table header but that still made difference.\n\nThis speeds up pmd by over 10%.\n\nTest: test-art-host-gtest\nChange-Id: I7740081bf18205dd69864503b5bcec7de5e1a901\n"
    },
    {
      "commit": "98b189fe7eb70e9addfcf39bf670071255dc1551",
      "tree": "bf6784e75d902dcb987f53634c445db721e9209a",
      "parents": [
        "c19adea473a8415adcbdeb8eedb1245d4ae92351",
        "d60f5a228089947b06a72f3ac7bc5f145f08e6f2"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jul 24 23:40:32 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 24 23:40:32 2018 +0000"
      },
      "message": "Merge \"Mark more phony targets as PHONY\""
    },
    {
      "commit": "d60f5a228089947b06a72f3ac7bc5f145f08e6f2",
      "tree": "ef875d239311e7c0028985a05b80a8b991db6640",
      "parents": [
        "fe62f672694a70d151d0b55bbce718b5d66a5f5a"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue Jul 24 14:45:33 2018 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue Jul 24 14:45:33 2018 -0700"
      },
      "message": "Mark more phony targets as PHONY\n\nI\u0027m adding some checks to verify these (and prevent real files from\ndepending on phony targets that are always rebuilt).\n\nTest: add --writable\u003dout/ to kati args, see fewer warnings with this change\nChange-Id: I55d12f473b3141679f3fbb48e3eb1314020cf55f\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": "6121aa69098e3496cf1a81bf3e5e7ae70f66eacb",
      "tree": "4a09aaee7669821725b33f8d7c5a7fe087b5f324",
      "parents": [
        "6250dfa22577160b270f3f3165260739707cf7d3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jul 06 10:04:35 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jul 20 13:55:09 2018 +0100"
      },
      "message": "Move .art.rel data to a section in .art, part 2.\n\nAnd change the encoding to reduce the size of the data.\nKeep the checksum in the .art.rel file, it shall be removed\nlater together with patchoat.\n\nBoot image sizes for aosp_taimen-userdebug:\n  - before:\n    arm/boot*.art: 9216000\n    arm/boot*.art.rel: 700767\n    arm64/boot*.art: 11399168\n    arm64/boot*.art.rel: 700808\n    oat/arm64/services.art: 192512\n  - after:\n    arm/boot*.art: 9499351 (+276.7KiB)\n    arm/boot*.art.rel: 480 (-683.9KiB)\n    arm64/boot*.art: 11750203 (+342.8KiB)\n    arm64/boot*.art.rel: 480 (-683.9KiB)\n    oat/arm64/services.art: 202466 (+9.7KiB)\nNote that the new section is currently uncompressed in the\nboot image but we have the ability to compress it in the\nfuture using the same compression as the heap data.\n\nThe extra data we now encode in app images is unused so far\nbut it shall permit fast in-memory patching without looking\nat object types.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: Pixel 2 XL boots.\nTest: testrunner.py --target --optimizing\nBug: 77856493\nChange-Id: I20c9bed9797ce0f23f39c2fb0d64320b457e18d4\n"
    },
    {
      "commit": "764280a544babd0dd9984cb02fe068822255191d",
      "tree": "bc6c323fb03dc0229a34fca6ac6914618d6efae3",
      "parents": [
        "6743f1ebd4a1a266896541acb5c4dde1f78e708f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 17 10:17:22 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 17 10:17:22 2018 -0700"
      },
      "message": "ART: Address comment in Idaca9fe129ddc91aab79c65b3d0ca86f057848de\n\nAddress a late comment.\n\nTest: m test-art-host\nChange-Id: I34583fcafb3158609d1d126689aa7710c5dd693f\n"
    },
    {
      "commit": "3cfc2e7ad90f117bc1d1ccdc61404dcca320de58",
      "tree": "b28d40769e7c73dba26ee94a58cba2992e776f7c",
      "parents": [
        "33602449cf4e315330a460d8dbccdbda6bdef7da"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 16 14:10:14 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 16 14:10:14 2018 -0700"
      },
      "message": "ART: Fix space trimming in oatdump_test\n\nCorrectly trim the beginning of a fresh line.\n\nTest: m test-art-host\nChange-Id: Idaca9fe129ddc91aab79c65b3d0ca86f057848de\n"
    },
    {
      "commit": "38aa0b53545a647581411b7e84cd229c5023a3c1",
      "tree": "56da09c99085e6767b9a84038e9661f057092075",
      "parents": [
        "cdfc942e60032622b5a4379d0dd5ca914ba6393a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 10 23:26:55 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jul 13 15:51:36 2018 -0700"
      },
      "message": "ART: Clean up test exec code\n\nAdd a helper for fork+exec of another program and collection of\nthat process\u0027 output. Use the helper in other code.\n\nClean up some tests. Move away from global #ifdef ARCH and\ndisable tests with the usual-style macros so that it\u0027s easier\nto see refactoring issues immediately.\n\nTest: mmma\nTest: m test-art-host\nChange-Id: Ic450e8a3bb24fc6fe423c0e1e007eb0bb34e22b4\n"
    },
    {
      "commit": "11bf2652b4d5c006f02b4241c0764e5465393980",
      "tree": "bd15359049a09779a85c0bd08b923d5c1511458b",
      "parents": [
        "848f0d9782e467deb35b0ad3a904aeefbc9ef802"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 10 14:21:15 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 10 17:24:48 2018 -0700"
      },
      "message": "ART: Clean up dex2oats/oatdumps Android.bp modules\n\nUse defaults to avoid repetition.\n\nTest: mmma art\nTest: m test-art-host-gtest-dex2oat_test\nChange-Id: I142ae7aa900c560ad4772dbbb44dccc77fa4e7a6\n"
    },
    {
      "commit": "b40d361019897e8b8484b772ccc0be433abafb5f",
      "tree": "cfb4498ee5757be7cec06f8e4a866e7faabfadba",
      "parents": [
        "a98d9e76ed2486db9a7490a6e421a509ab2f6e2d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jun 26 15:49:42 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jun 26 15:49:42 2018 -0700"
      },
      "message": "ART: Finish old move of OatDexFile\n\nThe class has been made standalone so it can be forward-declared,\nbut not all nested references had been updated.\n\nTest: mmma art\nChange-Id: Idc5f0af24af17dcae286dee290f729ba61693a11\n"
    },
    {
      "commit": "1d15f5a57762e98688281fee1807c16313a17202",
      "tree": "d678c4b8d04ba7bd9ee9113c74e2e73889cfb837",
      "parents": [
        "78a97b9736bb7faf95f8c26fb5c8f184e049bec3",
        "bacb8e49bfa14fe887623c0f454770c3ddd27403"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jun 13 15:52:44 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 13 15:52:44 2018 +0000"
      },
      "message": "Merge \"Do not print .bss mappings for oatdump --header-only.\""
    },
    {
      "commit": "bacb8e49bfa14fe887623c0f454770c3ddd27403",
      "tree": "e18e418c7955c6ccb89fd0aa25723582ca8cdbb3",
      "parents": [
        "fc9c17f62db6e6533fb885b2be5a2c22f8d432f0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jun 13 14:45:30 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jun 13 14:45:30 2018 +0100"
      },
      "message": "Do not print .bss mappings for oatdump --header-only.\n\nTest: Rely on TreeHugger\nBug: 109733217\nChange-Id: I3229e02fe76e71c6a628b2840d22678c142bbc86\n"
    },
    {
      "commit": "86decb6a3e3ebba8c3c67bfd25c12d9a85794f65",
      "tree": "be8ca8fb1c7274292b5d794d08ce47df566927f7",
      "parents": [
        "1e739fa94947147953c53e92964e0e9e1eac0526"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Jun 05 06:41:10 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jun 13 12:29:32 2018 +0100"
      },
      "message": "Rewrite stack map statistics printing in outdump.\n\nThe code was repetitive and had a tendency to get out of sync.\n\nTest: Check the output of oatdump\nChange-Id: Ied68a6c9add7ac234ede68d4adbc097bb8b82d6f\n"
    },
    {
      "commit": "20c64f8d802cc575cc9a1a1f6c493a611b23e2ee",
      "tree": "1fcfef016c7f2fca79a4e2c37a42c9058ad746f4",
      "parents": [
        "456dc5c7c70c45bf290c236aa1514b1274f120e1",
        "18e2687c4126d66870d61d6548abc2c7661a66cc"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jun 08 16:39:58 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 08 16:39:58 2018 +0000"
      },
      "message": "Merge \"Refactor ClassAccessor to use an index instead of ClassDef pointer\""
    },
    {
      "commit": "a4bae540b7c91136aaab02fd1638c8df6cb96970",
      "tree": "eb517cc7ba2a3b0d37b9be26e8b811d9f015d672",
      "parents": [
        "bac28b0d5fb0765291adf8379bc502783cbb15b0",
        "fd89b0739d4000ea70f28bf53dea531027024f5a"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Jun 08 11:14:39 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 08 11:14:39 2018 +0000"
      },
      "message": "Merge \"Remove unused GetDexRegisterMap arguments.\""
    },
    {
      "commit": "18e2687c4126d66870d61d6548abc2c7661a66cc",
      "tree": "06eff605df9259dde8170c8efb48b11df4108eb3",
      "parents": [
        "2607d6c47114a18ccf4a532b20e1099d1dd8fcca"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 04 17:19:02 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jun 07 22:13:48 2018 -0700"
      },
      "message": "Refactor ClassAccessor to use an index instead of ClassDef pointer\n\nRemoves a separate class_def_idx being required for getting the index\nof a ClassAccessor foreach loop.\n\nBug: 79758018\nTest: test-art-host-gtest\n\nChange-Id: Ie3010a17669f24cf492c678b55bdddba7ec62ea8\n"
    },
    {
      "commit": "eb2557e74abf1830995cea287a9b03a8c0aa9b8b",
      "tree": "ea007db13f31492cab58adea297422b361e8af24",
      "parents": [
        "2b40dd35c65ad644d448611750f5b577e97594a1",
        "6de8833fb64e59301eada4005ed04da995796170"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Jun 07 13:18:33 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 07 13:18:33 2018 +0000"
      },
      "message": "Merge \"Delta-compress register maps in stack maps.\""
    },
    {
      "commit": "fd89b0739d4000ea70f28bf53dea531027024f5a",
      "tree": "1c9f3e1b046d60df405fb63f04cf83d3be4ff0f5",
      "parents": [
        "6de8833fb64e59301eada4005ed04da995796170"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sun Jun 03 12:00:22 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Jun 07 12:00:18 2018 +0100"
      },
      "message": "Remove unused GetDexRegisterMap arguments.\n\nThey are no longer needed in the new encoding.\n\nI reuse the local variables in most places to DCHECK the size\nof the decoded register map.  This has one catch though:\nWe sometimes omit all dex registers, so the DCHECK should be\ndone only after checking if the map is empty (if applicable).\n\nTest: test-art-host-gtest-stack_map_test\nChange-Id: I94b67029842374bc8eb7c9e5eac76fc93a651f24\n"
    },
    {
      "commit": "6de8833fb64e59301eada4005ed04da995796170",
      "tree": "9f5b731ae1c0428cf5dcae4105936a7a165a43c9",
      "parents": [
        "d97e0828958fd14a962e37af2865bc2e628547ce"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sun Jun 03 12:00:11 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Jun 07 12:00:18 2018 +0100"
      },
      "message": "Delta-compress register maps in stack maps.\n\nThe register maps tend to be similar from stack map to stack map,\nso instead of encoding them again, store only the modified ones.\n\nThe dex register bitmap stores the delta now - if register has\nbeen modified since the previous stack map, the bit will be set.\n\nThe decoding logic scans backwards through stack maps until it\neventfully finds the most recent value of each register.\n\nThis CL saves ~2.5% of .oat file size (~10% of stackmap size).\n\nDue to the scan, this makes dex register decoding slower by factor\nof 2.5, but that still beats the old algorithm before refactoring.\n\nTest: test-art-host-gtest-stack_map_test\nChange-Id: Id5217a329eb757954e0c9447f38b05ec34118f84\n"
    },
    {
      "commit": "dc53f1616d656a757fb26039f387b7ee44ff2f1d",
      "tree": "e334f68df51c6078fd51f293a38146c6fcb6c106",
      "parents": [
        "f98a25083c71c2f26d8487142aa02fabcd023080",
        "d97e0828958fd14a962e37af2865bc2e628547ce"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 06 15:00:44 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 06 15:00:44 2018 +0000"
      },
      "message": "Merge \"Reduce code repetition in stack maps with macros.\""
    },
    {
      "commit": "d97e0828958fd14a962e37af2865bc2e628547ce",
      "tree": "bcb4ef65fee75cd64c222a2e3bfb44da6b60ebd5",
      "parents": [
        "6e69e52a12883386f91d014324bebee867ca7877"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sun Jun 03 12:00:24 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jun 06 13:14:04 2018 +0100"
      },
      "message": "Reduce code repetition in stack maps with macros.\n\nSimplifies the code somewhat.  It also makes it possible\nto get column names as strings for the debugging code.\n\nTest: test-art-host-gtest-stack_map_test\nChange-Id: I1a2e146e7a4372c0752693313e1b881cb4a818bc\n"
    },
    {
      "commit": "c13fbd8596988f1daf71197008007c2eaa380585",
      "tree": "4c02277989abc7ac1081698269504ab329ddab8f",
      "parents": [
        "026105570d8fcd4b3cb60c3d6b7bb7141cd8146c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jun 04 16:16:28 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jun 04 18:33:38 2018 +0100"
      },
      "message": "Use pre-allocated Throwables from the boot image.\n\nThe pre-allocated OOMEs and NoClassDefFoundError were stored\nin the boot image but they were not used, we instead used to\nallocate and use new objects. This change adds references to\nthe image roots, so that these Throwables can be used when\nstarting the runtime using the boot image.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 77947463\nChange-Id: I2079344dee61242bf0bef5c32770c33ac8a6b7a4\n"
    },
    {
      "commit": "71ec1cc0665cdb9d39f4fd284d68962020417a53",
      "tree": "8d19b11ab3e04213c46b1b12ae94dbf54b305bfb",
      "parents": [
        "03f16e4de1e3289414888fe0a5104205a781bd2f"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri May 18 15:57:25 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Jun 01 13:26:46 2018 +0100"
      },
      "message": "Rewrite dex register map encoding in stackmaps.\n\nSimplify code by encoding dex register maps using BitTables.\nThe overall design is unchanged (bitmask+indices+catalogue).\n\nThis CL saves ~0.4% of .oat file size.\n\nThe dex register map decoding is factor of 3 faster now\n(based on the time to verify the register maps on Arm).\nThis is not too surprising as the old version was O(n^2).\n\nIt also reduces compiler arena memory usage by 11% since the\nBitTableBuilder is more memory efficient, we store less\nintermediate data, and we deduplicate most data on the fly.\n\nTest: test-art-host-gtest-stack_map_test\nChange-Id: Ib703a5ddf7f581280522d589e4a2bfebe53c26a9\n"
    },
    {
      "commit": "a8bba7d0853b372aea3ed3ea154fb2b2a23c2c9d",
      "tree": "973a89870e0cc8912401503ebab1b709a9df5ba0",
      "parents": [
        "65e463cf7ea91003ef030c8a819ae4596c9b820f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 30 15:18:48 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu May 31 09:48:59 2018 +0100"
      },
      "message": "ObjPtr\u003c\u003e-ify ClassLinker::FindClass(), fix 1 stale reference use.\n\nThread::CreateAnnotatedStackTrace() was using a stale\nreference `aste_array_class`.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 31113334\nChange-Id: I191907c0053456bb57de425aa6ccd9668df818a2\n"
    },
    {
      "commit": "d02b23f7ee9664213216a82bfdcb0ee83824de04",
      "tree": "254b794533a6821c2ed2df31fab807abf7d508a4",
      "parents": [
        "08231f6cb3095a7dbde29299a7da5413a5f992e4"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue May 29 23:27:22 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed May 30 17:59:24 2018 +0100"
      },
      "message": "Remove the CodeOffset helper class.\n\nI need to reduce the StackMapEntry to a POD type so that it\ncan be used in BitTableBuilder.\n\nTest: test-art-host-gtest-stack_map_test\nChange-Id: I5f9ad7fdc9c9405f22669a11aea14f925ef06ef7\n"
    },
    {
      "commit": "08231f6cb3095a7dbde29299a7da5413a5f992e4",
      "tree": "d7cc4595bd633b3f5e7ade454d405a57468f3e77",
      "parents": [
        "750cf88c8872983ae13259131cb2ed377e3eadff",
        "4b59d107f91601c4e0095d7a9db40970d4ed6956"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed May 30 16:21:15 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 30 16:21:15 2018 +0000"
      },
      "message": "Merge \"Revert^2 \"Optimize register mask and stack mask in stack maps.\"\""
    },
    {
      "commit": "4b59d107f91601c4e0095d7a9db40970d4ed6956",
      "tree": "b120add4870b86cefc308ec3a0100851cfc1a4c0",
      "parents": [
        "da4ff8bfcf03d6186b7d21c7bd8b90248f7b2f96"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue May 29 21:46:10 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed May 30 14:32:44 2018 +0100"
      },
      "message": "Revert^2 \"Optimize register mask and stack mask in stack maps.\"\n\nThis reverts commit 8b20b5c1f5b454b2f8b8bff492c88724b5002600.\n\nReason for revert: Retry submit unmodified after fixing the test.\n\nUse BitTable to store the masks as well and move the\ndeduplication responsibility to the BitTable builders.\n\nDon\u0027t generate entries for masks which are all zeros.\nThis saves 0.2% of .oat file size on both Arm64 and Arm.\n\nEncode registers as (value+shift) due to tailing zeros.\nThis saves 1.0% of .oat file size on Arm64 and 0.2% on Arm.\n\nTest: test-art-target-gtest-exception_test\nTest: test-art-host-gtest-bit_table_test\nTest: test-art-host-gtest-stack_map_test\nChange-Id: Ib643776dbec3f051cc29cd13ff39e453fab5fae9\n"
    },
    {
      "commit": "3d092995bbba4f7b559114d8c803890a5c90e646",
      "tree": "512abb2e5c327e127c594bb3233f17db544c67a3",
      "parents": [
        "525bb7427d7e97b5a4eba7b113ca065e79ad83d2"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu May 24 13:36:23 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue May 29 15:18:36 2018 -0700"
      },
      "message": "Move oatdump/ to use ClassAccessor\n\nTest: test-art-host\nBug: 79758018\n\nChange-Id: I53d70063cfb0a4c94d9d95ac7e98758d97082c20\n"
    },
    {
      "commit": "8b20b5c1f5b454b2f8b8bff492c88724b5002600",
      "tree": "51bea8ddfff23b1f6b0323eaeacf42e6f6199015",
      "parents": [
        "ffaf87a429766ed80e6afee5bebea93db539620b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 29 15:32:55 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 29 15:32:55 2018 +0000"
      },
      "message": "Revert \"Optimize register mask and stack mask in stack maps.\"\n\nThis reverts commit ffaf87a429766ed80e6afee5bebea93db539620b.\n\nReason for revert: Breaks exception_test32 on target\nfor CMS and heap poisoning configs.\n\nChange-Id: I127c17f693e28211a799f73a50e73105edee7e4c\n"
    },
    {
      "commit": "ffaf87a429766ed80e6afee5bebea93db539620b",
      "tree": "d79637f4b6a564facf4b837c3ff125bb3755594e",
      "parents": [
        "5513c2b68a08109a5bfd811c7b2c8bbc66244e8e"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed May 23 14:44:39 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon May 28 08:45:37 2018 +0100"
      },
      "message": "Optimize register mask and stack mask in stack maps.\n\nUse BitTable to store the masks as well and move the\ndeduplication responsibility to the BitTable builders.\n\nDon\u0027t generate entries for masks which are all zeros.\nThis saves 0.2% of .oat file size on both Arm64 and Arm.\n\nEncode registers as (value+shift) due to tailing zeros.\nThis saves 1.0% of .oat file size on Arm64 and 0.2% on Arm.\n\nTest: test-art-host-gtest\nChange-Id: I636b7edd49e10e8afc9f2aa385b5980f7ee0e1f1\n"
    },
    {
      "commit": "ba4c11864db52a316b9ba03017a5ea369039926a",
      "tree": "b46764a0fc99e6dafb7a27daf6553a050c742861",
      "parents": [
        "e46752658eaf41c0cc818c51a3e1cd95876bac93"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu May 24 14:05:55 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu May 24 15:01:44 2018 -0700"
      },
      "message": "Remove some dex analysis from oatdump\n\nThis functionality is now in dexanalyze.\n\nTest: test-art-host-gtest\n\nChange-Id: Ia58a54ec8e8962701d7b7d54db2d125cbec3e965\n"
    },
    {
      "commit": "052f8ca1776ed7deb4f036498edd69eb6a1b942f",
      "tree": "ae993f1a634b258e124df12663a1d24859917b05",
      "parents": [
        "1c515f0b9d621869a2e67ce5e0f5532d0f2f323a"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Apr 26 15:42:54 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon May 21 20:28:41 2018 +0100"
      },
      "message": "Rewrite stackmap encoding code.\n\nRemove most of the code related to handling of bit encodings.\nThe design is still same; the encodings are just more implicit.\nMost of the complexity is replaced with a single BitTable class,\nwhich is a generic purpose table of tightly bit-packed integers.\nIt has its own header which stores the bit-encoding of columns,\nand that removes the need to handle the encodings explicitly.\n\nOther classes, like StackMap, are accessors into the BitTable,\nwith named getter methods for the individual columns.\n\nThis CL saves ~1% of .oat file size (~4% of stackmap size).\n\nTest: test-art-host-gtest\nChange-Id: I7e92683753b0cc376300e3b23d892feac3670890\n"
    },
    {
      "commit": "1f010164bea4714e9f653c52e8948c5d5305040b",
      "tree": "e69b2c3f4d2645d4097655f8914325945fe5dbbd",
      "parents": [
        "a7d37cf735f05cfc3a3585a5c44eb65d8a279874"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue May 15 08:59:32 2018 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed May 16 13:01:34 2018 -0700"
      },
      "message": "Move ArtDexFileLoader to libdexfile\n\nAdds a dependency from libdexfile on libartbase, but allows the use of\nMemMap loaders, etc.\n\nBug: 78652467\nTest: make -j 40 checkbuild\nChange-Id: I15cf33893ca9192050762f8350a3cc1e39f88dc5\n"
    },
    {
      "commit": "238c963a08f9d2c1a39805c2daa9c32482bd9e36",
      "tree": "5fe6777ea55227e6efc07229946426b46a05f553",
      "parents": [
        "d94a00cdf0519ff92dff1ee59a5a42234a391ddd"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue May 08 10:22:52 2018 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue May 08 10:22:52 2018 -0700"
      },
      "message": "Do not use clang lld for oatdump tests\n\nBug: 79417743\nTest: HOST_PREFER_32_BIT\u003dtrue m -j32 test-art-host-gtest-oatdump_app_test\nChange-Id: If217972d4983ef8c3425afb70cc59a227e576ee3\n"
    },
    {
      "commit": "82d046e7c9daad9b706cbec7df7025c5a4ef9163",
      "tree": "92b7deea052015dd64bea6fc72d76c67f69e0e5d",
      "parents": [
        "5a87e19e4bf1b6719c2aad3effde1b38d2c3085c"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Apr 23 08:14:19 2018 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Apr 26 12:37:04 2018 -0700"
      },
      "message": "Add a profiling library\n\nMove profile_compilation_info to a separate library.  Another step\ntowards building many of our tools without libart[d].\n\nBug: 78459333\nTest: make -j 50 checkbuild\nChange-Id: Ib281d3d1fde6d06ebb429c5d39d62a7038af0f44\n"
    },
    {
      "commit": "89b06a15b530acf78727700075d8b457e1cc4eb0",
      "tree": "0d4cc200d359f532cb1fc27f0d7e5cc3b4bf8ee7",
      "parents": [
        "9e363f65c1d85e601b0445b51fefc5156ec71fca",
        "30025095524e471ec347633e39f26ed0606bea65"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Apr 26 09:00:58 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 26 09:00:58 2018 +0000"
      },
      "message": "Merge \"Pass the fd to OatFile::Setup to avoid selinux errors.\""
    },
    {
      "commit": "30025095524e471ec347633e39f26ed0606bea65",
      "tree": "533cbe1808445dcd4dd6d8b7dacc180fcc29b90a",
      "parents": [
        "cee49280366af9aa35e889e90d0ae0e90b453a22"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Apr 19 14:43:29 2018 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Apr 24 14:39:06 2018 +0100"
      },
      "message": "Pass the fd to OatFile::Setup to avoid selinux errors.\n\nbug: 77853712\nTest: test.py\nChange-Id: I069cda5296b561284d71b067924e1bc4a8562710\n"
    },
    {
      "commit": "6f5b4d21feecf8d507ad039e8cba92d491a407ba",
      "tree": "c5062e360a8984cbdd40494e4d7dbac8902ca5fd",
      "parents": [
        "a90cc8715f31f3f082cb113129f05ec21ebd14ca"
      ],
      "author": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Fri Apr 20 12:02:02 2018 -0700"
      },
      "committer": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Fri Apr 20 12:02:02 2018 -0700"
      },
      "message": "Use lld for building dex2oatds, oatdumpds\n\nBug: http://b/77581732\n\n\u0027lld\u0027 may help avoid a segfault when linking these executables with\nld.gold.\n\nTest: build\nChange-Id: I385643c0124963b132b0c20f00bbb9c69923e80e\n"
    },
    {
      "commit": "03da784d893a784572cc8b18c503e85fb387a3b9",
      "tree": "16cc1a942788c53fd58341247c35f9f6f11ba71d",
      "parents": [
        "fe6cf7cb0865cc1710d14ff8a41817794e965ea5"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 12 11:12:52 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 12 11:12:52 2018 -0700"
      },
      "message": "ART: Fix oatdump check\n\nResolution may not be possible, e.g., for missing superclasses.\nWeaken a CHECK.\n\nTest: mmma art\nChange-Id: I3992c4e10c03a11918a355c36c6b954845c420b0\n"
    },
    {
      "commit": "9c4a015cf01989597fd899011dba310b704dacaa",
      "tree": "17101dd177beb28c1d28c8eddab645bc7d1af984",
      "parents": [
        "6485701497edf2fd4e5296c3715929ad44ea9752"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Apr 05 12:23:54 2018 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Apr 09 23:30:08 2018 +0000"
      },
      "message": "Move more runtime code to libartbase, libdexfile\n\nMove some code that logically belongs to libartbase or libdexfile to\nthose places respectively.\n\nBug: 22322814\nTest: make -j 50 checkbuild\nChange-Id: Idfded5d24b40d8587011681e6235b6672846da19\n"
    },
    {
      "commit": "567dc6f16fd8d399b19e5c9f6199ba5be82374d9",
      "tree": "9e9410ba879db760e26b6f29491e6e042560d638",
      "parents": [
        "6fcf35bc06b1eb88080863b3bd8f7e16ca099910"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 05 16:37:14 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 05 16:39:33 2018 -0700"
      },
      "message": "Revert \"Revert \"Write shared data section for oatdump export dex\"\"\n\nTest: test-art-target-gtest-oatdump_test64 -j64\nBug: 77469384\n\nThis reverts commit 4b670183dcc5173c19922b3f3d87c2fbddbb7a34.\n\nChange-Id: Ic727a005436753ea58ee5d10cd1aca5fbd532c6a\n"
    },
    {
      "commit": "4b670183dcc5173c19922b3f3d87c2fbddbb7a34",
      "tree": "440b7f5f212c0e3b61f2b366d2d06bd671ba3930",
      "parents": [
        "fdca4cb565c25a4a05078b2afc3f7abb374309e3"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Apr 04 12:54:15 2018 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Apr 04 12:54:15 2018 +0000"
      },
      "message": "Revert \"Write shared data section for oatdump export dex\"\n\nThis reverts commit fdca4cb565c25a4a05078b2afc3f7abb374309e3.\n\nReason for revert: CHECK failure in device testing (bad checksum).\n\nChange-Id: I43bd3ada4853022728d217ff8b79c32026fc4974\n"
    },
    {
      "commit": "fdca4cb565c25a4a05078b2afc3f7abb374309e3",
      "tree": "0d022efa40d6ac742389d81a8aea1b83dce7928f",
      "parents": [
        "bc444ffaaa51fe3be38d4037929d7755a6ffb6c7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 03 13:29:13 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 03 13:31:00 2018 -0700"
      },
      "message": "Write shared data section for oatdump export dex\n\nWrite this out so that the resulting dex can be dumped and inspected.\n\nBug: 77469384\nTest: test-art-host-gtest-oatdump_test\n\nChange-Id: Iadeaca0eaaf7c75a938dfc776801cf94c89d07f6\n"
    },
    {
      "commit": "312f3b2fd0094c028a7d243b116947a35a745806",
      "tree": "3d7ec049ded98c489098c87250c75e3f711f8290",
      "parents": [
        "0a3d5eb2ff9e70fa5785638da938439835d0337e"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Mar 19 08:39:26 2018 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Mar 19 11:02:48 2018 -0700"
      },
      "message": "Move some remaining dex utilities\n\nThere were several utilities related to building/walking/testing dex\nfiles that were not in libdexfile.  This change consolidates these.\n\nBug: 22322814\nTest: make -j 50 test-art-host\nChange-Id: Id76e9179d03b8ec7d67f7e0f267121f54f0ec2e0\n"
    },
    {
      "commit": "b041a406daf5213ac1d5c9bcdc197d34cba85bf3",
      "tree": "f32c9f97143d2df79940e070f2862cc7a5f6e807",
      "parents": [
        "51038fc5f8be887ff86fe062e6a5af840e37726d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 13 15:16:22 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 19 09:25:09 2018 +0000"
      },
      "message": "Use vdex\u0027s quickening info when decoding a quickened instruction.\n\nbug: 74521989\n\nTest: test.py, 678-quickening\nChange-Id: I3a85cc6014afcf11889941dcd15b90d4296b8408\n"
    },
    {
      "commit": "48cc7b11643018806a193877b6bb1c1ea1e8efaf",
      "tree": "da3f28769ab3596068727d49a78deca0f1a5cbaf",
      "parents": [
        "1f28be6fe2c88343996714ef6200bea03cee19eb",
        "812fb4d31895727e2bfbff4f3beefbea8e42948f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Mar 14 18:45:17 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 14 18:45:17 2018 +0000"
      },
      "message": "Merge \"Dump .data.bimg.rel.ro entries in oatdump.\""
    },
    {
      "commit": "812fb4d31895727e2bfbff4f3beefbea8e42948f",
      "tree": "38d5b2d818dd732a80218d7d603c58133007309b",
      "parents": [
        "302bad2dc53aca63f8035dccfc3eefc6fa7b58fb"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Mar 14 13:07:21 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Mar 14 14:54:34 2018 +0000"
      },
      "message": "Dump .data.bimg.rel.ro entries in oatdump.\n\nAlso dump .bss summary.\n\nTest: m test-art-host-gtest-oatdump_app_test\nTest: m test-art-host-gtest-oatdump_image_test\nTest: Manually inspect output with/without --boot-image.\nBug: 71526895\nBug: 65737953\nChange-Id: I53914bed59a95ae342f2bbcb4ece592f3a631842\n"
    }
  ],
  "next": "640df8492e21a5869d4f19e625238d0f0a802224"
}
