)]}'
{
  "log": [
    {
      "commit": "9e736316ece84f1f189f8cb9453cc21b24bd553e",
      "tree": "0109e40fb05088c755b633389f46489ead0bf9d7",
      "parents": [
        "570886357e2c91ac913f34abdaf559432ce00853",
        "0a2cdf39c51edbaf37ab1ced82326c340698c1c3"
      ],
      "author": {
        "name": "vichang",
        "email": "vichang@google.com",
        "time": "Mon Dec 17 15:28:56 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 17 15:28:56 2018 +0000"
      },
      "message": "Merge \"Include ICU4C cc_library_headers instead of a directory\""
    },
    {
      "commit": "41622e3abf3dbdf6a59ca3641bfa93dbe79a207b",
      "tree": "1cebd9a4ff021013ba5145e082bee9cd0ebe0a1c",
      "parents": [
        "b0faa9608d1e500c1a5884ec8e22e3ff3c33043e",
        "2a9824cdf2975621a22bacaefbb6d3318e3c7df0"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Fri Dec 14 23:45:22 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 14 23:45:22 2018 +0000"
      },
      "message": "Merge \"2-phase full-heap CC\""
    },
    {
      "commit": "b0faa9608d1e500c1a5884ec8e22e3ff3c33043e",
      "tree": "ddc08eb74f55cc36ed87dda83fe075abcf01240b",
      "parents": [
        "252dd18a225d360c172f13f92165a564391f2996",
        "5b20b358edb0c586ae2106a82be365717da82507"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Dec 14 19:00:35 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 14 19:00:35 2018 +0000"
      },
      "message": "Merge changes Iacd66525,Ia1027126,I39a9313e\n\n* changes:\n  ART: Rewrite EnsureInitialized hit case\n  ART: Add integrity check\n  ART: Add integrity check\n"
    },
    {
      "commit": "2a9824cdf2975621a22bacaefbb6d3318e3c7df0",
      "tree": "c928d16ff014b3c133a5bcb58d202aee7e3d76a1",
      "parents": [
        "252dd18a225d360c172f13f92165a564391f2996"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed Nov 07 15:57:17 2018 -0800"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Fri Dec 14 10:41:00 2018 -0800"
      },
      "message": "2-phase full-heap CC\n\nIntroduce a phase before enbling read-barrier during full-heap GC\ncycles:\n1) To compute latest per-region live-bytes info for accureate\n\"should be evacuated\" decision for every region.\n2) To mark most of the live objects before enabling read-barrier so that\ngraying them can be avoided, thereby reducing number of read-barrier slowpath\ninvocations.\n\nTest: art/test/testrunner/testrrunner.py --target\nBug: 112720851\nTest: art/test/testrunner/testrunner.py --64\nChange-Id: Ief4e92dba27aded153e600eeffc072b66d5917b5\n"
    },
    {
      "commit": "500b4da0e8d5746bfc75baa9db3d57f51a0af6af",
      "tree": "63fa0653e6b5a252b76540655490b6bc71ca376b",
      "parents": [
        "5ce7e0d1158821c859309e030bee6169ff99c1c9",
        "0ace5633680af8864b76b4f45d63b3407e4dcdf5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 14 15:06:29 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 14 15:06:29 2018 +0000"
      },
      "message": "Merge \"Revert^2 \"Allow boot image for a part of the boot classpath.\"\""
    },
    {
      "commit": "5ce7e0d1158821c859309e030bee6169ff99c1c9",
      "tree": "5d98ad7ee83d3255024a756c9cdc79eccf8125d0",
      "parents": [
        "98a520c4700f566afddf12bab01885b6b3d2584e",
        "b3d2e832f728424d3c24432135df8caf1cf8751a"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Dec 14 13:36:30 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 14 13:36:30 2018 +0000"
      },
      "message": "Merge changes from topic \"dexfile-hooks\"\n\n* changes:\n  Add minimal libdexfile API for external users.\n  Plumb through the container as an optional arg to DexFileLoader::Open.\n"
    },
    {
      "commit": "98a520c4700f566afddf12bab01885b6b3d2584e",
      "tree": "d0b291999e85e7d8a65ae1b6aa98d54b3726563c",
      "parents": [
        "d97e00c4f6e8735a854f4443b8bd08fc5a251ce5",
        "075456ea917f70cb729125c92e0b890a9f1207c6"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Dec 14 13:13:14 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 14 13:13:14 2018 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Add a baseline flag to JIT compile.\"\"\""
    },
    {
      "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": "0a2cdf39c51edbaf37ab1ced82326c340698c1c3",
      "tree": "08b61e6d3dccdaebe6af11181d9ed31a5449eb81",
      "parents": [
        "d97e00c4f6e8735a854f4443b8bd08fc5a251ce5"
      ],
      "author": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Mon Nov 26 18:06:01 2018 +0000"
      },
      "committer": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Fri Dec 14 10:48:19 2018 +0000"
      },
      "message": "Include ICU4C cc_library_headers instead of a directory\n\nIt includes the headers not in the directory, e.g. uconfig_local.h.\nIt may add more restriction during the build time,\nbut no runtime difference is expected.\n\nAlso, add ANDROID_LINK_SHARED_ICU4C flag to avoid\nthe new build-time error, since ART is allowed to link directly\nto libicuuc.\n\nBug: 117094880\nTest: m\nChange-Id: I029532d6738aa6ade4f8f92c5a65f1a15e9de25f\n"
    },
    {
      "commit": "075456ea917f70cb729125c92e0b890a9f1207c6",
      "tree": "9cc40d68cf2b053a2bcec7fc026e10bb12d5ee93",
      "parents": [
        "344b0d18eb9f9f2f2ef704acadc510a6dd56a282"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 14 08:54:21 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 14 08:54:28 2018 +0000"
      },
      "message": "Revert \"Revert \"Add a baseline flag to JIT compile.\"\"\n\nThis reverts commit 344b0d18eb9f9f2f2ef704acadc510a6dd56a282.\n\nReason for revert: Not the CL that broke the tests.\n\nChange-Id: I38221d1ac723e5ea71cb398401e2fda8dd2d7db9\n"
    },
    {
      "commit": "f91867e6830a2fbfaf1975e2a2ed629531c4ffe7",
      "tree": "310743a5759d7cddb8da28177bbda2a67ee21746",
      "parents": [
        "7ca98bfba8139c17f2e453aa1a033e8ed7074391"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Dec 13 22:27:51 2018 -0800"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Dec 13 22:27:51 2018 -0800"
      },
      "message": "Declare mmapped_bytes only if needed\n\nAlso needed to unbreak the Mac build.\n\nTest: TreeHugger\nBug: 111447610\nChange-Id: If78f1905519521ad9ba78e913c67917d388301a2\n"
    },
    {
      "commit": "7ca98bfba8139c17f2e453aa1a033e8ed7074391",
      "tree": "64f09ef19c05eb9438ce919145daae4e594143b2",
      "parents": [
        "15303ace5dedab3aac792c6ebf7f53ea6ae89375",
        "b58707251206957a85dddd772d796c00390eb206"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Dec 14 02:35:37 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 14 02:35:37 2018 +0000"
      },
      "message": "Merge \"Don\u0027t include malloc.h on MacOS\""
    },
    {
      "commit": "b58707251206957a85dddd772d796c00390eb206",
      "tree": "7938e822da43f619f243f0ab569857d09ee7ae97",
      "parents": [
        "fcf213c38229e8bb16798954442920b402b16e53"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Dec 13 16:25:05 2018 -0800"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Dec 13 16:28:00 2018 -0800"
      },
      "message": "Don\u0027t include malloc.h on MacOS\n\nThus unbreaking the Mac build once again.\n\nTest: Build AOSP, Treehugger\nBug: 111447610\nChange-Id: Icceb1f2726f65e1889b7c3a460cccb8a80a3ebda\n"
    },
    {
      "commit": "15303ace5dedab3aac792c6ebf7f53ea6ae89375",
      "tree": "c0a08a224dcd62c8a6c8f2ef801fc300bbf1c785",
      "parents": [
        "829c33a43fcf600e296a6d437055c49d8ab53fa7",
        "93c21ba3311db5cecaa1a6a178a44c662ebd3d43"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Dec 13 23:51:16 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 13 23:51:16 2018 +0000"
      },
      "message": "Merge \"Avoid waiting for threads to create\""
    },
    {
      "commit": "829c33a43fcf600e296a6d437055c49d8ab53fa7",
      "tree": "3a08f7d4e1d609eab3227db6e82a3c8e9638a7b4",
      "parents": [
        "99e17397f7c4d5a1927c33160209156f411aeeed",
        "344b0d18eb9f9f2f2ef704acadc510a6dd56a282"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 13 23:42:03 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 13 23:42:03 2018 +0000"
      },
      "message": "Merge \"Revert \"Add a baseline flag to JIT compile.\"\""
    },
    {
      "commit": "99e17397f7c4d5a1927c33160209156f411aeeed",
      "tree": "ec5a1359690d105afbaaac638ae3d60987024634",
      "parents": [
        "f2c7eea8594d1d3429c5078c29be504ee84fbf2a",
        "fb83d76a8b186df05f874216b535f5ad57e7bd02"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 13 23:41:53 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 13 23:41:53 2018 +0000"
      },
      "message": "Merge \"Revert \"Allow boot image for a part of the boot classpath.\"\""
    },
    {
      "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": "344b0d18eb9f9f2f2ef704acadc510a6dd56a282",
      "tree": "5f0bc1ce634ad2e6e9a508b5f5478dd66590aff1",
      "parents": [
        "e734fe8d4aa5f70a5798363774a4ed63357ebe20"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 13 23:30:14 2018 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 13 23:30:14 2018 +0000"
      },
      "message": "Revert \"Add a baseline flag to JIT compile.\"\n\nThis reverts commit e734fe8d4aa5f70a5798363774a4ed63357ebe20.\n\nReason for revert: May be breaking tests.\n\nChange-Id: I6c0c04a60c1b4f329c472d28a3c2666526bd6383\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": "62f6e9055363df6b6372d86960e8d987d6c439a1",
      "tree": "189957252780e2d61aa0d5ef874db5794805d39b",
      "parents": [
        "81c61bf0ef90c1fd79694aab49758e16cd0dd044"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 11 18:58:50 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 13 10:52:08 2018 -0800"
      },
      "message": "ART: Add integrity check\n\nAdd access-flags setter DCHECK code similar to the getter. For now,\ncheck that the verification-attempted flag is not removed.\n\nBug: 115834172\nTest: m test-art-host\nChange-Id: Ia1027126b2ff1a2a2e3c26f674a5f8dc8d2f0c0a\n"
    },
    {
      "commit": "81c61bf0ef90c1fd79694aab49758e16cd0dd044",
      "tree": "7af6bdf9457c4f10c654ec1975fc7b22a9c63cf1",
      "parents": [
        "c2f685a64f819193fb563d33924d233872b8970a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 11 18:57:39 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 13 10:52:08 2018 -0800"
      },
      "message": "ART: Add integrity check\n\nBoot classpath classes are expected to be fully verified. Check in\nthe interpreter that we are not running access-checks for the boot\nclasspath.\n\nBug: 115834172\nTest: m test-art-host\nChange-Id: I39a9313e9a3b99133115e764c0155f2303b65f10\n"
    },
    {
      "commit": "fcf213c38229e8bb16798954442920b402b16e53",
      "tree": "ebd00d57b85d73da8ffce2adcb336ffa18166103",
      "parents": [
        "c2f685a64f819193fb563d33924d233872b8970a",
        "18642a3970d57b91865234048329f9a2252e0cbc"
      ],
      "author": {
        "name": "vichang",
        "email": "vichang@google.com",
        "time": "Thu Dec 13 18:05:38 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 13 18:05:38 2018 +0000"
      },
      "message": "Merge \"Remove unused ICU4C headers in libartbase-art-gtest and libart-runtime-gtest\""
    },
    {
      "commit": "b3d2e832f728424d3c24432135df8caf1cf8751a",
      "tree": "0ff919bb4731a3ddeffd5df7f08e05b816336826",
      "parents": [
        "785c987bb1e66d6ddce662b61c0fbd094195b022"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Nov 15 18:09:35 2018 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Dec 13 17:59:13 2018 +0000"
      },
      "message": "Add minimal libdexfile API for external users.\n\nThis defines a stable C ABI that is safe for external use in\nlibdexfile_external. On top of it is a thin stable C++ API in\nlibdexfile_support to be linked into clients.\n\nTBD: Unit tests, e.g. move the relevant tests from libunwindstack.\n\nTest: mmma art/\nTest: gtests and runtests on target\nTest: atest system/core/libunwindstack (no new failures, 1 old one)\nBug: 119632407\nChange-Id: I64388337e6d31e4bf36ec435a78c4defc2e17aa2\n"
    },
    {
      "commit": "c2f685a64f819193fb563d33924d233872b8970a",
      "tree": "083b0f1cbdd9aab888c77687bdbad17deb0d2fcc",
      "parents": [
        "97991827a0ae5ee74358ce9d6215a4bbcf44f968",
        "c220f981809d655fb061c92a581fd6fc4df4da5c"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Dec 13 16:22:24 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 13 16:22:24 2018 +0000"
      },
      "message": "Merge \"Change GC triggering to use mallinfo()\""
    },
    {
      "commit": "97991827a0ae5ee74358ce9d6215a4bbcf44f968",
      "tree": "26fa1604ea98b615a51e9f08cb67a1c692ea1aa6",
      "parents": [
        "cf923f535dd1cf0c03707bbdfca6335d3f88fa92",
        "e734fe8d4aa5f70a5798363774a4ed63357ebe20"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Dec 13 13:05:20 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 13 13:05:20 2018 +0000"
      },
      "message": "Merge \"Add a baseline flag to JIT compile.\""
    },
    {
      "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": "c220f981809d655fb061c92a581fd6fc4df4da5c",
      "tree": "77f494f865e9b3c24340b5761a5d762408eb3a78",
      "parents": [
        "5de31a1dd5ac6e12b37517550a609b9c0576f685"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Fri Oct 12 16:15:45 2018 -0700"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Wed Dec 12 21:03:14 2018 -0800"
      },
      "message": "Change GC triggering to use mallinfo()\n\nRevise the test of whether we should collect based on native allocation\nto be based on mallinfo.\n\nMake the GC triggering threshold for native allocations grow somewhat\nwith the Java heap size to account for the added cost of Java\ncollection. We currently compromise between that goal and a\ndesire to avoid drastic changes that might provoke new heap\ngrowth issues. It does now take more native allocations to\ntrigger a GC earlier in the normal Java GC cycle than later in the\ncycle, as it should.\n\nAdd the notifyNativeAllocations() interface to replace\nregisterNativeAllocation() in the common case in which native memory\nis completely allocated via malloc(), and thus no longer needs to be\naccounted for separately. Arrange for it to be called much more\nrarely, since its cost is higher, and we can save time by not going\nthrough JNI on every allocation.\n\nAdd 175-alloc-bignums test.\n\nCleanups/fixes:\n\nFix race in IsOutOfMemoryOnAllocation.\n\nRename max_allowed_footprint_ to avoid suggesting it\u0027s a hard limit.\nIt wasn\u0027t and it isn\u0027t. Make it atomic, since it\u0027s concurrently\nmodified.\n\nFix a few cases in which unsigned counters could become negative.\nI think the only bad consequences of this were weird log messages.\n\nFix integer sizes/signedness around GrowForUtilization.\nUse uint64_t only when we can exceed address space size, and\nsize_t otherwise. Improve overflow checking.\n\nMake allocator or collector tests check the important kinds first, since\nthey\u0027re not always known at compile time.\n\nBug: 111447610\n\nTest: Built and booted AOSP. Ran 175-alloc-big-bignums.\n\nChange-Id: I55deac86622019fb85bbd569c3ae8afab2d13d9a\n"
    },
    {
      "commit": "93c21ba3311db5cecaa1a6a178a44c662ebd3d43",
      "tree": "c51226e865e56ea9bd0f9738ccf1e09390952e44",
      "parents": [
        "8f86ef169923d3f3a7eaac7346f0f3fac357a274"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Dec 10 13:08:30 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 12 17:36:49 2018 -0800"
      },
      "message": "Avoid waiting for threads to create\n\nAvoid blocking for threads to create in the constructor. This is\nsafe because the destructor will block until the threads join.\n\nAlso avoid creating the thread pool if the image only has one\nblock.\n\nGet the GC task proccessor to delete the thread pool.\n\nBug: 116052292\nTest: test-art-host\nChange-Id: I80399525caa0775eddade73c11e7ebc06e41416a\n"
    },
    {
      "commit": "8f86ef169923d3f3a7eaac7346f0f3fac357a274",
      "tree": "776168e66dbda388c6d1c623d5d5c24b375d8df6",
      "parents": [
        "04822d823b6828e37b38bf57f70524af4a59fee7",
        "8f5aaadacaa9fd0ea382d23318e394b069bb168a"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Thu Dec 13 01:14:05 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 13 01:14:05 2018 +0000"
      },
      "message": "Merge \"Fix reference-type obj handling in generational CC\""
    },
    {
      "commit": "8f5aaadacaa9fd0ea382d23318e394b069bb168a",
      "tree": "d90c156c75b9b570b305c0ad83493a75bbf0287a",
      "parents": [
        "5de31a1dd5ac6e12b37517550a609b9c0576f685"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Tue Dec 11 15:05:56 2018 -0800"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed Dec 12 14:03:49 2018 -0800"
      },
      "message": "Fix reference-type obj handling in generational CC\n\nReference-type objects in old generation with referent in young\ngeneration are not handled correctly. During card-table scan, we only\nvisit such objects, which does not process the referent. Also, we don\u0027t\nset the read-barrier state to gray. Eventually, if the mutator calls\nGetReferent() on such objects (after done_scanning_ is set to true),\nthen the read barrier will not be called, breaking the to-space\ninvariant.\n\nTest: art/tests/testrunner/testrunner.py --target\nBug: 120792243\nChange-Id: I53e8f0bc99ef99eb6e0ea7d743a6185d37d7ff8c\n"
    },
    {
      "commit": "25602dc8f307101aa4aca08b20b25d1e049f36cb",
      "tree": "433ff1270fe94008c12dbcbe18ca686e9aa95c64",
      "parents": [
        "5de31a1dd5ac6e12b37517550a609b9c0576f685"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Dec 11 11:31:57 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 12 10:20:23 2018 -0800"
      },
      "message": "Use PatchObjectVisitor for app image class set patching\n\nVisit classes first to make object relocation parallel friendly.\n\nUse VisitDexCacheArrays to remove duplicated logic.\n\nBug: 116052292\nTest: test-art-host\n\nChange-Id: I7b2f82285f18ff4623549432548bccdf0752a6e1\n"
    },
    {
      "commit": "e734fe8d4aa5f70a5798363774a4ed63357ebe20",
      "tree": "9cc40d68cf2b053a2bcec7fc026e10bb12d5ee93",
      "parents": [
        "5af086c98d46d7833a064c5015c5503fc5dd29f3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 12 16:00:10 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 12 16:29:52 2018 +0000"
      },
      "message": "Add a baseline flag to JIT compile.\n\nbug: 111397239\nbug: 119800099\nTest: m\nChange-Id: Id831b641e18a8497435839e2fbcfee1f6d60a56d\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": "5af086c98d46d7833a064c5015c5503fc5dd29f3",
      "tree": "5f0bc1ce634ad2e6e9a508b5f5478dd66590aff1",
      "parents": [
        "911a86ab1625e83a2b389771ed92243a716d78c3",
        "6e0d3256c08feab82627b886329c7ec21e85093d"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Dec 12 13:26:33 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 12 13:26:33 2018 +0000"
      },
      "message": "Merge \"ART: add post gc weighted allocated bytes metrics\""
    },
    {
      "commit": "2260cf563b2f8ce29bf508e205f8d5459aac25db",
      "tree": "c60fa0d1aa5b113591292d2d3e679e96ea243b09",
      "parents": [
        "3437d3929f9064fe2d1707f9a1f99f69accf4a17",
        "3b015746bb77f4e4763a2023ab42e517ffa3f641"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Wed Dec 12 02:27:48 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 12 02:27:48 2018 +0000"
      },
      "message": "Merge \"Ignore expansion-to-defined warning from dlmalloc include\""
    },
    {
      "commit": "889e29aae6a7cbd3c6f8dae44f67e054e083a8b6",
      "tree": "b3954038ef36a8ad925f493a770802f8ade60150",
      "parents": [
        "6b36d8025de5237b57e7bf23033bfc61a112d6cd",
        "afc60cd6ddcd15353698bb453716313dea241ef8"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Dec 11 13:25:17 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 11 13:25:17 2018 +0000"
      },
      "message": "Merge \"Cleanup native debug interface api.\""
    },
    {
      "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": "6e0d3256c08feab82627b886329c7ec21e85093d",
      "tree": "d775990116e929b053fed777ee256e22f4ef2c8c",
      "parents": [
        "6b36d8025de5237b57e7bf23033bfc61a112d6cd"
      ],
      "author": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Mon Dec 10 15:22:45 2018 +0000"
      },
      "committer": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Tue Dec 11 11:05:47 2018 +0000"
      },
      "message": "ART: add post gc weighted allocated bytes metrics\n\nTest: Run art with -XX:DumpGCPerformanceOnShutdown on some benchmarks.\nBug: 112187497\nChange-Id: I2fc30c7dbb2d12ab8c3f98ad1f96672af6c5d438\n"
    },
    {
      "commit": "6b36d8025de5237b57e7bf23033bfc61a112d6cd",
      "tree": "f3db51fcd564929652433e7182eda9ebc7a9bc29",
      "parents": [
        "e79edef8fd58d45361f95f81c3d0e4152591bc9b",
        "d3f037bab43b735af892dc45a5e593fe159c2e8e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Dec 11 02:09:17 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 11 02:09:17 2018 +0000"
      },
      "message": "Merge \"Refactor image object visitors for image relocation\""
    },
    {
      "commit": "e79edef8fd58d45361f95f81c3d0e4152591bc9b",
      "tree": "1731923580fe4110da0e62ff735245b24b4ff2bf",
      "parents": [
        "941b5068d86105dab3c427939d344bf44645d260",
        "24c14221c4cb2175406cd4406043dfd38b9b83fe"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Dec 11 00:10:10 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 11 00:10:10 2018 +0000"
      },
      "message": "Merge \"ART: Fix or nolint cert-dcl16-c\""
    },
    {
      "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": "24c14221c4cb2175406cd4406043dfd38b9b83fe",
      "tree": "afc6ce1aef9b5ae3c62c4b30eae1c8ba215a1397",
      "parents": [
        "0633365c40e32fda28d06ef94e6e3e3d8dab697f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Dec 10 10:16:15 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Dec 10 21:14:57 2018 +0000"
      },
      "message": "ART: Fix or nolint cert-dcl16-c\n\nBug: 32619234\nBug: 120614316\nTest: m\nChange-Id: I9ab82cbf3bdcb52a2f85e37d06bbd6d8f415cb15\n"
    },
    {
      "commit": "d3f037bab43b735af892dc45a5e593fe159c2e8e",
      "tree": "7695c816041fdd6ab2450e22e18dae2974fc1f76",
      "parents": [
        "0633365c40e32fda28d06ef94e6e3e3d8dab697f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Dec 06 23:50:56 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Dec 10 13:03:48 2018 -0800"
      },
      "message": "Refactor image object visitors for image relocation\n\nRepurpose the boot image visitors for future use in app images.\n\nTest: test-art-host\nBug: 116052292\n\nChange-Id: Ic3b30bb0450ce8533f4d93d694b9916f2b2eff12\n"
    },
    {
      "commit": "3b015746bb77f4e4763a2023ab42e517ffa3f641",
      "tree": "02a66f17797ad13afe745d0bfd9ec18271e96e7a",
      "parents": [
        "2d17c5149bd96327e8e306986f3539429d1d98fe"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Mon Dec 10 04:56:54 2018 -0800"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Mon Dec 10 19:27:16 2018 +0000"
      },
      "message": "Ignore expansion-to-defined warning from dlmalloc include\n\nexternal/vixl/src/../../../external/dlmalloc/malloc.c:2742:5: error: macro expansion producing \u0027defined\u0027 has undefined behavior [-Werror,-Wexpansion-to-defined]\nexternal/vixl/src/../../../external/dlmalloc/malloc.c:589:22: note: expanded from macro \u0027USE_LOCKS\u0027\n                    (defined(USE_RECURSIVE_LOCKS) \u0026\u0026 USE_RECURSIVE_LOCKS !\u003d 0))\n\nTest: m checkbuild\nBug: 29823425\nChange-Id: I38d6947b151a97391b88a32a2b3187e7c4e88660\n"
    },
    {
      "commit": "1c065287805511371b0da2c7d7d8404fe491c9e9",
      "tree": "d0ced0e5f62cea335fc41efa1e84decf571e9a81",
      "parents": [
        "dc12509a6331b7f4c48a1b3a52a2387363841571",
        "97b281129e556e6f3a91e9893f71ca45e7715e3f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Dec 10 18:24:35 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 10 18:24:35 2018 +0000"
      },
      "message": "Merge \"ART: Clean up base/utils.h\""
    },
    {
      "commit": "dc12509a6331b7f4c48a1b3a52a2387363841571",
      "tree": "919e195aa40ef2e55a3dad5e98f39a1081b50213",
      "parents": [
        "f51ee2792433c7db1b1b788b7a3fc1e7816d894a",
        "0bbac3089b5637103585b04774eea3d959c4f24d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Dec 10 18:18:09 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 10 18:18:09 2018 +0000"
      },
      "message": "Merge \"ART: Hide mutex in TimingLogger\""
    },
    {
      "commit": "f51ee2792433c7db1b1b788b7a3fc1e7816d894a",
      "tree": "921998b7c5188b13b65cccc60e72bf0fbca4194d",
      "parents": [
        "e8e484989ea5a28a8ff0262ba19499c76ed30acd",
        "365a64b2085392f4d625725793f10f50f191853c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Dec 10 18:17:46 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 10 18:17:46 2018 +0000"
      },
      "message": "Merge \"ART: Hide Mutex \u0026 ConditionVariable in Barrier\""
    },
    {
      "commit": "e8e484989ea5a28a8ff0262ba19499c76ed30acd",
      "tree": "10df6622972d4f04fe75c7cf2b0e730b177bb83a",
      "parents": [
        "0633365c40e32fda28d06ef94e6e3e3d8dab697f",
        "cbc9dda077969517408eeedcae1032cbd4bdcba9"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Dec 10 17:47:34 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 10 17:47:34 2018 +0000"
      },
      "message": "Merge changes I347037eb,Iaeb79aeb\n\n* changes:\n  Make PrettyMethod note when a method is obsolete\n  Adjust instrumentation CHECK to be correct WRT obsolete methods\n"
    },
    {
      "commit": "0633365c40e32fda28d06ef94e6e3e3d8dab697f",
      "tree": "11f28f180937d2fdbd934d2f9f9ada2fa30f42b0",
      "parents": [
        "b0c3661ac792f4243deddddad2e940a0dce67b0a",
        "3ea432213ec55691f184dbfddbbc1b96a114cd16"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Dec 10 17:03:12 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 10 17:03:12 2018 +0000"
      },
      "message": "Merge \"Create thread pool only during app image loading\""
    },
    {
      "commit": "b023b3fd99a3369479e965c8e5d1d79b2491f75d",
      "tree": "12899651d6ec24d35a34babbb992e189df77b93f",
      "parents": [
        "2d17c5149bd96327e8e306986f3539429d1d98fe",
        "ad2845c0c1322210d39ba1cdbecb2094e156120c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Dec 10 13:03:46 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 10 13:03:46 2018 +0000"
      },
      "message": "Merge \"ART: fix overflow in weighted allocated bytes metrics\""
    },
    {
      "commit": "3ea432213ec55691f184dbfddbbc1b96a114cd16",
      "tree": "3bbbff5fa296ae99e5fe1a908b02ae22cc5ff5f8",
      "parents": [
        "e3c6dfe2009d2fad6f8e4401cb17935bdd09ab9e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Dec 08 20:44:50 2018 -0800"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 10 11:38:18 2018 +0000"
      },
      "message": "Create thread pool only during app image loading\n\nPrevent having a persistent thread pool that is only used during app\nimage loading. This saves RAM.\n\nBug: 116052292\nBug: 120622973\nTest: test-art-host\nChange-Id: I79ff75d593e001a6c48d50b95865550a24772078\n"
    },
    {
      "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": "d57c51e9cffd3684401286a1c8797015ce52b77c",
      "tree": "51c3662e77caed93c16df30321723ee51e2a2d86",
      "parents": [
        "95c591573686f75e32e9edd01777b8a42b186208"
      ],
      "author": {
        "name": "Evan Cheng",
        "email": "evan.cheng@mediatek.com",
        "time": "Fri Jan 26 15:43:08 2018 +0800"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Dec 10 09:54:16 2018 +0000"
      },
      "message": "Fix scheduler_stats may resize to negative value\n\nscheduler_stats will be empty when thread had been exited.\n\nTest: This issue occurred on MTBF-Monkey test, however,\nthe root cause can be verified on the source code.\n\nChange-Id: Ie8e61683126432aa03edef9ebbbf4baaadbdeafd\n"
    },
    {
      "commit": "95c591573686f75e32e9edd01777b8a42b186208",
      "tree": "ae3332d69bb2045fc9c9941a32872607797772ed",
      "parents": [
        "c4252f49a035dca5adfbb4f39d3cede9f93dff7e",
        "91f1032505cfaec3aef51fc0a3085b213813f0ed"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 10 07:31:18 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 10 07:31:18 2018 +0000"
      },
      "message": "Merge \"Revert^2 \"Pass boot class path to ImageSpace::LoadBootImage.\"\""
    },
    {
      "commit": "ae982f976866a709cf2465d203b2fe83420a37f4",
      "tree": "88085ec635a0d45de7c2360adb869a8a2f150329",
      "parents": [
        "c1baad2f913cbe37c7b634499ae23a10dd60d278"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Dec 08 12:31:10 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Dec 08 12:31:10 2018 +0000"
      },
      "message": "Remove CHECK given jvmti deallocates memory.\n\nMissed from https://android-review.googlesource.com/c/platform/art/+/844516\n\nbug: 120632268\nTest: com.android.server.wifi.test\nChange-Id: I18eacc329ddb7a3708e45fc2b4fefe448c8757f2\n"
    },
    {
      "commit": "c1baad2f913cbe37c7b634499ae23a10dd60d278",
      "tree": "5e0404db2cc8fb78c8c74a2d31b45b27d59aa8ff",
      "parents": [
        "13782ba2f0a0fab54f8c47509f3bac445264e89e",
        "b0675b3dec9e96022873c03b95e58a98fba7a464"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Sat Dec 08 06:14:04 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Dec 08 06:14:04 2018 +0000"
      },
      "message": "Merge \"Fix ModifyCardsAtomic comment\""
    },
    {
      "commit": "cbc9dda077969517408eeedcae1032cbd4bdcba9",
      "tree": "ff2f34c520a59ab11560a9441d12cadfa2941e09",
      "parents": [
        "fc81d802243c7fd24b5aa63841217727594dacab"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Dec 07 15:38:29 2018 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Dec 07 15:43:25 2018 -0800"
      },
      "message": "Make PrettyMethod note when a method is obsolete\n\nThis should make debugging issues surrounding obsolete methods easier.\n\nTest: ./test.py --host -j72\nChange-Id: I347037eb77fe9790a99ff9cd5f87faeb795d2ee2\n"
    },
    {
      "commit": "fc81d802243c7fd24b5aa63841217727594dacab",
      "tree": "7cb975ef4f99aa8a548c21c2101f34e22c8a5777",
      "parents": [
        "e352152209d7fdab4eae46cb9ad4c61c82e04598"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Dec 07 13:39:05 2018 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Dec 07 15:43:20 2018 -0800"
      },
      "message": "Adjust instrumentation CHECK to be correct WRT obsolete methods\n\nSome instrumentation sanity-check code didn\u0027t take into account\nobsolete methods and so could sometimes spuriously fail if the right\nsequence of redefines and deoptimizations occur.\n\nThis can occur if one tries debugging a test using inline-mockito, for\nexample.\n\nTest: atest -wbit RecentsAnimationTest and attach debugger with\n      breakpoint in test\nTest: ./test.py --host\n\nBug: 120630577\n\nChange-Id: Iaeb79aebb084990b397e59f56a186e0feaffd654\n"
    },
    {
      "commit": "b0675b3dec9e96022873c03b95e58a98fba7a464",
      "tree": "efa33cada91b19c1deb215c8b73d8efb669573a2",
      "parents": [
        "274ed2ea9d496f75030f849c4259b35ecb4d35c1"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Dec 06 13:51:19 2018 -0800"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Fri Dec 07 11:50:20 2018 -0800"
      },
      "message": "Fix ModifyCardsAtomic comment\n\nThe function doesn\u0027t behave as it was previously specified. Its\nactual semantics are arguably ugly, but that doesn\u0027t really seem to\nbreak anything. Just specify what it really does, and add DCHECK\nto validate previously undocumented assumption.\n\nDeduplicate the comment.\n\nUpdate card_table_test, so it no longer invokes ModifyCardsAtomic\nwith a now disallowed visitor. This was OK, because it\u0027s applied\nto a card table containing no zeroes, and hence the misbehaving\nvisitor didn\u0027t matter. Now we check.\n\nTest: Treehugger.\nChange-Id: Id1ba1cb39c709a33c362d4e386ddcb065bd39049\n"
    },
    {
      "commit": "13782ba2f0a0fab54f8c47509f3bac445264e89e",
      "tree": "b525c0372cd3979fb3e10c4df18cc6c8b42ec0fd",
      "parents": [
        "573b3877fac3c5a4a9703301502694fe7219b21c",
        "7e56a072bc3569404a7c3fc54d4952f2bfe478ab"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Dec 07 19:42:13 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 07 19:42:13 2018 +0000"
      },
      "message": "Merge \"ART: Hide mutex in Instrumentation\""
    },
    {
      "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": "ad2845c0c1322210d39ba1cdbecb2094e156120c",
      "tree": "66fe93516eda836376a98b88cf037af11c26e361",
      "parents": [
        "17ed987eeebdebbd1b923c3c2a6887a233cb7517"
      ],
      "author": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Fri Dec 07 17:39:14 2018 +0000"
      },
      "committer": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Fri Dec 07 17:50:58 2018 +0000"
      },
      "message": "ART: fix overflow in weighted allocated bytes metrics\n\nTest: Run art with -XX:DumpGCPerformanceOnShutdown on some benchmarks.\nBug: 112187497\nChange-Id: I59f7e8998ee055aac28e50884fcabf19b48fbf17\n"
    },
    {
      "commit": "573b3877fac3c5a4a9703301502694fe7219b21c",
      "tree": "4c921582be3fb3bdd83af5b62c482fc066ea5638",
      "parents": [
        "1e2e714cf25f37e5e925477cdd68fe2baf82c134",
        "89036a3a16a59708d4f59d63fa923ddc6c029eb8"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Dec 07 17:37:35 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 07 17:37:35 2018 +0000"
      },
      "message": "Merge \"ART: Set Runtime fault message on abort\""
    },
    {
      "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": "1c1c6e67d858db7fd9296260d4e6e8cff84a0364",
      "tree": "df3a2b3e594be74554c97e006fc4d3271bcabaad",
      "parents": [
        "58431a7cf863b2eb7fe25eff6a28ec376f2f151d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 07 14:46:50 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 07 14:46:50 2018 +0000"
      },
      "message": "Remove CHECK and don\u0027t free code/data in zygote space.\n\njvmti can redefine classes and request free-ing code generated\nby the zygote. In this case, don\u0027t free the memory, as that would\nactually lead to dirty memory, which is opposite the idea of\nsaving memory.\n\nbug: 120653173\nTest: com.android.server.wifi.test\nChange-Id: I8552f075e68e6646f06842a8abf7ec65da6be292\n"
    },
    {
      "commit": "a6dd280a61bdb09f608dd920d23394a5b6223ef4",
      "tree": "b1fad48bb4d4ed7ca39ec5c250d20d1238739028",
      "parents": [
        "17ed987eeebdebbd1b923c3c2a6887a233cb7517",
        "15c5b97d0093a804881acf3a53bda8b6b4c1521d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 07 10:19:34 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 07 10:19:34 2018 +0000"
      },
      "message": "Merge \"ART: Add CRC32.updateBytes intrinsic for ARM64\""
    },
    {
      "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": "a9a0973ff03ce2c2d1ec65695ad0f4cd8ed170a7",
      "tree": "9f00efead2c694b2a590f8c4890a9052571bbcff",
      "parents": [
        "260a50cb43618dfdd325e7c89745d8bc38b20292",
        "d19085141ad9c71eae1b0ff585999ac8e27dadd4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 07 07:51:00 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 07 07:51:00 2018 +0000"
      },
      "message": "Merge \"Pass boot class path to ImageSpace::LoadBootImage.\""
    },
    {
      "commit": "73d8cc7c48dc9fa77fe6b61a6894a28112c033af",
      "tree": "47a225708b3ddbc03c6a45aeed6c9d1ddead13fa",
      "parents": [
        "883931d0cc9c48573c13836b80fbad465bdaa0c9",
        "ce9ed3669d041d9eb2f5489596f133248d90f497"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 07 06:41:18 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 07 06:41:18 2018 +0000"
      },
      "message": "Merge \"Enable JIT in zygote.\""
    },
    {
      "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": "89036a3a16a59708d4f59d63fa923ddc6c029eb8",
      "tree": "aff6b601d1bb6cb9925ac4764eda938d238948b2",
      "parents": [
        "dc1309c01d7b4cbc2c9f5803f7f643fad646f9ba"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 06 13:05:20 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 06 15:14:50 2018 -0800"
      },
      "message": "ART: Set Runtime fault message on abort\n\nIn Runtime::Abort, set the fault message when not on Android. This\nwill help re-print the message at the end of aborts when the\nunexpected-signal handler is being used.\n\nBug: 120506942\nTest: mmma art\nTest: manual\nChange-Id: I0b81049d700012250a16c45d0657b06d1f4d8aa0\n"
    },
    {
      "commit": "15c5b97d0093a804881acf3a53bda8b6b4c1521d",
      "tree": "ad6befd10a3d6dee0f1667d254374e267ad89ce7",
      "parents": [
        "cfc4b3ac67b364d753d970d1adcf97668114e959"
      ],
      "author": {
        "name": "Evgeny Astigeevich",
        "email": "evgeny.astigeevich@linaro.org",
        "time": "Tue Nov 20 13:41:40 2018 +0000"
      },
      "committer": {
        "name": "Evgeny Astigeevich",
        "email": "evgeny.astigeevich@linaro.org",
        "time": "Thu Dec 06 22:19:23 2018 +0000"
      },
      "message": "ART: Add CRC32.updateBytes intrinsic for ARM64\n\nUse crc32 instructions for\njava.util.zip.CRC32.updateBytes(int,byte[],int,int).\n\nThe intrinsic is used if a number of processed bytes is less or equal to\nkCRC32UpdateBytesThreshold. If it exceeds kCRC32UpdateBytesThreshold the\ncore library provided function is used.\n\nNote that CRC32 is an optional feature in ARMv8, this intrinsic\nis only enabled for devices supporting the CRC32 instructions.\n\nThe CL is based on code from tim.zhang@linaro.org.\n\nPerformance improvements - speedup:\narray size | Cortex-A53 | Cortex-A57\n------------------------------------\n128        | 14x        | 20x\n256        | 10x        | 14x\n512        | 8x         | 11x\n1024       | 7x         | 9x\n2048       | 6x         | 8x\n4096       | 5x         | 7x\n8192       | 5x         | 7x\n16384      | 5x         | 7x\n32768      | 5x         | 7x\n65536      | 5x         | 7x\n\nTest: m test-art-target-gtest\nTest: m test-art-host-gtest\nTest: art/test/testrunner/testrunner.py --target --optimizing --interpreter\nTest: art/test/testrunner/testrunner.py --target --jit\nTest: art/test/testrunner/testrunner.py --host --optimizing --interpreter\nTest: art/test/testrunner/testrunner.py --host --jit\nTest: 580-crc32\n\nChange-Id: I0054cea41b5fc3e712e18b0afc7e3eacbf41feb6\n"
    },
    {
      "commit": "dc1309c01d7b4cbc2c9f5803f7f643fad646f9ba",
      "tree": "4e315f966919643416d8e0fd2a87c8b602ada6c6",
      "parents": [
        "bee521dc73825fc75f840749fc4fc7a083a9f0cf",
        "44f67607b33e36c118fe0f62c062865b2bc8bd8f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 06 22:09:37 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 06 22:09:37 2018 +0000"
      },
      "message": "Merge changes Ib1e027a1,I1608b032,I11ca161a\n\n* changes:\n  ART: Rewrite Runtime fault message to be lock-free\n  ART: Move to using locks.h instead of mutex.h\n  ART: Factor out lock order and holder from mutexes\n"
    },
    {
      "commit": "bee521dc73825fc75f840749fc4fc7a083a9f0cf",
      "tree": "287f691d8d02c7ece3356f0d6052e013a21c00d8",
      "parents": [
        "03eb36c6940060f82f887b3e8860a91c1f97224c",
        "519c1c7bb05af22cca3a21cfc78afce5bf9c300c"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Thu Dec 06 21:17:45 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 06 21:17:45 2018 +0000"
      },
      "message": "Merge \"Cleanup marking logic for non-moving objects\""
    },
    {
      "commit": "97b281129e556e6f3a91e9893f71ca45e7715e3f",
      "tree": "3e90f0148f3f6d073a29b0bfcd774e0689fb9fb4",
      "parents": [
        "0bbac3089b5637103585b04774eea3d959c4f24d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Dec 04 09:09:12 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 06 11:37:19 2018 -0800"
      },
      "message": "ART: Clean up base/utils.h\n\nRemove dead code. Remove unnecessary includes.\n\nBug: 115837065\nBug: 119869270\nTest: m\nChange-Id: Ieb07546e9ebd476b7b1459fb8dd6cf5545d0af20\n"
    },
    {
      "commit": "0bbac3089b5637103585b04774eea3d959c4f24d",
      "tree": "62685295f10f87548d4a14996f384e943645130d",
      "parents": [
        "365a64b2085392f4d625725793f10f50f191853c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 30 09:44:12 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 06 11:37:19 2018 -0800"
      },
      "message": "ART: Hide mutex in TimingLogger\n\nEnsure that timing_logger.h does not pull in mutex.h.\n\nBug: 119869270\nTest: m test-art-host\nChange-Id: I84b92dbc435a3f273f3dc519bbf7948220636c2f\n"
    },
    {
      "commit": "365a64b2085392f4d625725793f10f50f191853c",
      "tree": "afb67f309970694980c933bb9822268873d0c00e",
      "parents": [
        "7e56a072bc3569404a7c3fc54d4952f2bfe478ab"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Nov 29 11:24:00 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 06 11:37:19 2018 -0800"
      },
      "message": "ART: Hide Mutex \u0026 ConditionVariable in Barrier\n\nEnsure that barrier.h does not pull in mutex.h\n\nBug: 119869270\nTest: m test-art-host\nChange-Id: I54ea467c92562ec912ea5b1705049eb23cda380e\n"
    },
    {
      "commit": "7e56a072bc3569404a7c3fc54d4952f2bfe478ab",
      "tree": "308bc711966ee1d4f6a3b7dc4c07f346fe5c01ad",
      "parents": [
        "44f67607b33e36c118fe0f62c062865b2bc8bd8f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Nov 29 10:40:06 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 06 11:37:19 2018 -0800"
      },
      "message": "ART: Hide mutex in Instrumentation\n\nEnsure that instrumentation.h does not pull in mutex.h.\n\nBug: 119869270\nTest: m test-art-host\nChange-Id: I0cb993ac3ddef3ce7efab8c624aa92905c888a0d\n"
    },
    {
      "commit": "44f67607b33e36c118fe0f62c062865b2bc8bd8f",
      "tree": "a17f7b4a6f7affe866377ac5ee7924195ef8fbe5",
      "parents": [
        "7fbc4a59ba2e60d869313d7961662430df83b2cb"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 28 08:27:27 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 06 11:37:19 2018 -0800"
      },
      "message": "ART: Rewrite Runtime fault message to be lock-free\n\nTo avoid the lock in a general header, rewrite the fault message\n(that is almost unused) to be lock-free. Store the string as a\nheap object owned by Runtime.\n\nBug: 119869270\nTest: mmma art\nTest: m test-art-host\nChange-Id: Ib1e027a1543c46d25953119f05792f0e874d6a3d\n"
    },
    {
      "commit": "7fbc4a59ba2e60d869313d7961662430df83b2cb",
      "tree": "59520285df8d2075412ddc566a0d4d96d4c7e109",
      "parents": [
        "7cc45fd1dbcf5704e442d0443e437aa2ae3fe21b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 28 08:26:47 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 06 11:37:19 2018 -0800"
      },
      "message": "ART: Move to using locks.h instead of mutex.h\n\nWhen only annotating lock requirements, use locks.h.\n\nBug: 119869270\nTest: mmma art\nChange-Id: I1608b03254712feff0072ebad012c3af0cc3dda4\n"
    },
    {
      "commit": "7cc45fd1dbcf5704e442d0443e437aa2ae3fe21b",
      "tree": "76e582afd0580be21497787c584cab61f7599997",
      "parents": [
        "03eb36c6940060f82f887b3e8860a91c1f97224c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 21 16:03:08 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 06 11:37:19 2018 -0800"
      },
      "message": "ART: Factor out lock order and holder from mutexes\n\nIsolate the order and holder class from the mutex definitions.\nThe locks header requires significantly fewer includes, and\nwill be used in a follow-up change to remove mutex.h dependencies\nin headers just for the sake of annotation lock requirements.\n\nThis is itself an NFC commit, only pulling the code apart.\n\nBug: 119869270\nTest: m test-art-host\nChange-Id: I11ca161ac3118725c79313a82f58595699b590bf\n"
    },
    {
      "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": "03eb36c6940060f82f887b3e8860a91c1f97224c",
      "tree": "b4667d8a91976c1458d0ab164f07982bb92b81ee",
      "parents": [
        "4bebb8582123c75cb7a9bf0d35f746845e851618",
        "6693742a2842ece89e90d1fd8e412c2c9d62cd22"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Dec 06 18:43:34 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 06 18:43:34 2018 +0000"
      },
      "message": "Merge \"ART: use freed_bytes in reclaimed_bytes_ratio calculation\""
    },
    {
      "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": "ce9ed3669d041d9eb2f5489596f133248d90f497",
      "tree": "f95fc9d6fc78119686fe91db5c2aaabd31b6abb1",
      "parents": [
        "69431d3ba1c560f0b23bd2ad6257949deb679aa7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 29 03:19:28 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Dec 06 14:12:34 2018 +0000"
      },
      "message": "Enable JIT in zygote.\n\nbug: 119800099\nTest: boot test\nChange-Id: I92dc59adeaf1202a984d363b1420ef26e53ebe84\n"
    },
    {
      "commit": "67d351540d2cfa3bca5d1d57020eeec2783a1d31",
      "tree": "5074e4bde7c61c54d9ddaecc12b1f86b3ebfd476",
      "parents": [
        "d4fff712f36f813bf793f9d66897c4cc07b9ae61",
        "8b751c59ed5331551648309bde6a19ec833fc46e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 06 07:06:25 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 06 07:06:25 2018 +0000"
      },
      "message": "Merge \"ART: Move EnableDebugger to frameworks\""
    },
    {
      "commit": "eac4d6aec60053f7bbec9b833e21702f34ba3d93",
      "tree": "4a51da7a94e3022f9a4a485d0141c11220c0ba64",
      "parents": [
        "274ed2ea9d496f75030f849c4259b35ecb4d35c1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 05 12:33:46 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 05 12:52:16 2018 -0800"
      },
      "message": "Reduce runtime thread pool stack size\n\nReduce the size to 64k to avoid using as much virtual address space.\n\nBug: 116052292\nTest: test-art-host\nChange-Id: I370cfb6c8f7060b674e5bc67a0b85ac7adf46041\n"
    },
    {
      "commit": "274ed2ea9d496f75030f849c4259b35ecb4d35c1",
      "tree": "6a371c40b6f754db7687aceb538f81f85871373f",
      "parents": [
        "18851145160a85f028432c07247485250167b155",
        "c6068c7f07785f326090f2c3dc0d5679adbfcc69"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 05 16:48:51 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 05 16:48:51 2018 +0000"
      },
      "message": "Merge \"Parallel image decompression\""
    },
    {
      "commit": "523940b40f9701504d6e007dd2af48f315038dc1",
      "tree": "1c20f1c04edea4473b72d7937582a56559716b83",
      "parents": [
        "c83c64e793f44fbdd5eb4193f5f74af115585658",
        "2d7329b5379a739751448ee93ae7c52d15d0c07b"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Dec 05 14:50:38 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 05 14:50:38 2018 +0000"
      },
      "message": "Merge \"ART: add weighted allocated bytes metrics\""
    },
    {
      "commit": "c83c64e793f44fbdd5eb4193f5f74af115585658",
      "tree": "3ce98f86c4fe1bdf860c61cf6722f9775a65ee9e",
      "parents": [
        "f07dbf7428e05d839fe473cea20db47f0c08e33d",
        "b06fbf7dfdb360885a1791b61c8943200c77e4e6"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Dec 05 13:38:34 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 05 13:38:34 2018 +0000"
      },
      "message": "Merge \"ART: Support kryo385 CPU.\""
    },
    {
      "commit": "8b751c59ed5331551648309bde6a19ec833fc46e",
      "tree": "7092b4556be47a205e469c20ae30737a4ff26260",
      "parents": [
        "94d4f5fa020561a1f828828dce1edf8fb5d4ab5c"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Dec 05 12:25:31 2018 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Dec 05 12:25:31 2018 +0000"
      },
      "message": "ART: Move EnableDebugger to frameworks\n\nBug: 120485385\nTest: cts\nChange-Id: Ied6ef5e846417fa264d0f5c009780d22219d14e5\n"
    },
    {
      "commit": "519c1c7bb05af22cca3a21cfc78afce5bf9c300c",
      "tree": "efc6f5bd69f708a345d1fed80ff9c379519383a4",
      "parents": [
        "94d4f5fa020561a1f828828dce1edf8fb5d4ab5c"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Fri Nov 09 17:10:47 2018 -0800"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed Dec 05 01:08:43 2018 -0800"
      },
      "message": "Cleanup marking logic for non-moving objects\n\nThe marking logic for non-moving and large objects currently grays the\nread barrier state and sets the mark bitmap together. This causes the\nfollowing complexities:\n1) Setting the mark bitmap has to be done atomically as application\nthreads also set the mark bitmap.\n2) It requires using a separate false gray stack to handle cases where\ndue to concurrent execution one thread succeeds in graying the object\neven after the object has been already marked.\n\nThis can be simplified if non-moving/large objects are treated just like\nthe unevac-space objects are. Marking the object involves testing\nwhether the object is already marked in the bitmap or not. If not, then\ngraying the read barrier state and pushing to the mark stack.\nEventually, GC thread sets the mark bit non-atomically while processing\nthe reference.\n\nBug: 119273672\nBug: 112720851\nBug: 119629540\nTest: art/test/testrunner/testrunner.py --64\nChange-Id: I7050d545d59d5d8b1c90813a982e6f464b15d5e3\n"
    },
    {
      "commit": "18642a3970d57b91865234048329f9a2252e0cbc",
      "tree": "f4cdcdc5b5cbf5c0a65a9b716f4b9ad2d94a914d",
      "parents": [
        "9f27ffa9031431267ae59ee3469c853355811916"
      ],
      "author": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Mon Dec 03 19:28:08 2018 +0000"
      },
      "committer": {
        "name": "vichang",
        "email": "vichang@google.com",
        "time": "Wed Dec 05 00:15:09 2018 +0000"
      },
      "message": "Remove unused ICU4C headers in libartbase-art-gtest and libart-runtime-gtest\n\nBug: 117094880\nTest: m libartbase-art-gtest libart-runtime-gtest\nChange-Id: Iff46ce8ac9f12fb0021ae453624efe84df20a56a\n"
    },
    {
      "commit": "c6068c7f07785f326090f2c3dc0d5679adbfcc69",
      "tree": "e0d729e4c73cecb87413341a7c6f3fd0ce876cf5",
      "parents": [
        "ee45798b02c3a9fffa9c4b5c1fe0fe03a423df66"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 13 16:00:58 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Dec 04 14:08:55 2018 -0800"
      },
      "message": "Parallel image decompression\n\nAdd a runtime thread pool to facilitate parallel app image loading.\n\nUse the thread pool to decompress the image, this results in a ~1%\napp startup speedup.\n\nTest: test-art-host\nTest: manual\nBug: 116052292\n\nChange-Id: If35f71ff632ac58e67d11eed4b5f5b19656cc301\n"
    },
    {
      "commit": "2d7329b5379a739751448ee93ae7c52d15d0c07b",
      "tree": "76de7c6bd8350792661789ecae4a4943eb36b65c",
      "parents": [
        "6a98f89c4ad645b04d6c80d3d7e260c59bf6f193"
      ],
      "author": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Fri Nov 30 19:58:18 2018 +0000"
      },
      "committer": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Tue Dec 04 19:31:28 2018 +0000"
      },
      "message": "ART: add weighted allocated bytes metrics\n\n`process_cpu_start_time_` is moved from `art::Runtime` to `art::gc:Heap`\nso that it could be reset when the app starts (current process is forked\nfrom Zygote).\n\n`process_cpu_end_time_` is removed from `art::Runtime` because it\u0027s only\nused when the runtime is about to shutdown, so it suffices to capture it\nin a local variable.\n\nTest: Run art with -XX:DumpGCPerformanceOnShutdown on some benchmarks.\nBug: 112187497\nChange-Id: I154fdb6acdf4e0c21dff835807bd4e2cf311e3d1\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": "807e4b30b3384e5b23da0c54710be78f17fc6345",
      "tree": "cb000ac70bffe89a907e1b63f0b58db3d8b6c4b7",
      "parents": [
        "147b5b1ab58abcc25b4c2b489ee9952d0ce70c69",
        "26c43778589d1c7598cbe6203b6545c9d3ab220a"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Tue Dec 04 12:39:16 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 04 12:39:16 2018 +0000"
      },
      "message": "Merge \"Add support for ANDROID_RUNTIME_ROOT variable\""
    },
    {
      "commit": "95eeb3958cd93a4f270cd29ec5b18d2d9d245083",
      "tree": "15b697cc811f8c3ef4bf99be48f8cf59ea9d52c2",
      "parents": [
        "f6f43d842dffd11d2472e2c3397d017ff7399b18",
        "1a6586327d9de6374f9e7ca98d071f2943b03c99"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Dec 04 10:11:43 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 04 10:11:43 2018 +0000"
      },
      "message": "Merge \"Keep pointer to original DexFile during JVMTI redefine for hiddenapi\""
    },
    {
      "commit": "f6f43d842dffd11d2472e2c3397d017ff7399b18",
      "tree": "deda2e653bcfefc9a901bd89226c231a29a4975d",
      "parents": [
        "ee45798b02c3a9fffa9c4b5c1fe0fe03a423df66",
        "80d16289df2ec243737063e4f9d092ac3a7cbb10"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Dec 04 10:07:59 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 04 10:07:59 2018 +0000"
      },
      "message": "Merge \"hiddenapi: Introduce greylist-max-p\""
    },
    {
      "commit": "1a6586327d9de6374f9e7ca98d071f2943b03c99",
      "tree": "1d118af8f32855ef0036080d5e8a560f14e5e482",
      "parents": [
        "d378a567a435a80be9ab7eb8bfe0359c1240c0ff"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Sat Dec 01 17:54:26 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Dec 03 20:19:40 2018 +0000"
      },
      "message": "Keep pointer to original DexFile during JVMTI redefine for hiddenapi\n\nJVMTI redefine overwrites the pointer to the class\u0027 DexFile which\nprevents access checks from reading the hiddenapi flags store. Store\nthe pointer in ClassExt together with the original ClassDef index\nto preserve the access to flags store. Because method/field indices\nare still lost, the corresponding dex member is found using string\ncomparison of member\u0027s name and type.\n\nBug: 119688837\nTest: 999-redefine-hiddenapi\nChange-Id: Ifdf35668e838869a971233bbaae61851014658b1\n"
    }
  ],
  "next": "26c43778589d1c7598cbe6203b6545c9d3ab220a"
}
