)]}'
{
  "log": [
    {
      "commit": "ea5930431442d93948d7b03534ab274689faacf0",
      "tree": "f20ae59851086975b9c856e2474bdd70e5b28345",
      "parents": [
        "f74148675931890375389af3b59e597c42a5139b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jan 10 21:12:25 2019 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jan 10 21:12:25 2019 -0800"
      },
      "message": "Remove ObjPtr from CalculateNewObjectOffsets\n\nCausing failures for heap poisoning due to VisitObjects invalidation.\n\nFixes heap poisoning tests.\n\nTest: test-art-host\nBug: 116059983\nChange-Id: Ia6e27347d55964c300d9039378b4930d9019610b\n"
    },
    {
      "commit": "00fbe4fc833f680e78f692bd7fc4d41ef35f437c",
      "tree": "267cfd885e884602a4b62eb6cbe727042751cbad",
      "parents": [
        "e28c18beef88a19d3050a5c718da291343c45698"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jan 02 16:52:38 2019 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jan 10 15:34:56 2019 -0800"
      },
      "message": "Add region padding for app images\n\nFor app images, partition the image such that no object spans cross\nregion boundaries.\n\nBug: 116059983\nBug: 116874661\nTest: test-art-host\n\nChange-Id: Iedffe9fac4b9b59f81de7dd607030ad3a8bcb602\n"
    },
    {
      "commit": "49b74a8c685acfe43dd33e3f51a24c486388bee1",
      "tree": "2c88245108b612904d1b3e377725894574ec1eed",
      "parents": [
        "a1ffdba7e285435cbb3538473f25eb7cb47cfd66"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jan 07 10:19:49 2019 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 09 12:38:30 2019 -0800"
      },
      "message": "ART: Remove thread from class.h\n\nMove only dependent functions to the inl.\n\nBug: 119869270\nTest: mmma art\nChange-Id: Ic2ceba1563ac44048afec6df1bccda91ceb42782\n"
    },
    {
      "commit": "1fb24e24787bb365f01c242a32efa6655607cc99",
      "tree": "9a04685b299546c647bc027648859a8d7f57007a",
      "parents": [
        "58864470eae648c3183336752473b307c6673b4d"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jan 09 13:33:37 2019 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jan 09 13:33:37 2019 +0000"
      },
      "message": "Disable Dex2oatWatchdogTest.TestWatchdogTrigger.\n\nThis test has been prone to timeouts lately; disable it while we\ninvestigate.\n\nTest: n/a\nBug: 121352534\nChange-Id: I2f8dfd1359f486206cc596b02026c3151863baef\n"
    },
    {
      "commit": "163a37ad5f2d0b16bdd32fb8964580991900049a",
      "tree": "58d9602caf8896bf08b80762dc893ecf9ad4a90d",
      "parents": [
        "b121449e6efcb1a01355059afb705bbd76230df2",
        "62afcf50d086dd6d265be82308ea5c2c10b94ede"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jan 07 21:38:16 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 07 21:38:16 2019 +0000"
      },
      "message": "Merge \"Add ability to store invocation information in an external file.\""
    },
    {
      "commit": "6dbf9eca35bcaa752a6758d3127c233f8b7687e3",
      "tree": "ccf20a26a36b822a2d394df4a7d90341a49396eb",
      "parents": [
        "bec232eb2f07d53c4dbf510b3fbb80f092d02681",
        "73030ed317f0f8b0a1c25919970f7a20179efa2d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 03 23:44:06 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 03 23:44:06 2019 +0000"
      },
      "message": "Merge \"art_cc_static_library -\u003e art_cc_library_static\""
    },
    {
      "commit": "73030ed317f0f8b0a1c25919970f7a20179efa2d",
      "tree": "3448448e2817cbb3006af5f3567ae8f0a0fc7cb1",
      "parents": [
        "0f0a4e40667c87fbd4ae5480eddbfd701bfabfa2"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Thu Jan 03 14:23:28 2019 -0800"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Thu Jan 03 14:23:28 2019 -0800"
      },
      "message": "art_cc_static_library -\u003e art_cc_library_static\n\nFor consistency with \u0027cc_library_static\u0027 which is in more common usage.\n\nBug: N/A\nTest: m nothing (parses all build files)\nChange-Id: I26f6b9e21bb446977e15220dd5d43d1334bd158f\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": "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": "19667a0277ac383bc49d40d2717ddd5eded961da",
      "tree": "3f20da020b90202e697ccc7d21739c10455474a4",
      "parents": [
        "46a8938026c425d54f2c02631ca584b4d1f2666c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Dec 21 15:26:19 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Dec 21 15:26:19 2018 -0800"
      },
      "message": "Fix dex2oat usage error\n\n--compilation-reason usage was out of place.\n\nTest: manual\nChange-Id: Id6ecba9f1a97cbba49b67bfd6ad924e56ce5ae5e\n"
    },
    {
      "commit": "62afcf50d086dd6d265be82308ea5c2c10b94ede",
      "tree": "a61f1046df65e84c901d3d13b62cf3e14ea56968",
      "parents": [
        "5c030d3c25b958b8d3157d4cc7d807fa89786fec"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Dec 18 14:19:25 2018 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Dec 19 09:14:39 2018 -0800"
      },
      "message": "Add ability to store invocation information in an external file.\n\nIt is sometimes useful to save the invocation that generated an odex\nfile seprately from the file itself. This adds a\n--write-invocation-to\u003d\u003cfile\u003e flag to dex2oat that lets one do this.\n\nTest: m droid\nTest: ./test.py --host -j72\nBug: 119332327\nChange-Id: I3fe07e7daba3d27b49fd5b5aed7621e5cc62ab46\n"
    },
    {
      "commit": "d6f8c8b2773f08c08bb7d1658282a8891a1a52e2",
      "tree": "a98557d03f5c68e256b4adfe35eee67137525c86",
      "parents": [
        "35bd06e1bd193f370422414a6e1027b61976351d"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Dec 18 15:27:28 2018 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Dec 18 17:20:44 2018 +0000"
      },
      "message": "Fix `pthread_cond_timedwait()` error processing in dex2oat.\n\nThis function does not set `errno` on error; use the returned value as\nerror code instead.\n\nTest: m dex2oat\nBug: 121130576\nChange-Id: I32a2aeaef854930efac83e16fcb6a0a2d6f88090\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": "ce2d6b31709511d94dd0d6f32a60cb558252db65",
      "tree": "38f830178fe054a7fc6daec7986c0d72d27064a1",
      "parents": [
        "3cd5a75c4fb4ab87baa1699085a664979013a084",
        "11a250b0bcd130b5fd3f925d912f86f2e45067cc"
      ],
      "author": {
        "name": "Haibo Huang",
        "email": "hhb@google.com",
        "time": "Mon Dec 10 22:46:18 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 10 22:46:18 2018 +0000"
      },
      "message": "Merge \"Remove denver from art\""
    },
    {
      "commit": "7391c8ce016c9bcd9e7cec91fb8dcf29f5ca5909",
      "tree": "fca941e7b216abd17a51d9ea0ba3d8aab059a05d",
      "parents": [
        "5ab44e73e5f9e2403e0cac0a448b35378dae1de8"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 21 17:58:44 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 10 11:31:57 2018 +0000"
      },
      "message": "Store additional information in image header.\n\nStore the reservation needed for loading the boot image and\nthe number of boot class path components. The former helps\navoid one extra file open+read+close when loading the boot\nimage and the latter shall be used in subsequent CLs to load\nboot image for a partial boot class path.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: Pixel 2 XL boots.\nBug: 119868597\nChange-Id: I01dba923cfa3f8faf0e41a4139b8913c78404d54\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": "ed8b4ac3d7a78cc4976fa24a34bac92f4fd47a27",
      "tree": "8292de7f2a4e8b9c0526d05a604668da11e1980e",
      "parents": [
        "a9a0973ff03ce2c2d1ec65695ad0f4cd8ed170a7",
        "2afaff7e9171992b0e2e95d0f485782d28e1b9dc"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 07 08:11:24 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 07 08:11:24 2018 +0000"
      },
      "message": "Merge \"Refactor CompilerDriver::CompileAll().\""
    },
    {
      "commit": "11a250b0bcd130b5fd3f925d912f86f2e45067cc",
      "tree": "fdcf24e780186e3d1e8c70676124e66ca02be86d",
      "parents": [
        "883931d0cc9c48573c13836b80fbad465bdaa0c9"
      ],
      "author": {
        "name": "Haibo Huang",
        "email": "hhb@google.com",
        "time": "Tue Dec 04 20:42:34 2018 -0800"
      },
      "committer": {
        "name": "Haibo Huang",
        "email": "hhb@google.com",
        "time": "Fri Dec 07 01:58:25 2018 +0000"
      },
      "message": "Remove denver from art\n\nTest: build\nChange-Id: If301a4ce0f1a6db7f42c64c97c07ac7f51dfcf9d\n"
    },
    {
      "commit": "2afaff7e9171992b0e2e95d0f485782d28e1b9dc",
      "tree": "96c7ea4a13e8a9a191d58002de89fb005231980e",
      "parents": [
        "6a98f89c4ad645b04d6c80d3d7e260c59bf6f193"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 30 17:01:50 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 06 16:26:43 2018 +0000"
      },
      "message": "Refactor CompilerDriver::CompileAll().\n\nTreat verification results and image classes as mutable\nonly in CompilerDriver::PreCompile(), and treat them as\nimmutable during compilation, accessed through the\nCompilerOptions. This severs the dependency of the inliner\non the CompilerDriver.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: I594a0213ca6a5003c19b4bd488af98db4358d51d\n"
    },
    {
      "commit": "d19085141ad9c71eae1b0ff585999ac8e27dadd4",
      "tree": "24284e84f5df4601bacc2a97c56af1bc5950c253",
      "parents": [
        "523940b40f9701504d6e007dd2af48f315038dc1"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 22 14:57:28 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 06 14:43:07 2018 +0000"
      },
      "message": "Pass boot class path to ImageSpace::LoadBootImage.\n\nWhen loading the boot image by ImageSpace, do not rely on\nthe boot class path (BCP) recorded in the primary boot image\noat file. Instead, check the BCP from image against the BCP\nprovided by the Runtime, i.e. from -Xbootclasspath:_ or the\nenvironment variable BOOTCLASSPATH. For now, allow Runtime\nto extract the BCP from the primary boot image oat file when\nwe have -Ximage:_ but no BCP.\n\nAlso pass the boot class path components down to the OatFile\nso that we can open and use the original dex files when we\ndo not have copies in the vdex files. This allows compiling\napp prebuilts when the boot dex files are uncompressed and\naligned in the original jars.\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\nTest: run-libcore-tests.sh --mode\u003ddevice --variant\u003dX64\nTest: Manually create boot image jars with uncompressed and\n      aligned dex files, compile a boot image with dex files\n      not copied into vdex files and use this boot image for\n      compiling a prebuilt services.{art,vdex,odex}.\nBug: 119868597\nChange-Id: If9411ddbecf6bb90bfa9233040931c5e833f6aee\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": "aa6f48362b3258a5df5e527987ffe7e068eb4a79",
      "tree": "0fa8cfbebb77d2e7796084721c836b44114bdc97",
      "parents": [
        "8bda21f1d8bbc1060bf693f5d1666d3396d1cb69"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Wed Nov 21 18:57:54 2018 +0000"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Mon Dec 03 18:43:48 2018 +0000"
      },
      "message": "ART: ARM64: Pass ISA features to VIXL macroassembler.\n\nVIXL macroassembler should be initialized properly\nto support Armv8.X features in order to emit corresponding\ninstructions.\n\nTest: codegen_test.cc, relative_patcher_arm64_test.\nTest: test-art-host, test-art-target.\nChange-Id: I2f9e155c28b4d2252a3cfb19717f5d25824d5e11\n"
    },
    {
      "commit": "d378a567a435a80be9ab7eb8bfe0359c1240c0ff",
      "tree": "28e96907cda376e51289ee83d8071565f6ceba6b",
      "parents": [
        "e2ca5cfd18664ad9934102c14fd28cde2736b144",
        "1a8429680f9d08d5f2b49fd93f9ad4df81b7cb66"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Nov 30 18:40:34 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 30 18:40:34 2018 +0000"
      },
      "message": "Merge \"Add image compressed blocks\""
    },
    {
      "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": "f355ec703f519c3091853d85f61904be6dfb68aa",
      "tree": "82486a5104742260ab35382c0678165ebff85112",
      "parents": [
        "0e211e55fe51adbd6bab7278ff1ceabea21faf78",
        "c1896c9a0e15df3a1b9a3a19bcd2a933b654fe06"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 29 22:51:00 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 29 22:51:00 2018 +0000"
      },
      "message": "Merge \"C++17 compatibility: make WITH_TIDY\u003d1 happy again.\""
    },
    {
      "commit": "0e211e55fe51adbd6bab7278ff1ceabea21faf78",
      "tree": "59fbdd10f7bd5ef772d1411e8fb2a7c57cdd4c7e",
      "parents": [
        "4afe9f5218956a3f2b6827e26b10c0ed48af864b",
        "2b41ccaa462f5faa92edde97504b785ddca415f5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 29 22:11:28 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 29 22:11:28 2018 +0000"
      },
      "message": "Merge \"Extract dex file if it is uncompressed but unaligned\""
    },
    {
      "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": "2b41ccaa462f5faa92edde97504b785ddca415f5",
      "tree": "f9308a43745ebd606ec0799663b2c1822078bea4",
      "parents": [
        "90402ad6df38a5d4f268903aee5d7fe56791265f"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Nov 16 22:43:41 2018 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Nov 29 11:22:55 2018 -0800"
      },
      "message": "Extract dex file if it is uncompressed but unaligned\n\nA dex file would normally only be left in the zip file if it was both\nuncompressed and unaligned, but explicitly setting CopyOptions::kNever\nthrough --copy-dex-file\u003dfalse would only check if the dex file was\nuncompressed, not if it was aligned.  Add a required alignment\nargument to ZipEntry::MapDirectlyOrExtract so that the contents\nwill be extracted into memory if they don\u0027t meet the alignment\nrequirement.\n\nBug: 119412419\nTest: m test-art-host-gtest-oat_writer_test\nChange-Id: I4587e22165ee0a951ffca7db9a6f5c0d1ed2e56a\n"
    },
    {
      "commit": "d011d81e8c4c959f6d607bb80dfedf3b64a7f131",
      "tree": "803656224159e0c87c4a97ad640dbe90c6e7285a",
      "parents": [
        "8f50b2c27f9b32726bbadfcebba910640b94036e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 29 12:35:24 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 29 15:11:11 2018 +0000"
      },
      "message": "Use more vector\u003cstring\u003es in dex2oat.cc .\n\nReplace some uses of vector\u003cconst char*\u003e.\n\nTest: m test-art-host-gtest\nBug: 119868597\nChange-Id: Ib5b8d132a35b076c23d43f58a4715c4218dbbffb\n"
    },
    {
      "commit": "fd667d4165aefe51010e4fe3bd81b820ed9884ef",
      "tree": "3b37241f04c4f9fe30ca82cbbb1a23679c03c396",
      "parents": [
        "80e6a0917361273d471af731fee123f6b9e5e094",
        "312f10ed40dd175e71eba51ecb44e550e0ac6e97"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 22 10:22:46 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 22 10:22:46 2018 +0000"
      },
      "message": "Merge changes I05871a8a,I8baec836\n\n* changes:\n  Refactor loading boot image.\n  Remove boot image begin/size from image header.\n"
    },
    {
      "commit": "5ad3adeb0595b9cb5ada6185f0d5f689dfae0ba4",
      "tree": "f526c1be8b78123ae3c8f9082674d75fcca63bbb",
      "parents": [
        "a13be298b6bba821187c7f768a3e7bf0506829d0",
        "f0d3002d640bc41fe572e534542e9b8670838bd7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 22 08:59:01 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 22 08:59:01 2018 +0000"
      },
      "message": "Merge \"Fix app image generation and checking with shared libraries.\""
    },
    {
      "commit": "f0d3002d640bc41fe572e534542e9b8670838bd7",
      "tree": "3a3532c663b71aeca0a42f5e8cf193a7a8e86f72",
      "parents": [
        "fe96083dbf14f4c8465694e0144af0e13c2bc171"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 20 17:45:38 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 21 21:08:43 2018 +0000"
      },
      "message": "Fix app image generation and checking with shared libraries.\n\nWe can now have multiple class loaders in an app image.\n\nbug: 111174995\nTest: dex2oat_test, test.py\n\nChange-Id: Ie45c030b483efa78df2605fbcafb4e641b80c59a\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": "2a487eb89b67d7ff030368e4e4a6ed0a3ac39003",
      "tree": "bedffc5f4ee16d07c957d06cdab5148c69bd6a56",
      "parents": [
        "875b4f26517ce215342746f07e41cda4c1991237"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 19 11:41:22 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 20 13:04:36 2018 -0800"
      },
      "message": "ART: Fix performance-inefficient-vector-operation\n\nBug: 32619234\nTest: m test-art-host\nChange-Id: I286e27424ac39c0fed308811dc3004e734c0560c\n"
    },
    {
      "commit": "33e5d5289c32c6129138788a5e01ce6243676373",
      "tree": "e0b0a6523dda3a54fdfdb6013ca884e726bede0e",
      "parents": [
        "d295a75d952742604eaae0530daea19dd6fd782c",
        "6b9fd8c23a27b11961fcdcf43504c06a654fb83b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 20 09:59:50 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 20 09:59:50 2018 +0000"
      },
      "message": "Merge \"Support shared libraries in ClassLoaderContext::CreateClassLoader.\""
    },
    {
      "commit": "6b9fd8c23a27b11961fcdcf43504c06a654fb83b",
      "tree": "e33849628ae15b059087395f0268d95c7dfeea73",
      "parents": [
        "b321ac28f726a7ed41f277382d85702ffdfbe00f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 16 10:25:42 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 19 21:20:58 2018 +0000"
      },
      "message": "Support shared libraries in ClassLoaderContext::CreateClassLoader.\n\nbug: 111174995\nTest: dex2oat_test, class_loader_context_test\n\nChange-Id: I482012eca408f9e064d7c3d787662376e1b0de3b\n"
    },
    {
      "commit": "33f7c8aa87831945c567f57c8b860f216c4371ae",
      "tree": "9022cb2fe8bf889c0a32f4478b249145318a7a65",
      "parents": [
        "54c7da9c50ee85ade636605cd6ea18b4c2bc69fa"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 19 10:22:01 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 19 10:45:13 2018 +0000"
      },
      "message": "Remove CompiledMethod dependency on CompilerDriver.\n\nTest: m test-art-host-gtest\nChange-Id: Ibee78d5c54d3ff8162258963fde25065b579a000\n"
    },
    {
      "commit": "b321ac28f726a7ed41f277382d85702ffdfbe00f",
      "tree": "c454b79ad7abfda5323daa2ce4257c8fe3adacf5",
      "parents": [
        "9296e18a6af90d88ff3b557031659216c0cd130e",
        "b74574a5e497dbabbd716c758a9047b2dbdb2fb3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 16 10:19:17 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 16 10:19:17 2018 +0000"
      },
      "message": "Merge \"Speed up relative_patcher_arm64_test.\""
    },
    {
      "commit": "b74574a5e497dbabbd716c758a9047b2dbdb2fb3",
      "tree": "aeba8fbea5ac544529315eeced9f547bc0ef927a",
      "parents": [
        "721538fa5c8c1a49c552453592e4bd1510995054"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 15 16:05:22 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 15 17:18:15 2018 +0000"
      },
      "message": "Speed up relative_patcher_arm64_test.\n\nThis was one of the longest running tests because it had\nmany tests and for each test we have to create and tear down\nthe runtime. Refactor the macro-generated tests to use\ntemplates and merge many individual tests. This reduces the\ntime to run the test from over 50s to less then 20s on host.\n\nAlso speed up relative_patcher_thumb2_test a bit.\n\nTest: m test-art-host-gtest\nChange-Id: If7ffedbca788442cebf69e1276947fde9654f4a2\n"
    },
    {
      "commit": "9c4b970db31b234d6c0358802cd14ba4262e4ce6",
      "tree": "8a2f624b03fcf1fcfae3e42fe519e2900df3e52f",
      "parents": [
        "3c92ff4afe372ab0850ce95321ba4112b7f3dfdd"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 14 15:09:02 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 15 17:05:29 2018 +0000"
      },
      "message": "Rewrite image type in CompilerOptions.\n\nPrepare for introduction of boot image extension.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: Pixel 2 XL boots.\nChange-Id: Id007c4aeb4ada84fe65c1148fdf67e8a412e5b74\n"
    },
    {
      "commit": "0bcbe9399dfc546db5c81b13979afc85da19d025",
      "tree": "ba60269d976c8e7587cfe3a02e0cc16fbd544f64",
      "parents": [
        "01d45400c7fb057a8c3832708ae5b237a05645db",
        "4deaa9b3780998df8d0dca9670446aeae1df93ef"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 14 18:08:20 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 14 18:08:20 2018 +0000"
      },
      "message": "Merge changes I1617a601,Ifa324bea\n\n* changes:\n  ART: Apply --no-inline-from\u003d option on device.\n  Postpone DexCache preloading in the ImageWriter.\n"
    },
    {
      "commit": "38cf60adda75d4d8646a3b4caa33c239e48dee03",
      "tree": "6f36c95c21eb2af2bf43d3f7728260f697d20533",
      "parents": [
        "e99f73533df5e3b8c4b2afef753ee50ffb9ff050"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 13 16:17:02 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 14 17:18:42 2018 +0000"
      },
      "message": "Postpone DexCache preloading in the ImageWriter.\n\nPreload the DexCache with deterministic contents just before\nwe\u0027re about to copy it to the image memory.\n\nPreviously the contents of the preloaded dex cache arrays\nwere further modified by the OatWriter. As long as OatWriter\nwas processing the same data on a single thread, this was\ndeterministic but it was not working as originally intended.\n\nAlso fix OatWriter::InitImageMethodVisitor::StartClass() to\nuse the deterministic ClassLinker::LookupResolvedType()\nrather than checking only the DexCache.\n\nClean up OatWriter::InitImageMethodVisitor::VisitMethod(),\ncall LookupResolvedMethod() instead of ResolveMethod() for\nboot image methods as they should be already resolved.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: Manually verify with oatdump that dex cache array\n      contents are the same when compiling on host and\n      on the device.\nBug: 119436742\nChange-Id: Ifa324beabac2482621529655f72b4f734bd62030\n"
    },
    {
      "commit": "d0834e4a44440a8faf199024a030731ad26aae68",
      "tree": "0e9219249ed08f2f966f7a294b186ddf4d30d8cc",
      "parents": [
        "e99f73533df5e3b8c4b2afef753ee50ffb9ff050",
        "435516229e5f511d1ac4498da58372c8fece35b7"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Nov 14 11:50:03 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 14 11:50:03 2018 +0000"
      },
      "message": "Merge \"Revert^2 \"Link lzma and lz4 compression libs statically into libartbase and use that\"\""
    },
    {
      "commit": "b81c59ebb56db1fc454a59570426c40b6d619c5b",
      "tree": "589277760527d8a1a53f99f07141a3e3e71a0716",
      "parents": [
        "2b021c83498e523781ef3f413ebe34a3512900b3",
        "6be1dbd3bc34b2cfa0fe257acbea273f1b6f4a53"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 14 10:24:06 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 14 10:24:06 2018 +0000"
      },
      "message": "Merge \"ART: Rewrite core image detection.\""
    },
    {
      "commit": "6be1dbd3bc34b2cfa0fe257acbea273f1b6f4a53",
      "tree": "1840224989e4cbd538081951d948ed6a19bc61b4",
      "parents": [
        "dbcb48fc0d0841f327d108246487a4ef3df556ed"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 13 13:09:51 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 14 10:21:55 2018 +0000"
      },
      "message": "ART: Rewrite core image detection.\n\nRemove unused compiler option `core_image_` and cache\nthe IsCompilingWithCoreImage in the CompilerOptions instead.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: Idcf3b6c96dab9a39f823a16778e7698589442cd8\n"
    },
    {
      "commit": "9e9fc708e32ace076b8fc9f809055662e1090762",
      "tree": "1811ae6bf398986bc5a14e8f9b0b50f0b92f6483",
      "parents": [
        "e5a56803936246a0c5d8ddbaeba59e009cec6f82",
        "d6f301911ad977365db969283b67466dd4a76424"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 14 00:22:20 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 14 00:22:20 2018 +0000"
      },
      "message": "Merge \"Remove kDex2OatHostKey from oat-header\""
    },
    {
      "commit": "d6f301911ad977365db969283b67466dd4a76424",
      "tree": "00bfbfac77f6242f41c7951e35804296a0e90ec1",
      "parents": [
        "bad5c9a1f43148dc71f3b8e61cc201bc815fbac6"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Nov 12 16:49:31 2018 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Nov 13 10:21:23 2018 -0800"
      },
      "message": "Remove kDex2OatHostKey from oat-header\n\nThe oat-header used to include the ISA of the dex2oat used to compile\nthe image. This made cross-compiling a bitwise identical oat/image\nfile impossible and is not terribly useful so it was removed.\n\nTest: ./test.py --host\nBug: 119332327\nChange-Id: If9d21b5997907ee01283d1345749a01e2a2359ea\n"
    },
    {
      "commit": "435516229e5f511d1ac4498da58372c8fece35b7",
      "tree": "e510804ebf5b8f1786a7c377e1cef9fb5bb11d90",
      "parents": [
        "e5ed5bafc97e65e8d2b60ddaca48754a50ca5692"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Nov 09 15:14:54 2018 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Tue Nov 13 15:15:37 2018 +0000"
      },
      "message": "Revert^2 \"Link lzma and lz4 compression libs statically into libartbase and use that\"\n\nThis reverts commit 9960cbc0ff98978a9b32f14ae77d8ddb3c6908d9.\n\nReason for revert: This is the same as aosp/815019 except version_script is\nexcluded on Darwin. I think it should pass the mac targets, but haven\u0027t\ntested.\n\nTest: art/tools/buildbot-build.sh {--host,--target}\nTest: art/test/testrunner/run_build_test_target.py art-asan (not on Darwin)\nTest: python frameworks/rs/build_rs.py (on Darwin, thanks Orion!)\nBug: 118374951\nChange-Id: I7a362381f6d891c6dc1304e5fcf6f8851aa67d7c\n"
    },
    {
      "commit": "104883b04617a850adf11f05e57c2fd29e09c83c",
      "tree": "51d436588505a3ead506d633bdf97c9b4c934ae0",
      "parents": [
        "00e96d054e2b656d4d0f99fc141d1701af4dba23"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 09 17:12:23 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 12 15:26:21 2018 +0000"
      },
      "message": "Clean up primitive array helpers in Object.\n\nRefactor these helpers and avoid read barriers. Remove\nClass::Is{Int,Long}ArrayClass() and use the Object helpers\ninstead.\n\nRemove the AsByteSizedArray() and AsShortSizedArray()\nhelpers that essentially break the type system and rewrite\ntheir users, adding appropriate notes. {Float,Double}Array\nuses in Unsafe would have previously failed a DCHECK().\n\nTest: Additional test in 004-UnsafeTest.\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: I88b7e3df7de883f64cfc5eb437a40646f2884685\n"
    },
    {
      "commit": "38a938e2e83f5baa3238ce3b28ba4c61a268dd3d",
      "tree": "8b29c26d90b998fc717181298349ac2348f29c5f",
      "parents": [
        "a5de05da46e8a93436e68e7e0d242dce46269527"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Sep 21 10:55:51 2018 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Nov 08 19:38:07 2018 +0000"
      },
      "message": "Minimal Android Runtime APEX module.\n\nIntroduce build rules to generate com.android.runtime, a minimal\nAndroid Runtime APEX module containing just ART and its dependencies.\n\nWhen module com.android.runtime is built (`make com.android.runtime`),\nmake produces a `com.android.runtime.apex` package in the `apex`\ndirectory of the system partition\n(`$ANDROID_PRODUCT_OUT/system/apex/com.android.runtime.apex`).\n\nThis module is not built by default when generating a system image.\n\nTest: make com.android.runtime\nTest: art/build/apex/runtests.sh\nBug: 113373927\nChange-Id: I2019bd1934558feba6eccef13b887b2faa96caec\n"
    },
    {
      "commit": "1ecd7a848ea0363a0036fad1b7e0771f57eea922",
      "tree": "f08befc96a48e721f40f597a13949b7aed68602f",
      "parents": [
        "a25b68373d9b4b131d18cc732f0aced1df0ea454",
        "9960cbc0ff98978a9b32f14ae77d8ddb3c6908d9"
      ],
      "author": {
        "name": "Annie Meng",
        "email": "anniemeng@google.com",
        "time": "Thu Nov 08 11:47:16 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 08 11:47:16 2018 +0000"
      },
      "message": "Merge \"Revert \"Link lzma and lz4 compression libs statically into libartbase and use that\"\""
    },
    {
      "commit": "9960cbc0ff98978a9b32f14ae77d8ddb3c6908d9",
      "tree": "46602632efd61e7d1330f52e4ec0c7404ae9bad0",
      "parents": [
        "21579bec04bea8a9a6ca65ad5493016d1fcb9dcc"
      ],
      "author": {
        "name": "Annie Meng",
        "email": "anniemeng@google.com",
        "time": "Thu Nov 08 11:44:19 2018 +0000"
      },
      "committer": {
        "name": "Annie Meng",
        "email": "anniemeng@google.com",
        "time": "Thu Nov 08 11:44:19 2018 +0000"
      },
      "message": "Revert \"Link lzma and lz4 compression libs statically into libartbase and use that\"\n\nThis reverts commit 21579bec04bea8a9a6ca65ad5493016d1fcb9dcc.\n\nReason for revert: Build failure\n\nChange-Id: Ia941425b9462f478be78058b3d63a30106421de6\n"
    },
    {
      "commit": "a25b68373d9b4b131d18cc732f0aced1df0ea454",
      "tree": "0622c19fd3b883b09c14d9b75169e9329965adb2",
      "parents": [
        "82b67b2ef24a2475e88135ec63aa50270aad0254",
        "21579bec04bea8a9a6ca65ad5493016d1fcb9dcc"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Nov 08 10:56:46 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 08 10:56:46 2018 +0000"
      },
      "message": "Merge \"Link lzma and lz4 compression libs statically into libartbase and use that instead.\""
    },
    {
      "commit": "82b67b2ef24a2475e88135ec63aa50270aad0254",
      "tree": "f08befc96a48e721f40f597a13949b7aed68602f",
      "parents": [
        "b1fcebe160ace50dfd38efae7439640b2ac4268f",
        "1a2a5cd58b7b667b664a7c20a4887a6cd89b4776"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 08 10:28:48 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 08 10:28:48 2018 +0000"
      },
      "message": "Merge \"Move profile compilation info to CompilerOptions.\""
    },
    {
      "commit": "1a2a5cd58b7b667b664a7c20a4887a6cd89b4776",
      "tree": "8f92ca17ba6f8324881f52aa741ad5ed0f87016a",
      "parents": [
        "a5175541c197e7bf9b03651ea5da4e64a2ac2d27"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 07 15:39:48 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 08 10:26:57 2018 +0000"
      },
      "message": "Move profile compilation info to CompilerOptions.\n\nRemove one HInliner dependency on the CompilerDriver.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: If6f0ab864095641b5697c8c6f5100520f91d5e53\n"
    },
    {
      "commit": "21579bec04bea8a9a6ca65ad5493016d1fcb9dcc",
      "tree": "b33204570077025d4af6d2cb82dc8fa84e67b0b9",
      "parents": [
        "bf983214f7488a7923788356d1a441f518073b23"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Tue Nov 06 13:56:50 2018 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Nov 07 20:44:24 2018 +0000"
      },
      "message": "Link lzma and lz4 compression libs statically into libartbase and use that\ninstead.\n\nAll targets using these compression libs already use libartbase. This grows\nlibartbase VM size by 240K (219%) on 64 bit, but only these targets pack on\nextra bloat: dexanalyze, dexdump2, dexlayout(d), dexlist.\n\nTest: art/tools/buildbot-build.sh {--host,--target}\nTest: art/test/testrunner/run_build_test_target.py art-asan\nBug: 118374951\nChange-Id: I16d67d99897ec0a35e1467ab561bb82ee2449983\n"
    },
    {
      "commit": "24a993de16018304393cbe527c92658d81ad9f7a",
      "tree": "9245433e3a9d92082e157afbf4779e2bf6a5473a",
      "parents": [
        "fe59955fc41e277bf1c60378202ba785abb1e4a8",
        "56581d89cb21ba384dad7ef19246ec6671e1ed39"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 07 15:13:12 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 07 15:13:12 2018 +0000"
      },
      "message": "Merge \"Clean up oat key-value store.\""
    },
    {
      "commit": "56581d89cb21ba384dad7ef19246ec6671e1ed39",
      "tree": "b88ce8bd8623b331972ae7a9c128c02855dc43a5",
      "parents": [
        "a5175541c197e7bf9b03651ea5da4e64a2ac2d27"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 07 12:30:52 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 07 13:45:01 2018 +0000"
      },
      "message": "Clean up oat key-value store.\n\nRemove the \"image-location\" key because it is unused. Do not\nstore the \"dex2oat-host\" value (i.e. dex2oat runtime ISA) if\n--avoid-storing-invocation is specified.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: Ib0760f923443322f1a72d338abad2db3617036dc\n"
    },
    {
      "commit": "50f9dc26b8d80b1ba87418298426fb4c95001e7a",
      "tree": "73e9882ca4efcb9a2b34462982ec576ccc92b068",
      "parents": [
        "a5175541c197e7bf9b03651ea5da4e64a2ac2d27"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 05 10:29:43 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 05 10:29:43 2018 -0800"
      },
      "message": "ART: Clean up dex2oat_test a bit\n\nEnsure that most assertions are actual assertions, in the style\nof googletest.\n\nTest: m test-art-host-gtest-dex2oat_test\nChange-Id: Ifc5c7dc56856f09dd7a5abfdf190886d7f0f1beb\n"
    },
    {
      "commit": "d79b37b054cc7de5be093790408208a07bb799ec",
      "tree": "16ea9f25662be0670d4f02f5a03d42e56fc0ce33",
      "parents": [
        "fd35c6862a2417d4765f65a4b81459c09a2f70ae"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 02 13:06:22 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 02 13:34:49 2018 +0000"
      },
      "message": "ART: Throw on soft verify failure in InitializeClass().\n\nAvoid a CHECK() failure in ClassLinker::EnsureInitialized()\nwhen the transactional interpreter tries to initialize a\nclass with soft verification failures.\n\n(When desired, compilation can be forced to fail for such\nfailures with the --abort-on-soft-verifier-error option.)\n\nTest: Added a regression test to image_test.\nTest: m test-art-host-gtest\nTest: Pixel 2 XL boots.\nTest: m test-art-target-gtest\nChange-Id: Ibb8cf6ade81b5a2944c7e484251a67aba1f1fbeb\n"
    },
    {
      "commit": "8cc418e1101477ae17e7d267a3ba9c05f863558a",
      "tree": "1348e56a61ea2a7d7a47c007fa5492ec3736f675",
      "parents": [
        "1e152a6090c546f4a6184a5610c85cae7ac77068"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 31 10:54:30 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 01 13:42:43 2018 -0700"
      },
      "message": "Track what intern tables are from boot images\n\nGoal: Use this to make it faster to do collision checks between app\nimage intern tables against the non boot image intern tables.\n\nBug: 116059983\nTest: test-art-host\n\nChange-Id: I7a2305167335da5b6685822894f7985970e99053\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": "0ee508253edcdee41a80fcbf1511234ca176233d",
      "tree": "4c1471226b650c30a21aabb525392c2cebfa337a",
      "parents": [
        "eead626e0567d11ed0402e9586a99ca4a1d023eb",
        "1130659b0d948806e7ca974ead8ad2bcc1951d13"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 30 15:27:28 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 30 15:27:28 2018 +0000"
      },
      "message": "Merge \"Refactor MemMap::MapAnonymous().\""
    },
    {
      "commit": "eead626e0567d11ed0402e9586a99ca4a1d023eb",
      "tree": "57cf06ed51f580f44da42def5c47f1c47e22f4a0",
      "parents": [
        "b97c8af44dca6f0edbe80b13921bd47f9913c6fb",
        "65ed42a3d3a7bf1a42e759ed53c16b179f54813a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 30 12:33:27 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 30 12:33:27 2018 +0000"
      },
      "message": "Merge \"Revert \"Link compression libs statically into libartbase and use those everywhere.\"\""
    },
    {
      "commit": "65ed42a3d3a7bf1a42e759ed53c16b179f54813a",
      "tree": "77930ed648604f50fe6a46059f4cc659b443ddb7",
      "parents": [
        "8a94003e66f337fe84870ff68d3f6f234555cf06"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 30 12:33:04 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 30 12:33:04 2018 +0000"
      },
      "message": "Revert \"Link compression libs statically into libartbase and use those everywhere.\"\n\nThis reverts commit 8a94003e66f337fe84870ff68d3f6f234555cf06.\n\nReason for revert: Breaks asan and dex2oats.\n\nChange-Id: Idea760bbd2b25078ecd1ee5a39da94f6b74432a7\nbug: 118374951\n"
    },
    {
      "commit": "6e32b0059b4c3073c601018da3ca315ad568525a",
      "tree": "f4d259e7c52dcbbbdbe6a31d56720fca692af733",
      "parents": [
        "f82eb6e0309a138ea11e309ad125675efc44125b",
        "8a94003e66f337fe84870ff68d3f6f234555cf06"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Tue Oct 30 10:51:59 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 30 10:51:59 2018 +0000"
      },
      "message": "Merge \"Link compression libs statically into libartbase and use those everywhere.\""
    },
    {
      "commit": "1130659b0d948806e7ca974ead8ad2bcc1951d13",
      "tree": "9046a016fafc7f9bff4e34732aa8f89ed81ad46c",
      "parents": [
        "1c1442a498fd3f9ddc5d2bb04baa7ccd2d3539c4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Oct 26 14:22:59 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 30 10:20:32 2018 +0000"
      },
      "message": "Refactor MemMap::MapAnonymous().\n\nRemove the address argument from the shortcut overload and\nintroduce one more shortcut overload. This makes it easier\nto find all uses where we pass non-null address hint.\n\nRemove `requested_begin` parameter from some constructors\nwhere we were always passing null. Rewrite some tests to\nuse the reservation API.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 118408378\nChange-Id: Ibbbb96667e7cc11cf7fea119892463d8dbc9a8b5\n"
    },
    {
      "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": "a63dc15dfa15fb486b40b0702a5608a4f1e9b6b1",
      "tree": "d9c53aa85a356ff5f91d782b29d6febac3537331",
      "parents": [
        "e8d4509d83929244507eec499c99b0374bcb7555",
        "c57c680b16eb4857eef16134a811f4c2ff9d95f0"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Tue Oct 30 01:00:26 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 30 01:00:26 2018 +0000"
      },
      "message": "Merge \"Modernise code to use std::make_unique\""
    },
    {
      "commit": "c57c680b16eb4857eef16134a811f4c2ff9d95f0",
      "tree": "9527328cb8738878e1b727a48620769224dddb2c",
      "parents": [
        "ce2a00daa92670a4fc01ef59fdbc3769a846f69c"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Mon Oct 29 14:28:56 2018 -0700"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Mon Oct 29 14:39:24 2018 -0700"
      },
      "message": "Modernise code to use std::make_unique\n\nGenerated by clang-tidy.\n\nTest: m checkbuild\nChange-Id: Idb24960d9326c0d94ab5d04b18deb0894d23da9f\n"
    },
    {
      "commit": "8a94003e66f337fe84870ff68d3f6f234555cf06",
      "tree": "0271729b2571c969238786d21a45ce05120b96e0",
      "parents": [
        "ce2a00daa92670a4fc01ef59fdbc3769a846f69c"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Oct 24 15:02:55 2018 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Mon Oct 29 21:20:43 2018 +0000"
      },
      "message": "Link compression libs statically into libartbase and use those everywhere.\n\nAll targets using these compression libs already use libartbase. This grows\nlibartbase VM size by 314K on 64 bit, but only these targets pack on the\nextra the bloat of liblz4 (84K) and liblzma (174K): dexanalyze, dexdump2,\ndexlayout(d), dexlist. libbacktrace and libunwindstack gain liblz4 only.\n\nOn the other hand this gets rid of static instances in several shared libs.\n\nTest: mmma art\nTest: art/test.py --host --64 --optimizing\nTest: env ART_TEST_NO_SYNC\u003dtrue make -j4 test-art-target-gtest\nTest: art/test/testrunner/testrunner.py -j4 --target --64 --optimizing\nBug: 118374951\nChange-Id: Ida103546d2d16ef892d09e9ca3a0ae5e3b42a541\n"
    },
    {
      "commit": "e15b9b189a0898b5554002d9c86da7c17f2eb7ae",
      "tree": "b9d484bb6aed03f8d1435d52c6ae1cfbf3702368",
      "parents": [
        "72d3493a6b9fde2fc3c1abb9ee6afff4451ec291"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Oct 29 12:54:27 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Oct 29 13:05:18 2018 -0700"
      },
      "message": "ART: Do some include-what-you-use\n\nHelp with transitive includes. In preparation for new\nspecialized headers reducing transitivity.\n\nBug: 118385392\nTest: mmma art\nChange-Id: Ie79afda4e09191428c2b4c2f20a7e3352c01c1e9\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": "eba69a124eb6e0038e3ecc9c1a57cc0251641a89",
      "tree": "65c0e9a08b3713458fc1d3b1cdd8b282814071da",
      "parents": [
        "3070e9c98573f94f1ccc5997985a630ab5fbf21b",
        "52ecb65ae9e1ad6fe7f58beecc88cdc08e08f0c4"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Oct 26 19:19:50 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 26 19:19:50 2018 +0000"
      },
      "message": "Merge \"ART: Add object-array-alloc-inl.h\""
    },
    {
      "commit": "3070e9c98573f94f1ccc5997985a630ab5fbf21b",
      "tree": "8bc54bddff85608eaf0603540bf8ee67aeffe23f",
      "parents": [
        "7d1c0491d076943c6972d242e03f16f70e0e7d36",
        "d33d318685ec4a1c9e7995c914c104ab6487513b"
      ],
      "author": {
        "name": "Paul Hobbs",
        "email": "phobbs@google.com",
        "time": "Fri Oct 26 17:22:35 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 26 17:22:35 2018 +0000"
      },
      "message": "Merge \"Revert \"Revert^2: Add dex item for hiddenapi flags\"\""
    },
    {
      "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": "52ecb65ae9e1ad6fe7f58beecc88cdc08e08f0c4",
      "tree": "7a8ee84cad0df34ab33bdcb0115fc0c79d6c83be",
      "parents": [
        "c2099b0b0c052dd61137b9cf5f9f8b30bab1a7a8"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Oct 24 15:18:21 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 26 08:44:12 2018 -0700"
      },
      "message": "ART: Add object-array-alloc-inl.h\n\nIn an effort to reduce the (transitive) proliferation of heap-inl\nadd a specific inline header for object array allocation.\n\nBug: 118385392\nTest: mmma art\nTest: m test-art-host\nChange-Id: I0d7c40ed53708d4c759190961b40f0cac3fe696d\n"
    },
    {
      "commit": "da1cc3b9eea9954754e11441cd52f1f9b2fc33e7",
      "tree": "595eaa503e2d31029fe1e84ccff27c6a9c8809d6",
      "parents": [
        "ce4cbaabbf4e01947055ac5c5e364c2a03979f33",
        "fe3a979f6214e2ea94a9aed4c573c6a6f64c7096"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Oct 26 09:19:23 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 26 09:19:23 2018 +0000"
      },
      "message": "Merge \"Revert^2: Add dex item for hiddenapi flags\""
    },
    {
      "commit": "f559f57342bf90c2b02bac0887c7fe5e249bc0d8",
      "tree": "18ba66616f125f29fb90fe067311c8adf10de417",
      "parents": [
        "7ac666682aedab02df2379f342288b7c7a8c99ea",
        "88dbad33ae92167a89a5d5469f39f41624535dbf"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Oct 25 20:09:06 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 25 20:09:06 2018 +0000"
      },
      "message": "Merge \"ART: Do some include-what-you-use\""
    },
    {
      "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": "88dbad33ae92167a89a5d5469f39f41624535dbf",
      "tree": "b3b0c864c12c246117143954f16df054309852c6",
      "parents": [
        "c58dca3941459b4375a53925f3471373584eab5e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jun 26 19:54:12 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 25 09:52:28 2018 -0700"
      },
      "message": "ART: Do some include-what-you-use\n\nHelp with transitive includes. In preparation for new\nspecialized headers reducing transitivity.\n\nBug: 118385392\nTest: mmma art\nChange-Id: Ib465ecceec3331ea81588fb4a43eb65e766b6904\n"
    },
    {
      "commit": "55c880ed2f27f85d4d8761c22a5d0668d886a0f9",
      "tree": "2a85f0a4dca3688c3991801d5ace7b09d4652c01",
      "parents": [
        "fbeef469d2a147c055556121be51b8a41858a368"
      ],
      "author": {
        "name": "Chris Wailes",
        "email": "chriswailes@google.com",
        "time": "Wed Oct 24 13:10:35 2018 -0700"
      },
      "committer": {
        "name": "Chris Wailes",
        "email": "chriswailes@google.com",
        "time": "Wed Oct 24 17:57:01 2018 -0700"
      },
      "message": "Revert \"Disable kAppImageMayContainStrings\"\n\nThis reverts commit 966b9333703ecae8cc573a96a5f60a0ea7f507e1.\n\nBug: 117846779\nBug: 117426394\nTest: m test-art-host-gtest\nTest: art/test/testrunner/testrunner.py -b --host\nChange-Id: I9aa705eaff2100fc2fb60db4ddd6269bd5ca182c\n"
    },
    {
      "commit": "fbeef469d2a147c055556121be51b8a41858a368",
      "tree": "959225e7ffa0c06e24f31e47743c695ee62d07be",
      "parents": [
        "08fc17a671ebae4671f0e87171599874e9352f87"
      ],
      "author": {
        "name": "Chris Wailes",
        "email": "chriswailes@google.com",
        "time": "Fri Oct 19 14:16:35 2018 -0700"
      },
      "committer": {
        "name": "Chris Wailes",
        "email": "chriswailes@google.com",
        "time": "Wed Oct 24 17:56:54 2018 -0700"
      },
      "message": "Fixed a GC bug caused by improper AppImage string fixup.\n\nPreviously, AppImage string references were being updated without\nproperly updating GC metadata.  This patch collects and records the\ninformation necessary to properly patch the references without breaking\nthe GC.\n\nBug: 117846779\nBug: 117426394\nTest: m test-art-host-gtest\nTest: art/test/testrunner/testrunner.py -b --host\nChange-Id: I2faac626f7cccf080e7520b87dd117b58c8d64a3\n"
    },
    {
      "commit": "e7e4eda7a69307a7c3d43c7b245fd0a703449c94",
      "tree": "807f6798512f8c522fcfca197217b335371f037e",
      "parents": [
        "587a82612e5570458a12f458fad05c7807eb7f0b",
        "6d3c181278c70943c3e53aad254f6ef948a87aac"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 24 16:06:51 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 24 16:06:51 2018 +0000"
      },
      "message": "Merge \"ART: Clean up CreateImageSections() comment.\""
    },
    {
      "commit": "6d3c181278c70943c3e53aad254f6ef948a87aac",
      "tree": "3d87c2e2dfd0f93c8d1826244f197e7f37c2edff",
      "parents": [
        "cd98cde0642e664ae2396555c5d90c0a44c77ba7"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 24 14:00:00 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 24 14:00:00 2018 +0100"
      },
      "message": "ART: Clean up CreateImageSections() comment.\n\nAnd reorder ImageHeader section getters.\n\nTest: Rely on TreeHugger.\nBug: 77856493\nChange-Id: Ifebb12d454065d0b4686bb48262f93e3958d36f0\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": "76d5c1acb621f0464b931ecfd0bd3ccc2eb1b04a",
      "tree": "55ef2df9d2753bb90b732c6f3f0c22ef872a29bf",
      "parents": [
        "8d66a3aeec2f0f5a79e3ca95a77f1a21e5cdc69f",
        "d68ab24b556fca8b89695d4e199a906a611dae64"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 23 13:46:24 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 23 13:46:24 2018 +0000"
      },
      "message": "Merge \"Remove the relocations section from the image.\""
    },
    {
      "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": "929f42545dabd4e23bd8c3ff14f25a8acfcef114",
      "tree": "b699a953c5d7c912d3eeeae0b8e9ab54f69a6e52",
      "parents": [
        "7f1fe5d78af99e19ffebc1e5c03f095ea6301ea2",
        "dfcd82c09e8ce4562ed39e006d4b1c8163b4e25e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Oct 22 18:08:44 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 22 18:08:44 2018 +0000"
      },
      "message": "Merge \"ART: Fix android-cloexec warnings\""
    },
    {
      "commit": "dfcd82c09e8ce4562ed39e006d4b1c8163b4e25e",
      "tree": "d9bfd3e043a95b3c8e302769cef23c13a89df3c5",
      "parents": [
        "4f570a43146c1456071f2ffe6590ab96e723051a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Oct 16 20:22:37 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 19 13:06:33 2018 -0700"
      },
      "message": "ART: Fix android-cloexec warnings\n\nUse the DupCloexec helper wherever possible. Add O_CLOEXEC to open\nand fopen calls.\n\nBug: 32619234\nTest: WITH_TIDY\u003d1 mmma art\nChange-Id: I0afb1beea53ab8f68ab85d1762aff999903060fe\n"
    },
    {
      "commit": "a498458d7882b70682bd3bc25882061329cb938e",
      "tree": "c45e90c411a03cb48e744141c87d8701c9c9f6d1",
      "parents": [
        "6bc39b1e080d574a0ed0c4dabe4d0895dd40456c",
        "22752770e5e7dd9fb30bb35373b61e76b40ae5c3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 19 19:59:42 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 19 19:59:42 2018 +0000"
      },
      "message": "Merge \"Resolve const-string of clinit\""
    },
    {
      "commit": "22752770e5e7dd9fb30bb35373b61e76b40ae5c3",
      "tree": "225ace62d4fba030cf2b5f5e0bbaf02e14e1c886",
      "parents": [
        "eca553e1a8a47a23de621d3c998c2f6d5561d033"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 18 14:18:59 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 19 19:59:32 2018 +0000"
      },
      "message": "Resolve const-string of clinit\n\nResolve the const strings of the clinit for classes that are loaded in the profile.\n\nFor Maps, the number of strings is ~4400. This would take ~100k RAM if each string\nis around 20 characters. Note that these strings are mostly already loaded during\nstartup, so there might not be a net RAM usage increase.\n\nTest: test-art-host\nBug: 117621117\n\nChange-Id: I632a91633c1b3757523ef6e655f192305554499b\n"
    },
    {
      "commit": "4f570a43146c1456071f2ffe6590ab96e723051a",
      "tree": "7831f6e65bb5fa00fe54d0eb3f7e8146b1a42bf8",
      "parents": [
        "d43723ae34bb3845a9c0e4cb790ffaff13974562",
        "f4efa9ed0d7616bd32b258562d6977d9b7554af2"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Oct 19 12:10:23 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 19 12:10:23 2018 +0000"
      },
      "message": "Merge \"Remove oat_data_begin checks from OatFile.\""
    }
  ],
  "next": "afaf7f8198fe5ffc054278da6800f81dd83f272c"
}
