)]}'
{
  "log": [
    {
      "commit": "a88abfa91af92e87b806529813a1787568fdb032",
      "tree": "632ae56a03fb3178f093e9722eccfe9c24a5fc1a",
      "parents": [
        "2f34e59c10c30ea24fa5f4bc4e3d5a9dc6469c34"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Feb 04 11:08:29 2019 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Feb 06 12:21:04 2019 -0800"
      },
      "message": "Add feature flag for loading app image startup cache\n\nPassed from the zygote.\n\nIf false, app image string intern tables and preresolved strings are not\nloaded. This means the intern strings are generated by walking the image\ninstead of looking at the app image intern table directly.\n\nBug: 123524494\nBug: 116059983\nTest: test-art-host\nTest: adb shell device_config put runtime_native use_app_image_startup_cache true\n\n(cherry picked from commit 5153419cba1cdfb6d5e5baba3e45fcf703c9daec)\n\nMerged-In: I6f800d1d989fd5e5b23166a115b1b241efac7ad2\nChange-Id: I119948efd25c039a057f283c19b23431093659f4\n"
    },
    {
      "commit": "c66d6a7569ef72d9e9eb115bb7b663ccc8df5179",
      "tree": "0b7e519f6f46ac231e932b9ee798a4c4b09b43e0",
      "parents": [
        "b7abcaff75e824af8fd5104981404ce1b97b86e9",
        "1cedb4a2779fd161f781503fd5de08cab0a1c85b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 06 17:06:22 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 06 17:06:22 2019 +0000"
      },
      "message": "Merge \"ART: Move .bss mappings check before .bss init.\""
    },
    {
      "commit": "1cedb4a2779fd161f781503fd5de08cab0a1c85b",
      "tree": "a9c0b7082e0d5d2f1b931eac7db3fcf9b0d46862",
      "parents": [
        "7909e1e4cc741b38b25328e2f9077beb7ecd018b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 06 14:13:28 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 06 14:15:00 2019 +0000"
      },
      "message": "ART: Move .bss mappings check before .bss init.\n\nPreviously the check was done before we compared the dex\nfile checksums, so an out of date oat file could have\nfailed the check. Now we\u0027re doing the check only if we\u0027re\ninitializing the .bss section for use by an executable oat\nfile, i.e. after matching the dex file checksums.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 119601889\nChange-Id: Ib79d84c5bc2cf0674fc1f76071c589d49663e13c\n"
    },
    {
      "commit": "9f3928f2f10ad53af12d825e093f57d337f2d570",
      "tree": "daad6e34cd0f3caf8ad63143ea2980e26f927451",
      "parents": [
        "3aa868aba9cc4d9b61898f7fbfac7a4bccdb74d4"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Feb 04 11:19:31 2019 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Feb 05 08:32:49 2019 -0800"
      },
      "message": "ART: Change vtable check implementation\n\nTrade space for performance and use a (pseudo-)linear implementation\nfor CheckVTableHasNoDuplicates.\n\nThe new algorithm has a first pass that attempts to check under the\nassumption that all entries are from the same dex file, and a second\npass dedicated for the cross-dex-file case.\n\nBoth passes use maps to store discovered information and detect\nduplicates via existing entries. The code is complicated by an effort\nto reduce repeated hashing overhead.\n\nDecreases dex2oatd preopting of a big app from 150s to 35s.\n\nBug: 123888325\nTest: m test-art-host\nChange-Id: I3e5e3c8ccfeaf94b89b045eb691ec88556399ae6\n"
    },
    {
      "commit": "3aa868aba9cc4d9b61898f7fbfac7a4bccdb74d4",
      "tree": "dee7b51a244648fd4b54da71f930f0788ea37f23",
      "parents": [
        "a2fed081e33bcc956ebc545aacd654ec6a32673d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Feb 04 11:18:43 2019 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Feb 05 08:31:26 2019 -0800"
      },
      "message": "ART: Add unchecked conversions of arrays\n\nAdd array conversion functions that do not check the type,\nand use them in an unchecked version for PointerArray.\n\nDecreases dex2oatd preopting of a big app from 151s to 150s.\n\nBug: 123888325\nTest: m test-art-host\nChange-Id: Id58c65ac603a20c2cfb9e3289af4f3bc323554b6\n"
    },
    {
      "commit": "a2fed081e33bcc956ebc545aacd654ec6a32673d",
      "tree": "13e1fc19a737dff8cd416725bce6329086516c99",
      "parents": [
        "2860c19944b64c581a8af63339805409c0584d2f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Feb 01 09:34:43 2019 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Feb 05 08:00:37 2019 -0800"
      },
      "message": "ART: Optimize array accesses\n\nOptimize computation of the data offset of arrays by adding\na constant for the array payload field offset, and templatized\nversions of the computation. Add a correctness check on runtime\ncreation.\n\nTemplatize CheckVTableHasNoDuplicates.\n\nDecreases dex2oatd preopting of a big app from 165s to 151s.\n\nBug: 123888325\nTest: m test-art-host\nChange-Id: I8db9df545dc807a307aef8af7dad7a15757670b1\n"
    },
    {
      "commit": "7b3063b008fcfe218878725efcb5aab8cc049104",
      "tree": "c572b56381507e89956ad8734a920f75915132e8",
      "parents": [
        "b121449e6efcb1a01355059afb705bbd76230df2"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jan 07 14:12:52 2019 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jan 07 14:12:52 2019 -0800"
      },
      "message": "ART: Only log initialization failure on initialization\n\nDo not print the diagnostic for other cases.\n\nBug: 120029730\nTest: mmma art\nTest: m test-art-host\nChange-Id: I9d3be4bbcf78bd8745a127cb000115806fc60b29\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": "5b20b358edb0c586ae2106a82be365717da82507",
      "tree": "3cda8d9774087f3f6b80681f18d03c271d113fbf",
      "parents": [
        "62f6e9055363df6b6372d86960e8d987d6c439a1"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 11 19:03:20 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 13 10:52:08 2018 -0800"
      },
      "message": "ART: Rewrite EnsureInitialized hit case\n\nWhen an initialized class is found during EnsureInitialized, do\nnot check whether verification was attempted and fix up bits.\nInstead, ensure that all class-loading paths have that done\nwhen eventually getting here.\n\nSpecial runtime-constructed classes (primitives, arrays, proxies)\nneed code to do this work. \"Normal\" classes have the work done\nduring VerifyClass.\n\nLeave a DCHECK in as a state check. Protect state transfers with\nadditional checks.\n\nThis reduces the overhead of the interpreter which cannot elide\ninitialization checks for static accesses.\n\nBug: 115834172\nTest: m test-art-host\nChange-Id: Iacd6652583364509c37eafe81fed1198abb1b71a\n"
    },
    {
      "commit": "cf923f535dd1cf0c03707bbdfca6335d3f88fa92",
      "tree": "8d45b1dce534b2b53a1a0b81fd81f3a823da92f3",
      "parents": [
        "3c9d3033b5920bf09abeac41e72e2f22f20f316a",
        "4433c4351aab98005e12a6b53905678758b74665"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 13 08:42:54 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 13 08:42:54 2018 +0000"
      },
      "message": "Merge \"Allow boot image for a part of the boot classpath.\""
    },
    {
      "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": "afc60cd6ddcd15353698bb453716313dea241ef8",
      "tree": "708bbf11e425ddb7a75874f27d272fd5484d0bf1",
      "parents": [
        "58431a7cf863b2eb7fe25eff6a28ec376f2f151d"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Dec 05 11:59:31 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Dec 11 11:32:37 2018 +0000"
      },
      "message": "Cleanup native debug interface api.\n\nStrongly type the DEX file arguments.\n\nRemove the need for callers to worry about locks.\n\nUse std::map instead of std::unordered_map internally.\n\nTest: ./art/test.py -b -r -t 137\nChange-Id: I8bd79b796b5c7da265afc43a07ed227f550116c7\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": "17ed987eeebdebbd1b923c3c2a6887a233cb7517",
      "tree": "9d137f6e73d2aac0a0403372d4065fd9da0612d6",
      "parents": [
        "ed8b4ac3d7a78cc4976fa24a34bac92f4fd47a27",
        "05909d81d322c0b20445e672c338c626e43f650d"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Dec 07 09:25:59 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 07 09:25:59 2018 +0000"
      },
      "message": "Merge \"Support class lookup for InMemoryDexClassLoader\""
    },
    {
      "commit": "05909d81d322c0b20445e672c338c626e43f650d",
      "tree": "3a8edef57fce12fa3d69a783f6b9523b203c85e6",
      "parents": [
        "69431d3ba1c560f0b23bd2ad6257949deb679aa7"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Dec 06 16:25:16 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Dec 06 19:34:02 2018 +0000"
      },
      "message": "Support class lookup for InMemoryDexClassLoader\n\nSetting up InMemoryDexClassLoader with \u0027null\u0027 as parent results in the\nclass loader not being able to load any boot classpath classes. This is\ndue to the fact that InMemoryDexClassLoader inherits class lookup from\nBaseDexClassLoader which delegates it to ART, but ART rejects\nInMemoryDexClassLoader as not supported.\n\nBug: 120603906\nBug: 120613979\nTest: InMemoryDexClassLoaderTest\nChange-Id: I3139b1bb343b5fc722bcf06f89a6f6a21a3c7c54\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": "e16727388a0a2aedae530f686c0fd95cd2bbb80f",
      "tree": "a35bc53fd844f5037b572fe862d9178d83fce5ad",
      "parents": [
        "458128737485d72028d0e4af9855b7773c81010b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 30 01:09:49 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 30 19:09:57 2018 +0000"
      },
      "message": "Revert^2 \"Support shared libraries in CreateContextFromClassLoader.\"\n\nThis reverts commit 1717a493a4a0c1c3b69ecfcb58838627b4c75878.\n\nbug: 120036590\nbug: 120031686\n\nReason for revert: Fix code to ensure ownership of dex files.\n\nChange-Id: I99fffb52b73e0a41d779a41605ddf2e9249c02e0\n"
    },
    {
      "commit": "1717a493a4a0c1c3b69ecfcb58838627b4c75878",
      "tree": "84f28de48b55ea9942d3ffc49b13c0ec1c1435b7",
      "parents": [
        "a66d69e884b6f9f41a8da31e6d27b498984c7fa3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 30 01:02:50 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 30 01:02:50 2018 +0000"
      },
      "message": "Revert \"Support shared libraries in CreateContextFromClassLoader.\"\n\nThis reverts commit a66d69e884b6f9f41a8da31e6d27b498984c7fa3.\n\nbug: 120036590\nbug: 120031686\n\nReason for revert: Fails libcore \n\nChange-Id: I6bec17b1e6c0d767c10b44572ca5f8d73c5fc37e\n"
    },
    {
      "commit": "a66d69e884b6f9f41a8da31e6d27b498984c7fa3",
      "tree": "58efae80d2b2161feff23143ab620242d1c09605",
      "parents": [
        "8f50b2c27f9b32726bbadfcebba910640b94036e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 28 16:06:12 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 29 17:16:04 2018 +0000"
      },
      "message": "Support shared libraries in CreateContextFromClassLoader.\n\nMissed this method in my previous set of shared libraries support.\n\nbug: 120036590\nbug: 120031686\nTest: test.py, app startup with speed-profile\nChange-Id: I5c1ec567cfa5452a1f510a3279a9e15125f429ba\n"
    },
    {
      "commit": "08005628d20b862ea8b3a510a06cf5d6e0147328",
      "tree": "f6e22a222b592926075a546fbcd720f7cec9a8f6",
      "parents": [
        "23b729e17ed437d19583f70e63d1fc8a85b5dae4",
        "e36e7f2226e4e08b7a7094f78cb80bbe0e729c2b"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Nov 28 09:23:51 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 28 09:23:51 2018 +0000"
      },
      "message": "Merge \"Store ImtIndex in ArtMethod.\""
    },
    {
      "commit": "23b729e17ed437d19583f70e63d1fc8a85b5dae4",
      "tree": "80fca63f75a6aca3bbd71c383154b57572d56091",
      "parents": [
        "98034bfb4178e5054c89e5a4aa738afe1caff396",
        "c9de61cf9477e221e0dcc6470de9bf73c0559cf0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 27 23:39:55 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 27 23:39:55 2018 +0000"
      },
      "message": "Merge \"Revert^2 \"Refactor code around JIT creation.\"\""
    },
    {
      "commit": "c9de61cf9477e221e0dcc6470de9bf73c0559cf0",
      "tree": "db42f9c3b26d7543b7c378397debfc0595925ba6",
      "parents": [
        "763cd98161424cf19af2f113a6802f04860dcd6e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 27 17:34:31 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 27 18:01:19 2018 +0000"
      },
      "message": "Revert^2 \"Refactor code around JIT creation.\"\n\nThis reverts commit 763cd98161424cf19af2f113a6802f04860dcd6e.\n\nBug: 119800099\n\nReason for revert: Updated the DCHECKo take into account current state\nof zygote not having a thread pool.\n\nChange-Id: I1181ff85e7aebd062ee892548b80ab3de06a5ac7\n"
    },
    {
      "commit": "e36e7f2226e4e08b7a7094f78cb80bbe0e729c2b",
      "tree": "0787ae19a232728121a60791f3a18094529120f1",
      "parents": [
        "244470afafdb1c5aba17507ef793d316b9c4d038"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Nov 14 14:21:23 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Nov 27 17:31:01 2018 +0000"
      },
      "message": "Store ImtIndex in ArtMethod.\n\nThis avoids recalculation and reduces pressure on the thread local cache.\n\nThis halves the time we spend hashing from 2% to 1% (maps on device).\n\nTest: ./art/test.py -b --host --64\nChange-Id: I2407bd9c222de4ddc6eea938908a1ac6d7abc35b\n"
    },
    {
      "commit": "a61a969e2d32c175fca043a33dcc3af04ffa41f0",
      "tree": "ca3ea7e5228bd57fcec9f171d34fa11d1a43e5fe",
      "parents": [
        "52f5fa70cbe9b99386664697186f06046d351985",
        "763cd98161424cf19af2f113a6802f04860dcd6e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 26 21:19:36 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 26 21:19:36 2018 +0000"
      },
      "message": "Merge \"Revert \"Refactor code around JIT creation.\"\""
    },
    {
      "commit": "763cd98161424cf19af2f113a6802f04860dcd6e",
      "tree": "bfb50d986ad25030ecfde9b3a4e1ffd8983e30f6",
      "parents": [
        "7a2c7c2f7062d9fef21b72ff9c10ca8ef863eb8b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 26 18:21:45 2018 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 26 18:21:45 2018 +0000"
      },
      "message": "Revert \"Refactor code around JIT creation.\"\n\nThis reverts commit 7a2c7c2f7062d9fef21b72ff9c10ca8ef863eb8b.\n\nReason for revert: Breaks boot in debug mode\n\nBug: 119800099\nChange-Id: I6d015b04c480f76824ead936238cbf49b164b7e3\nTest: N/A\n"
    },
    {
      "commit": "d0f99b93a76451ee0a57187d863bf101a407f374",
      "tree": "78032d83da65c5505635620a7f07d32f88b20406",
      "parents": [
        "244470afafdb1c5aba17507ef793d316b9c4d038",
        "4835d21a33b783869820c928bfc0a16f249d65f2"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 26 16:57:23 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 26 16:57:23 2018 +0000"
      },
      "message": "Merge \"ART: Fix ResolveType with ArtMethod\""
    },
    {
      "commit": "80e6a0917361273d471af731fee123f6b9e5e094",
      "tree": "16ffc3af15e57113e073f97955b5675244ef91f5",
      "parents": [
        "5ad3adeb0595b9cb5ada6185f0d5f689dfae0ba4",
        "7a2c7c2f7062d9fef21b72ff9c10ca8ef863eb8b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 22 08:59:26 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 22 08:59:26 2018 +0000"
      },
      "message": "Merge \"Refactor code around JIT creation.\""
    },
    {
      "commit": "4835d21a33b783869820c928bfc0a16f249d65f2",
      "tree": "fe49fa458772f3e43c8a55c51a07a68c360cccf6",
      "parents": [
        "5a78e8dbf068c544b84e98f636b30045b09451c4"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 21 14:55:10 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 21 14:55:10 2018 -0800"
      },
      "message": "ART: Fix ResolveType with ArtMethod\n\nArtMethods may be obsolete. In that case, the dex cache of the\ndeclaring class is not correct. Refactor the code to avoid\nissues.\n\nPartially reverts commit 09c5ca40635faee00f40f6ca0581dd475efd545e.\n\nBug: 119830111\nTest: m test-art-host\nChange-Id: Ibf89af48e6384569c2abd6d5846cf05c929679d0\n"
    },
    {
      "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": "7a2c7c2f7062d9fef21b72ff9c10ca8ef863eb8b",
      "tree": "909d18e31d319313a0729019258418980c810d79",
      "parents": [
        "c754cc8e1c2dbcb1331ec2bed3ea0787bdd2b5c3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 20 10:03:13 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 21 11:09:49 2018 +0000"
      },
      "message": "Refactor code around JIT creation.\n\n- Create the JIT early on.\n- Have dedicated zygote spaces, that get assign after the fork.\n- Re-parse compiler options after fork to take into account customization\n  of debug flags by the child.\n\nCurrently, we only create the thread pool in the child, so the zygote\nisn\u0027t jitting yet.\n\nBug: 119800099\nTest: test.py, device boots\nChange-Id: I591ce933ebf54a67937ab1d05206534f55ef2f65\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": "85865697ff9fabede3d64ff64cde72727c3fc4c1",
      "tree": "0c67639c4c286149fa3f06f5f412683e39014790",
      "parents": [
        "b321ac28f726a7ed41f277382d85702ffdfbe00f"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Oct 30 17:26:20 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Nov 16 11:11:20 2018 +0000"
      },
      "message": "Runtime flags only for fast/slow hiddenapi path\n\nWith more flags being supported in the dex file, stop copying all of\nthem into ArtField/ArtMethod access flags. Instead, store the\ninformation needed to figure out whether to enter the slow path and\nretrieve full access flags from dex or not.\n\nAt the moment, the only runtime flag is kAccPublicApi assigned to all\nclass members on the whitelist.\n\nThe CL also moves hardcoded API membership of intrinsics out of\nArtMethod and into hidden_api.h, and moves ArtMethod::SetIntrinsic\ninto the .cc file.\n\nTest: m test-art\nChange-Id: Ia1cc05060dbc22341768161dfd8697c6158e803a\n"
    },
    {
      "commit": "9296e18a6af90d88ff3b557031659216c0cd130e",
      "tree": "6c201062f3be6ec58dd6db21d4c21a81e8f977ae",
      "parents": [
        "671986e1bb82de1e5af97506d08ba343f3854711",
        "80a560c91a0c46215f4d554a58528fc24b00fc09"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 16 09:58:16 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 16 09:58:16 2018 +0000"
      },
      "message": "Merge \"Add native support for BaseDexClassLoader shared libraries.\""
    },
    {
      "commit": "bbf9b051af797130b37911beca75b9d763d8c092",
      "tree": "d267b65bbeb280ef2f13af02e7a00bbdbf982f84",
      "parents": [
        "e14294cc489aa5427c3eeede59ab90d0f2b466d6",
        "bc1e0fab934b7fb03545f08085b109d6508b17d0"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 15 17:57:52 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 15 17:57:52 2018 +0000"
      },
      "message": "Merge \"Reduce class loader updating overhead.\""
    },
    {
      "commit": "bc1e0fab934b7fb03545f08085b109d6508b17d0",
      "tree": "87048ec7cccd78f9819ba16d95539a8deae51659",
      "parents": [
        "0bcbe9399dfc546db5c81b13979afc85da19d025"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 14 16:18:18 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 14 16:40:48 2018 -0800"
      },
      "message": "Reduce class loader updating overhead.\n\nAvoid unnecessary read barrier for comparing class loader agianst\nnull. Avoid transaction check.\n\nDeleted the helper class to simplify the code.\n\nThe time goes from ~3.8ms to ~2.9ms on Maps.\n\nTest: test-art-host\nBug: 116052292\n\nChange-Id: I4a966a9bb39400ba58d7cf3e0b2c8ab4747d65ed\n"
    },
    {
      "commit": "f50ac103426588d9f7c014ef2d2b9c766f8dc25e",
      "tree": "bac6537c3cd63cc382e24d9b94f0eb64f18ab0a4",
      "parents": [
        "b56e8353020acda1a8285daa11c69f57060cd015"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Oct 17 18:00:06 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Nov 14 16:49:40 2018 +0000"
      },
      "message": "Simplify hidden_api.h logic\n\nRefactor GetMemberAction to return a boolean whether access to a class\nmember should be denied. This also moves StrictMode consumer\nnotification into hidden_api.cc and removes notifications for toasts.\nTests are changed accordingly.\n\nTest: phone boots\nTest: m test-art\nMerged-In: I02902143de0ff91d402ba79c83f28226b1822a6f\nChange-Id: I02902143de0ff91d402ba79c83f28226b1822a6f\n(cherry picked from commit 51995f90adaa0e5047dee56d22f15e4225e70517)\n"
    },
    {
      "commit": "d32ce09761ed5c6ecdd95396d0d668f04ccffd44",
      "tree": "28c16c8ef6d6562af6e9cf33522bcd7ca6fada1d",
      "parents": [
        "57ee3473336912d89d7b9c2925dfbeab6eda3277"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 07 11:08:40 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 13 10:23:16 2018 -0800"
      },
      "message": "ART: Split Runtime::IsNativeDebuggable\n\nEnsure that the main version cannot be called in the zygote.\n\nBug: 119063276\nTest: m test-art-host\nTest: device boots\nChange-Id: Ic3d158d5d75fa6982411402f69062ac333b20798\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": "c2cab4b11b95147dd9dadb3378e10a891ee64ad6",
      "tree": "8595e62d3aa3dad700c3deec7765afacc6a9b963",
      "parents": [
        "b70c999fcc3ff4d4988e0214f4d18783ff35edf7",
        "9186b182c0e0e5d57dc15a03e4f8d0f2951f3a96"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 07 10:07:29 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 07 10:07:29 2018 +0000"
      },
      "message": "Merge \"Refactor ClassLinker::FindPrimitiveClass().\""
    },
    {
      "commit": "9186b182c0e0e5d57dc15a03e4f8d0f2951f3a96",
      "tree": "e230bdce1f86d411c50ded9efc588590e98df261",
      "parents": [
        "a5175541c197e7bf9b03651ea5da4e64a2ac2d27"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 06 14:55:54 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 07 10:06:43 2018 +0000"
      },
      "message": "Refactor ClassLinker::FindPrimitiveClass().\n\nIntroduce ClassLinker::LookupPrimitiveClass() that never\nthrows an exception and use it to clean up callers that\nare not supposed to cause thread suspension.\n\nTest: m test-art-host-gtest\nBug: 118909457\nChange-Id: Ibfee8b7991c4a0d1fa636c85f14437c9865d1658\n"
    },
    {
      "commit": "456b492978389d9b5384d1a730bdff55602790fd",
      "tree": "15e4c5e67f129ef7d9e00651565b22dfd41b3eb9",
      "parents": [
        "4fc843c4fc9f33c4ba49c1303d526d0e0e6a3788"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 06 10:35:48 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 06 10:38:04 2018 -0800"
      },
      "message": "Add timing split for updating app image class loaders\n\nAdded since this a non-trivial portion of app image loading time.\n\nTest: test-art-host\nBug: 111397239\nBug: 116052292\nChange-Id: I922077a8929a46efaa7f5567beffee6d7b634392\n"
    },
    {
      "commit": "a5175541c197e7bf9b03651ea5da4e64a2ac2d27",
      "tree": "8d50a76d15f4f0d366283f43041c1661770e9540",
      "parents": [
        "23d3ed8c124f239d26a583f9d096b22f7f6677d1",
        "d79b37b054cc7de5be093790408208a07bb799ec"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 05 09:40:59 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 05 09:40:59 2018 +0000"
      },
      "message": "Merge \"ART: Throw on soft verify failure in InitializeClass().\""
    },
    {
      "commit": "8fc755804bc3eb7b55e4de0ac3b335efd5ca0309",
      "tree": "440b4c164ba6a506ed44e8ae31f5bb028dec2c88",
      "parents": [
        "81ac31ded4df5d597aa603c53122fa1d74413b78"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 01 14:21:33 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Nov 02 10:02:18 2018 -0700"
      },
      "message": "Smarter set intersection between app image and non boot image strings\n\nIf there are fewer non boot image strings in the runtime, iterate\nover those strings instead of the set being newly added.\n\nOn AOSP, nonBootImageInternStrings is around 500.\n\nTest: test-art-host\nBug: 116059983\nChange-Id: I76b49f2090971cf593ba487889b35dfc1fa8cf13\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": "80a560c91a0c46215f4d554a58528fc24b00fc09",
      "tree": "09e9fc7b978a0fdadafebd3ac2f67ab91832b18c",
      "parents": [
        "a48eb7e0690187618d2824a7d9b5601e7f5cdf80"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Oct 26 13:48:51 2018 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 01 17:53:27 2018 +0000"
      },
      "message": "Add native support for BaseDexClassLoader shared libraries.\n\nbug: 112405321\nTest: 688-shared-library\nChange-Id: Ia993b3ded71d4491a59fb78b0282eacdb66634bd\n"
    },
    {
      "commit": "41c080891ca9d8834c9b50c3ac18dd01c20de9e9",
      "tree": "abdf11b6e000884004c0c82f784a90595f63da05",
      "parents": [
        "41271dd3dfc2ff75702ae3b709eb8afa9464a49f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 31 11:50:26 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 31 12:50:20 2018 -0700"
      },
      "message": "Hold intern table lock for AddImageStringsToTable\n\nFixes a correctness issue where another thread adding an intern string\nafter the visitor could cause duplicate strings.\n\nReduces how often the intern table lock is acquired, probably\nimproving performance.\n\nBug: 116059983\nTest: test-art-host\n\nChange-Id: I5ba6ca3ba7535de6d4ad5cb46750bd23a6e9aadc\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": "47cd272d15f41109b3dacb21cfa509d18a03e011",
      "tree": "f2693adde283631362b3acc2c573d7280632621f",
      "parents": [
        "6e32b0059b4c3073c601018da3ca315ad568525a"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Oct 23 12:50:02 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Oct 30 11:04:29 2018 +0000"
      },
      "message": "Remove HiddenApiAccessFlags, move content to hiddenapi::\n\nHiddenapi code in runtime/ has all code in the hiddenapi:: namespace\ninstead of using a class as a wrapper. Refactor HiddenApiAccessFlags\nfor consistency. Also turn ApiList into `enum class` for stricter\ntype checks.\n\nTest: m test-art\nChange-Id: Ifb3c443ea43860476abd4fd3d4934cd14e2cdcc1\n"
    },
    {
      "commit": "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": "ce2a00daa92670a4fc01ef59fdbc3769a846f69c",
      "tree": "77930ed648604f50fe6a46059f4cc659b443ddb7",
      "parents": [
        "eba69a124eb6e0038e3ecc9c1a57cc0251641a89",
        "70f5fd0770adbef645950895309a2a63c3bde7c0"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Oct 26 21:27:38 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 26 21:27:38 2018 +0000"
      },
      "message": "Merge \"ART: Add class-alloc-inl.h\""
    },
    {
      "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": "70f5fd0770adbef645950895309a2a63c3bde7c0",
      "tree": "d9794484e83858cf7e33551eb8a108e07f46b18c",
      "parents": [
        "52ecb65ae9e1ad6fe7f58beecc88cdc08e08f0c4"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Oct 24 19:58:37 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 26 08:44:12 2018 -0700"
      },
      "message": "ART: Add class-alloc-inl.h\n\nIn an effort to reduce the (transitive) proliferation of heap-inl\nadd a specific inline header for class instance allocation.\n\nBug: 118385392\nTest: mmma art\nTest: m test-art-host\nChange-Id: I32529f0221a836452c58687330a91ac0d5fde162\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": "ce4cbaabbf4e01947055ac5c5e364c2a03979f33",
      "tree": "1e7917c35b127b647c4b9cf12f12ad53e8e972a4",
      "parents": [
        "d5a76e3958093e758206fc8caac0b34afd4fa2e5",
        "8e0f04319c7c3ddee60c505376b31768533b0dd5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Oct 26 00:03:29 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 26 00:03:29 2018 +0000"
      },
      "message": "Merge \"ART: Add array-alloc-inl.h\""
    },
    {
      "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": "8e0f04319c7c3ddee60c505376b31768533b0dd5",
      "tree": "b9d215de61b3a16895695e52ff4ee5ecbd985f14",
      "parents": [
        "88dbad33ae92167a89a5d5469f39f41624535dbf"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Oct 24 13:38:03 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 25 09:52:37 2018 -0700"
      },
      "message": "ART: Add array-alloc-inl.h\n\nIn an effort to reduce the (transitive) proliferation of heap-inl\nadd a specific inline header for array allocation.\n\nBug: 118385392\nTest: mmma art\nTest: m test-art-host\nChange-Id: Id3378f40c52fa7ef4297af08cb7509e0c04b94d1\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": "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": "98ea9d9d82ab078ca10fa7f8e02eddda94cf1d98",
      "tree": "a848b7e41ff227a2d3d4d6795ec11089f39cb6ca",
      "parents": [
        "02338775e33b553be51d44ff60bb1ef8e527bd94"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 19 14:06:15 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Oct 23 15:19:55 2018 -0700"
      },
      "message": "ART: Refactor for bugprone-argument-comment\n\nHandles runtime.\n\nBug: 116054210\nTest: WITH_TIDY\u003d1 mmma art\nChange-Id: Ibc0d5086809d647f0ce4df5452eb84442d27ecf0\n"
    },
    {
      "commit": "0dbc363f32d075017e1c4fb5e17715e3f12d0157",
      "tree": "950dfed748f63863db6b95d7b854940171b544c6",
      "parents": [
        "62ada4cd2c9a7ef5d1ab4c538d660f8a6a7f7571"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Sep 10 09:14:30 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Oct 23 14:51:01 2018 +0100"
      },
      "message": "Add dex item for hiddenapi flags\n\nMove hiddenapi access flags to own data section so as to:\n(a) increase amount of information stored per method/field\n(b) use encoding which can be supported long-term.\n\nThe dex item is implemented as:\n - array of offsets indexed by class def index\n - streams of uleb-128 encoded flags.\nOffsets in array point to the beginning of the flags stream\nfor the given class def. Flags are encoded in the same order\nas fields and methods are encoded in class data. Zero offset\nmeans that the class either does not have class data, or all\nof its flags are zero.\n\nThe patch updates:\n(a) libdexfile with data structure declarations and accessor\n    methods,\n(b) hiddenapi tool to create the new item from hiddenapi lists\n    and insert it into the given dex file,\n(c) dexlayout to copy the flags into compact dex,\n(d) dex file verifier to verify the item.\nIt also removes skipping of verification for boot class path\ndex files as those now pass DexFileVerifier, and removes the\nneed for removing the flags for JVMTI.\n\nThe size increase is 450 KB.\n\nTest: phone boots\nTest: m test-art\nChange-Id: Idec301db540cf164fccc97136d1df4abb8f758bd\n"
    },
    {
      "commit": "710d785a56c7bacb370d61a244cbf2d69108f9e1",
      "tree": "8a5dba5c86d9223bc4eb8d0dba46681fa94ce8de",
      "parents": [
        "3cf0a3e7223dc9792e92e7cace1ab165ba30ef7c",
        "74ccee6e0806401f664286c6597345ef57207ac8"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 15 19:48:43 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 15 19:48:43 2018 +0000"
      },
      "message": "Merge \"Add extra handling for loading intern tables\""
    },
    {
      "commit": "74ccee6e0806401f664286c6597345ef57207ac8",
      "tree": "491e36b077b059bd348a0817525412228df0a57c",
      "parents": [
        "dc3b4670b170b39a8bd6498d4de69c1513af1db2"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 10 10:30:29 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 15 09:17:14 2018 -0700"
      },
      "message": "Add extra handling for loading intern tables\n\nAdd an extra pass to fix up the app image intern table using a\nvisitor. This visitor records if there are any image conflicts and\navoids the image fixup phase if there are none.\n\nAdded logic to bulk add the image intern table to the boot image.\n\nWill add optimizations later.\n\nBug: 116059983\nTest: test-art-host\n\nChange-Id: I50a6fdaf9c9a049a3d120e88d63fe7da8c9a298c\n"
    },
    {
      "commit": "78baed5ec51a6e2d113e8b29aafa5c6203b46845",
      "tree": "57ca544020f309e3529e33300ad4867ca4579c1e",
      "parents": [
        "a48eb7e0690187618d2824a7d9b5601e7f5cdf80"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Oct 11 10:44:58 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Oct 12 17:53:50 2018 +0100"
      },
      "message": "ART: Use reinterpret_cast{32,64}\u003c\u003e when appropriate.\n\nAnd fix UnstartedRuntime checking for null arguments in all\nfunctions where we now use reinterpret_cast32\u003c\u003e.\n\nThis is a follow-up to\n    https://android-review.googlesource.com/783607 .\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: 117427174\nChange-Id: I58f8ad59f70e3fbb1d06aef419cd26555706fa65\n"
    },
    {
      "commit": "3adb7f218f1f6f15e2ced105073daa6e14aef2a9",
      "tree": "33331b2200c1f88c269e85453522cf90e07e660d",
      "parents": [
        "e0e49b9eb70f8a85891df5b4da73fcc71cb3d62f",
        "0c61be4f9f7b4baaa6ea7c12ba1c8492a7bc14f5"
      ],
      "author": {
        "name": "Christian Wailes",
        "email": "chriswailes@google.com",
        "time": "Fri Oct 05 07:07:42 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 05 07:07:42 2018 +0000"
      },
      "message": "Merge \"Implemented a new method for walking string references in AppImages.\""
    },
    {
      "commit": "185a461af9d273fa62170f67ac485f665ae57d8b",
      "tree": "3c3d51f5e5c1f5456d5e83d59f0154f2f9e5ba98",
      "parents": [
        "660718f175cecef927411607d1484235cb38bf05"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Oct 04 15:54:25 2018 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Oct 04 15:54:25 2018 -0700"
      },
      "message": "Add some comments missed during jit-loading CL\n\nTest: none\nChange-Id: Iad77ad432bb9395852653953dc02589bf84d54d6\n"
    },
    {
      "commit": "0c61be4f9f7b4baaa6ea7c12ba1c8492a7bc14f5",
      "tree": "2732f14759bfcd06bd8bf872c27a8c42b38e79ef",
      "parents": [
        "2386636e0330051a96fe7d577524e929d81e9ba8"
      ],
      "author": {
        "name": "Chris Wailes",
        "email": "chriswailes@google.com",
        "time": "Wed Sep 26 17:27:34 2018 -0700"
      },
      "committer": {
        "name": "Chris Wailes",
        "email": "chriswailes@google.com",
        "time": "Thu Oct 04 12:47:40 2018 -0700"
      },
      "message": "Implemented a new method for walking string references in AppImages.\n\n* Defined a new section in the AppImage binary format.\n* Verify heap invariants having to do with native string references.\n* Collect managed and native references to managed strings.\n* Record the location of these references as offsets into the image.\n* Writes offsets into new image section.\n* Walk this list of offsets at load time to intern strings from the\nAppImage.\n* Verify that strings have been interned correctly.\n\nTest: art/test/testrunner/testrunner.py -b --host\nTest: m test-art-host-gtest\nTest: Built and ran Keep, Docs, Chrome, YouTube, and Facebook.\nBug: 70734839\n\nChange-Id: Ib5235abdebca018e8920d12318c31b9c0efb0ede\n"
    },
    {
      "commit": "e9f61035e7077032a17d7d0e9035b6ef3995273f",
      "tree": "e24de0b760ef3848c8d405b4b7fec5a8b630778c",
      "parents": [
        "bb68fda18ef3d7ea183a322831a5afd20b6a8bff"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Sep 24 16:04:51 2018 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Oct 01 15:34:02 2018 -0700"
      },
      "message": "Prevent the JIT from loading classes in debuggable mode\n\nIn debuggable mode the timing and placement of class loads is\nobservable. This causes deopts to be placed in situations where a\nclass would be loaded by the JIT.\n\nThis has negligible impact on performance of compiled code, causing\nonly a handful of classes to be not loaded.\n\nFor example with the it.mvilla.android.fenix2 application of the\n~13000 classes loaded the jit was responsible for 19 of them.\n\nSince the jit is only responsible for a small number of class loads\nand for the class not to have been loaded by the interpreter the path\nmust be cold anyway there is no performance impact on standard paths.\n\nTest: ./test.py --host\nTest: ./test/testrunner/testrunner.py --with-agent\u003dlibjitloadd.so\u003dfatal --host\nTest: Attach libjitload.so to running processes and examine jit-load\n      counts.\n\nBug: 70838465\nBug: 73255278\nBug: 112074977\nBug: 116517081\n\nChange-Id: I030bc8116345af506e83ba78427a7fbda7a7b386\n"
    },
    {
      "commit": "2386636e0330051a96fe7d577524e929d81e9ba8",
      "tree": "5624040f2dedfecffabb395b0df0fe57fe3c2bc1",
      "parents": [
        "eaa4f836706f82614d0745e401c5ea805ac9d69b"
      ],
      "author": {
        "name": "Chris Wailes",
        "email": "chriswailes@google.com",
        "time": "Wed Aug 22 16:16:58 2018 -0700"
      },
      "committer": {
        "name": "Chris Wailes",
        "email": "chriswailes@google.com",
        "time": "Thu Sep 27 12:45:36 2018 -0700"
      },
      "message": "Preparing for work on string interning for AppImages.\n\n* Allow classes that have string fields to be put into AppImages.\n* Updated tracing messages to be more descriptive and searchable.\n* Added new tracing objects to more accurately report time spent in\nhandling AppImages.\n\nTest: Built image / flashed device / ran applications\n\n(cherry picked from commit e3015b59fb297d236f0b3ce844eef81c67e423d3)\n\nChange-Id: I6e5fba8c8ddeff8e077672b799d244e767478373\n"
    },
    {
      "commit": "45d3eaf160ff52f9e82d7c8b14f176daf73dd77d",
      "tree": "2cb07842eca110875b746c61918670c9e38b6b19",
      "parents": [
        "d3e4015c8d95488ea30c1d1654399c50e86aa9b4",
        "ecd5856c4fde64d69864c99bdf1a38d5db4db128"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 26 08:58:23 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 26 08:58:23 2018 +0000"
      },
      "message": "Merge \"ART: Fix const-method-handle method resolution\""
    },
    {
      "commit": "ecd5856c4fde64d69864c99bdf1a38d5db4db128",
      "tree": "6338536995523e61a94f01ebdb4b60c8b2b49081",
      "parents": [
        "5d7015cd64085068b1685d44339b4b705ef3f065"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Sep 24 11:27:33 2018 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Sep 25 20:44:35 2018 +0100"
      },
      "message": "ART: Fix const-method-handle method resolution\n\nThe MethodType associated with the const-method-handle should refer to\nthe method handle\u0027s target class, not the declaring class of the\nmethod.\n\nBug: 115964401\nTest: art/test.py --host -r -t 979\nTest: art/test.py --host -r -t 714\n\nChange-Id: I5b8f2bb64882a708ade51403f0a1f07e0c102dc2\n"
    },
    {
      "commit": "75112acdacabe2452956bb798e0f0a7e6850ac47",
      "tree": "fc9032b4818474a7e4e728cf355a775b2b83a356",
      "parents": [
        "fc4b2eaa427e43a51c6f39ffecac0ef4fa732b61",
        "48ba197beaffe64646e21cc06923d8b019c7aa6d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 25 01:28:56 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 25 01:28:56 2018 +0000"
      },
      "message": "Merge \"Fix some performance-unnecessary-value-param tidy and performance-for-range warnings.\""
    },
    {
      "commit": "48ba197beaffe64646e21cc06923d8b019c7aa6d",
      "tree": "fe21827494e10a8d83aea93fb23fa7e67b11de9e",
      "parents": [
        "26f048f48cdb1e884aab2b6fddf26d58346d29ad"
      ],
      "author": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Mon Sep 24 13:35:54 2018 -0700"
      },
      "committer": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Mon Sep 24 16:31:41 2018 -0700"
      },
      "message": "Fix some performance-unnecessary-value-param tidy and performance-for-range warnings.\n\nart/profman/profile_assistant_test.cc:119:54: error: the const qualified parameter \u0027hot_methods\u0027 is copied for each invocation; consider making it a reference [performance-unnecessary-value-param,-warnings-as-errors]\n                         const std::vector\u003cuint32_t\u003e hot_methods,\n                                                     ^\n                                                    \u0026\nart/profman/profile_assistant_test.cc:120:54: error: the const qualified parameter \u0027startup_methods\u0027 is copied for each invocation; consider making it a reference [performance-unnecessary-value-param,-warnings-as-errors]\n                         const std::vector\u003cuint32_t\u003e startup_methods,\n                                                     ^\n                                                    \u0026\nart/profman/profile_assistant_test.cc:121:54: error: the const qualified parameter \u0027post_startup_methods\u0027 is copied for each invocation; consider making it a reference [performance-unnecessary-value-param,-warnings-as-errors]\n                         const std::vector\u003cuint32_t\u003e post_startup_methods,\n                                                     ^\n                                                    \u0026\nart/runtime/subtype_check_info_test.cc:134:56: error: the parameter \u0027sc\u0027 is copied for each invocation but only used as a const reference; consider making it a const reference [performance-unnecessary-value-param,-warnings-as-errors]\n  static SubtypeCheckInfo CopyCleared(SubtypeCheckInfo sc) {\n                                      ~~~~~~~~~~~~~~~~ ^\n                                      const \u0026\nart/runtime/class_linker.cc:6451:62: error: the parameter \u0027to_process\u0027 is copied for each invocation but only used as a const reference; consider making it a const reference [performance-unnecessary-value-param,-warnings-as-errors]\n                          std::vector\u003cObjPtr\u003cmirror::Class\u003e\u003e to_process)\n                          ~~~                                ^\n                          const                             \u0026\nart/runtime/trace.cc:1127:13: error: loop variable is copied but only used as const reference; consider making it a const reference [performance-for-range-copy,-warnings-as-errors]\n  for (auto it : exited_threads_) {\n       ~~~~ ^\n       const \u0026\nart/runtime/oat_file_manager.cc:154:41: error: the parameter \u0027spaces\u0027 is copied for each invocation but only used as a const reference; consider making it a const reference [performance-unnecessary-value-param,-warnings-as-errors]\n    std::vector\u003cgc::space::ImageSpace*\u003e spaces) {\n    ~~~                                 ^\n    const                              \u0026\nart/test/004-JniTest/jni_test.cc:707:72: error: the parameter \u0027methods\u0027 is copied for each invocation but only used as a const reference; consider making it a const reference [performance-unnecessary-value-param,-warnings-as-errors]\n  void TestCalls(const char* declaring_class, std::vector\u003cconst char*\u003e methods) {\n                                              ~~~                      ^\n                                              const                   \u0026\nart/compiler/optimizing/optimizing_compiler.cc:1409:89: error: the parameter \u0027info\u0027 is copied for each invocation but only used as a const reference; consider making it a const reference [performance-unnecessary-value-param,-warnings-as-errors]\nvoid OptimizingCompiler::GenerateJitDebugInfo(ArtMethod* method, debug::MethodDebugInfo info) {\n                                                                 ~~~~~                  ^\n                                                                 const                 \u0026\n\nBug: http://b/32619234\nBug: http://b/110779387\nTest: Build using WITH_TIDY\u003d1\nChange-Id: I911d838b8c26ddab3d6a64024f3220000f078cba\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": "a92cb192697c85e404e027b2d00d7a102b9b7f80",
      "tree": "f5182b20aa94c4d118dca7d6322e0321d1d5a6a1",
      "parents": [
        "9bee49a0bce041595c1a5ee86b83e7ceedced972",
        "7aca9d56ebf417c95e8921e90f0a96b05fea3a37"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 12 11:17:07 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 12 11:17:07 2018 +0000"
      },
      "message": "Merge \"Fix CHA in the presence of default conflict methods.\""
    },
    {
      "commit": "9bee49a0bce041595c1a5ee86b83e7ceedced972",
      "tree": "78f18c51362d35024903442f63227d9413f06781",
      "parents": [
        "7c6c57d09dfac00c645188ec4f960dd70e559a05",
        "a90c92299bc3a02d587db18427393745e6885331"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 12 08:10:14 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 12 08:10:14 2018 +0000"
      },
      "message": "Merge \"Dump registered class loaders and their dex files for SIGQUIT.\""
    },
    {
      "commit": "a90c92299bc3a02d587db18427393745e6885331",
      "tree": "6bcc51afba8b66e43af063dabefe9ec9955854e3",
      "parents": [
        "83d04472775fb933a65f0ffddbba9dcaea58fa7e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 07 13:19:19 2018 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 11 09:59:04 2018 +0100"
      },
      "message": "Dump registered class loaders and their dex files for SIGQUIT.\n\nbug: 112405321\nTest: take a bugreport\nChange-Id: I67f0a61fb42a70023d349f5aa628ac5d15c4d5fe\n"
    },
    {
      "commit": "5f784bfdd0a10588249554ce89c0b084e11e0dcb",
      "tree": "24b128cf7723616dbe3b1cd197ed6eb30174d9a3",
      "parents": [
        "e04da79cfca846efa5c5fe3f1a5fff94787c7ca8",
        "d7a7f2f0bf62d6ff564dd34aa41a19f016583a78"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 10 17:41:02 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 10 17:41:02 2018 +0000"
      },
      "message": "Merge \"Remove read barriers in Class::IsClassClass and Object::IsClass\""
    },
    {
      "commit": "7aca9d56ebf417c95e8921e90f0a96b05fea3a37",
      "tree": "be17ff620cebba609adad1f0282ffb83fac2994f",
      "parents": [
        "4613c8a3a549213240f3ffc46514b600d872938e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 07 11:13:33 2018 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Sep 08 20:28:08 2018 +0100"
      },
      "message": "Fix CHA in the presence of default conflict methods.\n\nWe don\u0027t want to set single implementation bits for default\nconflict methods, as we need to thor ICCE for them.\n\nbug: 112189179\nTest: 966-default-conflict\nChange-Id: I768f307f1996b775e3942c87cbe388ce22bebf5d\n"
    },
    {
      "commit": "d7a7f2f0bf62d6ff564dd34aa41a19f016583a78",
      "tree": "52bb3eb11651c275a232e9d8b970fe02a1b54dd1",
      "parents": [
        "d176e93d66df409e2eee5343efd26b35c73fb71b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 07 11:57:18 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 07 13:05:11 2018 -0700"
      },
      "message": "Remove read barriers in Class::IsClassClass and Object::IsClass\n\nRemove unnecessary read barriers since Class.class is not movable.\n\nTest: test-art-host\nBug: 114413743\n\nChange-Id: Id68562606bab75bf5ba99a7e8a38e7db9d46df1d\n"
    },
    {
      "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": "0e840278fb2914678c648021950da9b5d4019468",
      "tree": "a48c539c74d5c20b4302114d57dc036e38a92679",
      "parents": [
        "9976b4e783311f19496ce0c70e2f99194187f90c"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Aug 23 19:55:30 2018 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Sep 06 17:57:21 2018 +0100"
      },
      "message": "Make classes of LOS objects non-movable.\n\nWhen using Generational Concurrent Copying (CC) collection and no boot\nimage, there is an unlikely case where the class of an object\nallocated the Large-Object Space (LOS) might be moved by a\nsticky-bit (minor) collection, potentially creating a stale reference\nin the `klass_` field of this large object. To prevent this situation,\nmake all the classes of objects eligible to allocations in the\nLOS (large strings and primitive arrays) non-movable when running\nwithout a boot image.\n\nThis is not an issue when running with a boot image, as these classes\nare in an image space, which is immune.\n\nAlso disable run-test 669-moveable-string-class-equals, as this test\nexpects the String class to be movable when running without a boot\nimage.\n\nTest: art/test/testrunner/testrunner.py --no-image\nBug: 67628039\nBug: 12687968\nBug: 68181300\nChange-Id: Iefce8e13b4d6df96c31d77b7e53b4ba79b5e641c\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": "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": "d93e374e273dd45f5d829399da1d4201bf46057e",
      "tree": "280dc72b2aec4696bbc35ad39ca8d3479107380e",
      "parents": [
        "7f7f9d3991f3a55da8934a3b72890d4776373598"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jul 18 10:58:13 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 19 16:04:38 2018 +0100"
      },
      "message": "ObjPtr\u003c\u003e-ify ArtMethod and mirror::Method.\n\nAnd clean up some forgotten things after old CLs.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 31113334\nChange-Id: I8af0e845c24d674d0efab21d80c29949b1cc0593\n"
    },
    {
      "commit": "2d441b1253cca39bf3078422e8f0b2f4ec1bb408",
      "tree": "3db740023b1322749856f943c4b25b8158da8a44",
      "parents": [
        "e824cfdcfd41d400237a806ff93caca7f2e51878"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jun 08 15:33:21 2018 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jul 10 08:44:17 2018 -0700"
      },
      "message": "Make instrumentation trampoline able to jump to jit code\n\nIn order to get the benefit of the instrumentation trampoline it must\nbe able to jump to jit code. This patch adds support for doing that\nand adds code to ensure that we will not be jumping back and forth\nbetween the trampoline and the interpreter all the time if the jit has\nnot yet compiled the current method.\n\nNote we also disable the jit-gc when turning on these trampolines\nsince otherwise we could end up either sending instrumentation events\nmultiple times or running uninitialized memory.\n\nBug: 110263880\nTest: ./test/testrunner/testrunner.py --host --runtime-option\u003d-Xplugin:libtracefast-trampolined.so\nTest: ./test/testrunner/testrunner.py --host --runtime-option\u003d-Xplugin:libtracefast-trampolined.so --runtime-option\u003d-Xjitthreshhold:0\nTest: ./test.py --host\n\nChange-Id: Ie6e92ec6367452fe4fde24d520d808b7af91d1b5\n"
    },
    {
      "commit": "b2ab807bd1feb25d04ad5bdcb336c281a6ce88ff",
      "tree": "2ed74172c0a4e8dbcb72c575f0e88c597d357f6b",
      "parents": [
        "4e2000ac8f444f92df6633b57fa3e69203f4c3b7",
        "dcfcce4241fc706fd249bb3fec67f8a1dc434af6"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jun 29 08:30:08 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 29 08:30:08 2018 +0000"
      },
      "message": "Merge \"Revert^2 \"Delay init of classes of pre-allocated exceptions.\"\""
    },
    {
      "commit": "dcfcce4241fc706fd249bb3fec67f8a1dc434af6",
      "tree": "7f9e189a1654e54849843fd758881b9fae23d8e7",
      "parents": [
        "639f5150805006a2c3a07daa804abcdba0bc3ece"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jun 27 10:00:28 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jun 27 13:20:05 2018 +0100"
      },
      "message": "Revert^2 \"Delay init of classes of pre-allocated exceptions.\"\n\nThis reverts commit 29cf32bb64dc61c4f755661939630775bd36419d.\n\nFixed heap-poisoning/gcstress tests by calling the Alloc\u003c\u003e()\nof the exception object with kInstrumented\u003dtrue.\n\nChange-Id: I209ab4f020e9c6fb67319fddde69ed87e3653223\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nTest: Pixel 2 XL boots.\nTest: run_build_test_target.py art-gtest-heap-poisoning\nTest: run_build_test_target.py art-interpreter-gcstress\nBug: 109925024\n"
    }
  ],
  "next": "b40d361019897e8b8484b772ccc0be433abafb5f"
}
