)]}'
{
  "log": [
    {
      "commit": "2b71f69e4a7a9fb85555f47581fff09ff5866a13",
      "tree": "ef4ab9782354e386052b8820e9d08ea75c68ad39",
      "parents": [
        "22ad8def99d0ee0f6d072e630c5414f8033446bf",
        "c0206e1a89fc996425f2b4b440d98a7425be6e1e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Dec 04 14:05:10 2015 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Dec 04 14:05:10 2015 -0800"
      },
      "message": "Merge \"Store class tables in the image\" am: a616b4e086 am: e8d71c13ad\nam: c0206e1a89\n\n* commit \u0027c0206e1a89fc996425f2b4b440d98a7425be6e1e\u0027:\n  Store class tables in the image\n"
    },
    {
      "commit": "208a5cb383dd9dcd3461f89b74af5df67dc8d794",
      "tree": "9ed531a445d24a7685e577b1c5822e50dc1c1b1d",
      "parents": [
        "5337bbfbd1cd502bb2842698a6b2a543ab6a6c32"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 02 15:44:07 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Dec 03 16:29:03 2015 -0800"
      },
      "message": "Store class tables in the image\n\nReduces how long it takes to load an application image.\n\nN5 boot.art size\nBefore: 8007680\nAfter: 8122368\n\nAlso reduces boot time by how long AddImageClassesToClassTable\nused to take (~20ms).\n\nChanged class hashes to be uint32_t to fix cross compilation. We need\nserialized hash tables to be valid with different pointer sizes.\n\nBug: 22858531\n\nChange-Id: I463fc83f499ff75f509e80c253a55b9116ee5b89\n"
    },
    {
      "commit": "a7a4759946d9f11c88dc108b2b6a9518ce9c1e18",
      "tree": "f5522eb632ff53b4c285ff76a3966d37a995777a",
      "parents": [
        "099ab4d06857ccbe642d98ba25df1eb02aee99c7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 24 09:17:30 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 24 10:54:16 2015 +0000"
      },
      "message": "Revert \"lambda: Add support for invoke-interface for boxed innate lambdas\"\n\n955-lambda is flaky\n\nBug: 24618608\nBug: 25107649\n\nThis reverts commit 457e874459ae638145cab6d572e34d48480e39d2.\n\n(cherry picked from commit 3a0909248e04b22c3981cbf617bc2502ed5b6380)\n\nChange-Id: I24884344d21d7a4262e53e3f5dba57032687ddb7\n"
    },
    {
      "commit": "3a0909248e04b22c3981cbf617bc2502ed5b6380",
      "tree": "b0b7013ea78b10f23fae75ef145e53a696ff797c",
      "parents": [
        "457e874459ae638145cab6d572e34d48480e39d2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 24 09:17:30 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 24 09:17:30 2015 +0000"
      },
      "message": "Revert \"lambda: Add support for invoke-interface for boxed innate lambdas\"\n\n955-lambda is flaky\n\nBug: 24618608\nBug: 25107649\n\nThis reverts commit 457e874459ae638145cab6d572e34d48480e39d2.\n\nChange-Id: I24884344d21d7a4262e53e3f5dba57032687ddb7\n"
    },
    {
      "commit": "121b25e246b7012cfd895f205855c6102da48305",
      "tree": "8d7e4dae58b59e9a554db03a06c800f3caf5b6b9",
      "parents": [
        "31f7afcd651ca5836892d1c24010933fa40c29e4",
        "13ca74fed068a6a49221b5213ce0b1bebeda3ed6"
      ],
      "author": {
        "name": "Przemyslaw Szczepaniak",
        "email": "pszczepaniak@google.com",
        "time": "Fri Nov 20 11:24:33 2015 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Sat Nov 21 16:28:15 2015 +0000"
      },
      "message": "Merge mnc-dr-enso-dev into goog/master\n\nBug: 25758743\nChange-Id: I19d433934f01856e7b5a7392a58b759c3ac386e7\n"
    },
    {
      "commit": "457e874459ae638145cab6d572e34d48480e39d2",
      "tree": "b192c4698c4889ae90db6abe2652199802213fe6",
      "parents": [
        "3944f7175dcf60316ba58a42698ccf23c65ac57c"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Oct 22 17:37:50 2015 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Nov 20 16:33:06 2015 -0800"
      },
      "message": "lambda: Add support for invoke-interface for boxed innate lambdas\n\nLambda closures created with the \u0027create-lambda\u0027 instruction\n(termed \"innate lambdas\") can be turned into an object with \u0027box-lambda\u0027.\n\nThis CL enables support for those kinds of lambdas to work with\n\u0027invoke-interface\u0027 by generating a proxy class for the lambda.\n\nNote: MIPS32/64 support not included.\n\nBug: 24618608\nBug: 25107649\nChange-Id: Ic8f1bb66ebeaed4097e758a50becf1cff6ccaefb\n"
    },
    {
      "commit": "d37d364c27e74a7b49970a8c970482e273aa7b1a",
      "tree": "ecf910556f7d6e4a0cdfa7dfc271f3894909e601",
      "parents": [
        "16cabc4acd14d5a61c73cef821162e1827f08788"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 19 16:05:58 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 19 16:11:03 2015 -0800"
      },
      "message": "Create parent class loader for dex2oat\n\nThis means we also put the class loader in the app image so that it\ncan be used for verifying the dex file order.\n\nBug: 22858531\nChange-Id: I30761b59421c8a24cffd62b469134b25d2929e2e\n"
    },
    {
      "commit": "3db9c5da2925ca5ca82cc37b60a8e9fc39e88d1d",
      "tree": "eb963403d06cad9ff2569f669ef714425d40c893",
      "parents": [
        "3ce45f4e6abd725407a539521f69959a6ac5a9c1"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 17 11:52:46 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 18 22:26:39 2015 -0800"
      },
      "message": "ART: Change Init{From,Without}Image to return bool\n\nRewrite some CHECKs to return false. For a common failure (missing)\nimage, this improves the abort (as it\u0027s not a runtime abort with\nlots of stack traces anymore).\n\nChange-Id: I717b1db74950267ced0ad3bafa1aed1693680062\n"
    },
    {
      "commit": "04302dbb106d590ff72c0dfecda23d85b6565059",
      "tree": "2fe66e258de36bcebc913d48e04468b7c639578f",
      "parents": [
        "0e06a0989f4fc53e0d281a5a2cb5b5a17feaea0c"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Nov 11 23:45:34 2015 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Nov 13 15:21:29 2015 -0800"
      },
      "message": "Fix class unloading with the CC collector.\n\nAvoid unnecessarily decoding dex cache and class loader weak roots,\nwhich would trigger read barriers.\n\nRe-enable 141-class-unload with the CC collector.\n\nBug: 12687968\nBug: 24468364\nChange-Id: Ib4c19f25000873cab0e06047040442d135285745\n"
    },
    {
      "commit": "4678b6bb31123076c2d921b20b52e52459d8b650",
      "tree": "fe0a849f7cfa8f35c62e110d3747a4014f0dc2f7",
      "parents": [
        "54d8f4bc810e7e0767f44cb77e5706a232b644bb",
        "347647f279db4da1b3b1eca3a162b0eabc6268d2"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Nov 12 14:20:30 2015 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Nov 12 14:20:30 2015 +0000"
      },
      "message": "Merge mnc changes into mnc-dr\n"
    },
    {
      "commit": "dcf1b59d6f834cce110028e20a00187091c0138a",
      "tree": "18409c2b1ea6b79520b75365e21a50eddf7380d1",
      "parents": [
        "925ef34f956cfbc6dfe78cd7d0b82e64d17c261f"
      ],
      "author": {
        "name": "Przemyslaw Szczepaniak",
        "email": "pszczepaniak@google.com",
        "time": "Mon Oct 12 16:34:14 2015 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Nov 12 11:52:47 2015 +0000"
      },
      "message": "Fix Constructor#serializationCopy\n\nAdded new Constructor#newInstanceFromSerialization\nmethod that\u0027s used to implement #newInstance on\nConstructor instances created by the #serializationCopy.\n\n+ Restored ArtField::GetOffset missing DCHECK and\nfixed debug build use of GetOffset to GetOffsetDuringLinking\nin the class_linker.cc.\n\nBug: 24764403\nChange-Id: I74bdf6a850bf9770ec51bf9a4421541d505de8ad\n"
    },
    {
      "commit": "d1ef4362bf799f9f5d50e5edef8433664b503051",
      "tree": "59aaa140925efa790f787d5e1caf6d0cafd6ae15",
      "parents": [
        "e4cf5892c2a244034900d49499c071b255571bba",
        "f32e8327da5dd33abe18662fbca5e584cd047816"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Nov 12 11:49:06 2015 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Nov 12 11:52:42 2015 +0000"
      },
      "message": "Merge lmp changes into mnc.\n\nMost merge conflicts are due to changes in the string representation.\nThey have been resolved in favour of \"mnc-dev\" since we\u0027ve changed\nthe string representation there. Other changes relate to the\nfact that there are now two jars in libcore (core-oj and core-libart).\n\nChange-Id: I1fcc6e5f8dab8d1954dcddca0493563e7677d433\n"
    },
    {
      "commit": "073b16c8429d302d5413e8ffc488b03b8f770780",
      "tree": "a417fd8042df8c0a9621f9097643ecaede4deeab",
      "parents": [
        "5165b6ba1fda85d769c5092a65f07bcfffb0b3e7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 10 14:13:23 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 11 19:22:33 2015 -0800"
      },
      "message": "Image space cleanup for app images\n\nRemoved Heap::GetImageSpace, added Heap::GetBootImageSpace.\n\nGeneralized some logic in the class linker for image spaces.\n\nBug: 22858531\n\nChange-Id: Ib3e12bb061a247e232d3dc93b0d6b35eb3a34d25\n"
    },
    {
      "commit": "9139e008abe30b7beaf4afd6533228a1dd9b202c",
      "tree": "506be89287507bd777bd132627ad963729434969",
      "parents": [
        "d7c76bd7e867b151ac81ef41810614c7b4cc898e"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Oct 09 15:59:48 2015 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Nov 10 17:20:41 2015 -0800"
      },
      "message": "Correct exception behavior for default methods\n\nDefault methods are defined to throw an IncompatibleClassChangeError\n(ICCE) when they are called and there is no \"best\" implementation.\nPreviously we would simply throw an ICCE during class loading as soon\nas we noticed that this would happen if called. This makes us wait\nuntil we actually attempt to execute the method. Furthermore, this\nallows us to use other, non-conflicting, methods on the object as\nnormal.\n\nFurthermore, this makes us correctly throw AbstractMethodErrors in\ncases where all default implementations of a method are overridden by\nabstract declarations.\n\nAdds 3 tests for this new behavior.\n\nBug: 24618811\n\nChange-Id: Id891958a81f9b3862b2ce5919636aabef7d3422e\n"
    },
    {
      "commit": "78232f2482e71fef255796633da68bb769baa93a",
      "tree": "091c89373fa449d79e4c82dc2c91fa2561cad78a",
      "parents": [
        "f1584a6f5251892509097c3bb30bd91d36634d0a",
        "ec6e6c19662260c059b273dfc9c502900756487d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 09 21:25:47 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 09 21:25:47 2015 +0000"
      },
      "message": "Merge \"ART: Rerun the verifier for compile-time failures\""
    },
    {
      "commit": "f1584a6f5251892509097c3bb30bd91d36634d0a",
      "tree": "9fbd3fdd67726a988500eec8490a1f44f238927a",
      "parents": [
        "3c5893762675d90697d9205b76dc24e2d04e27ca",
        "f1f104935bc9a200f6e79c52c56c5d7cf0f43bb2"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Nov 09 19:30:10 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 09 19:30:10 2015 +0000"
      },
      "message": "Merge \"Class Linker: Implement default interface verification ordering.\""
    },
    {
      "commit": "f1f104935bc9a200f6e79c52c56c5d7cf0f43bb2",
      "tree": "0ecab05d26e4990b3898a86c6d68bdee6e7fb9a8",
      "parents": [
        "3482c271278b30ca7a5c6206b7f80332616f6a84"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Oct 07 16:08:36 2015 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Nov 09 11:27:29 2015 -0800"
      },
      "message": "Class Linker: Implement default interface verification ordering.\n\nWe ensure that default interface verification failure is propagated to\nthe implementing class so that the compiler is able to properly handle\nverification failures. Furthermore we ensure that default interfaces\nare verified at the same time their implementing classes are.\n\nThis does not add additional support for default methods to the verifier.\n\nThis adds a basic test of this functionality.\n\nPreviously assumptions made about the order of verification in our\ncode could cause a check failure during compilation. Our old code\nassumed that all code that would be run during a classes\ninitialization had been verified before any of it was run. The default\ninterfaces broke this assumption. Now we will simply verify default\ninterfaces with any classes that implement them.\n\nBug: 24618811\n\nChange-Id: Ia11a50a28889dbd7ca22ffa730ef443e39f3cb5b\n"
    },
    {
      "commit": "ec6e6c19662260c059b273dfc9c502900756487d",
      "tree": "df5594424e73244690703e5ddadd0b141731e18a",
      "parents": [
        "ce0f43b97ffb5e4d14c5df6607d8efb46a5dc9d2"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Nov 05 20:39:56 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 09 10:48:25 2015 -0800"
      },
      "message": "ART: Rerun the verifier for compile-time failures\n\nTo aid app failure diagnosis, by default re-run the verifier at\nruntime to compute a better VerifyError message.\n\nRewrite the verifier driver code to pass the last actual low-level\nverifier message.\n\nBug: 25432718\nChange-Id: Ib8e6dd1ce8121045c0d38f54969100094c3dde6e\n"
    },
    {
      "commit": "3b021bf1b7f6487c640ef5b92dbcc3e1852f23ff",
      "tree": "9a66a6c8b8f2dca69f886c142e332b04e16e7636",
      "parents": [
        "8c145b99fd47dca629b815ea7d76a17b7d50f742"
      ],
      "author": {
        "name": "Piotr Jastrzebski",
        "email": "haaawk@google.com",
        "time": "Tue May 05 16:19:00 2015 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Nov 09 10:34:00 2015 +0000"
      },
      "message": "Update the number of direct methods in j.l.reflect.Proxy.\n\nChange-Id: I868ac35f2587cc164872c1e0f6c67fc0d44a576c\n"
    },
    {
      "commit": "ef7ef4ce04a46405e15cd91115c6e657235adf83",
      "tree": "870583f3283d78b22ebe57d8d79ce9c3b2c8030f",
      "parents": [
        "f66f05ddfceaa8a2f613d3ed8316a21c95e1fbca",
        "cb086955c2a21270cd2f53a8bce71e577d776506"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 06 18:42:04 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 06 18:42:04 2015 +0000"
      },
      "message": "Merge \"ART: Change behavior for rethrowing init failures (2)\""
    },
    {
      "commit": "2fa684206b0a8bd203d07e1edf74a839b498f74f",
      "tree": "a64b408af6419ab9851bd6256fd057c252920ebd",
      "parents": [
        "2704896d3aa2902f46eebd722095b06331f548be",
        "81819db4248da38068c029add11a9d36215a01b1"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 06 09:54:39 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 06 09:54:39 2015 +0000"
      },
      "message": "Merge \"ART: Fix ignoring duplicate fields when loading class.\""
    },
    {
      "commit": "da5b28adf5ba013f0784578a8b97577782e23d95",
      "tree": "938c87fd4eabebed7a41fc373e18ac08111d9b49",
      "parents": [
        "51c1b63fc71bea1b22b9719bc24ffd130aa2e420"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 05 08:03:47 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 05 15:53:49 2015 -0800"
      },
      "message": "Revert \"Revert \"Add basic image writer support for app images\"\"\n\nNo changes, bug fixed in:\nhttps://android-review.googlesource.com/#/c/180886/\n\nBug: 22858531\n\nThis reverts commit 4b018565e57c3349a3c1b5ec8ac9dae261c5e00b.\n\nChange-Id: I86d9c2b55d535d803c6e1b3b8b4836bf6ff077e5\n"
    },
    {
      "commit": "81819db4248da38068c029add11a9d36215a01b1",
      "tree": "123e29aea9fd947aaf1586644bc94bc2642041aa",
      "parents": [
        "26bfcec526860857410944f0d437957d109ef7ae"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 05 15:30:12 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 05 17:31:03 2015 +0000"
      },
      "message": "ART: Fix ignoring duplicate fields when loading class.\n\nBug: 25493974\nChange-Id: I59e7ee6ee5b991b327553d022d7d212db415c9c3\n"
    },
    {
      "commit": "c09b3344568f9533a0954f5dfba20d65d05ec4c1",
      "tree": "baddee32ea987039bd7b88bdf45c709c2260b46d",
      "parents": [
        "f97ad8115d00d5bd9bbd9c485a7a4b8107f620a2",
        "4b018565e57c3349a3c1b5ec8ac9dae261c5e00b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 05 08:49:07 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 05 08:49:07 2015 +0000"
      },
      "message": "Merge \"Revert \"Add basic image writer support for app images\"\""
    },
    {
      "commit": "4b018565e57c3349a3c1b5ec8ac9dae261c5e00b",
      "tree": "ee1ea3271d41b9a647a7ce7e4d1a0ed94eff9fcf",
      "parents": [
        "c033474cfbfe1e963c07fa5c38aed02e35ed6f91"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 05 08:47:52 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 05 08:48:36 2015 +0000"
      },
      "message": "Revert \"Add basic image writer support for app images\"\n\ninterpreter and jit tests fail.\n\nBug: 22858531\n\nThis reverts commit c033474cfbfe1e963c07fa5c38aed02e35ed6f91.\n\nChange-Id: Ic12a3e2a1908ac0db52d21a0b44b2508c88b2585\n"
    },
    {
      "commit": "a930832a4ef0a2ef0835c5db4650750018ab0765",
      "tree": "845c2808f59ff7dcbb5a521a83d3eebdf665c821",
      "parents": [
        "accc24985c08e98a27f43bc856fba4c3c48e79e9",
        "c033474cfbfe1e963c07fa5c38aed02e35ed6f91"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 05 02:09:05 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 05 02:09:05 2015 +0000"
      },
      "message": "Merge \"Add basic image writer support for app images\""
    },
    {
      "commit": "cb086955c2a21270cd2f53a8bce71e577d776506",
      "tree": "be580e6a4050539b2785d6d92cb9e71507c075d2",
      "parents": [
        "accc24985c08e98a27f43bc856fba4c3c48e79e9"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 02 16:20:00 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 04 18:01:26 2015 -0800"
      },
      "message": "ART: Change behavior for rethrowing init failures (2)\n\nAlways store the pending exception when making a class erroneous.\nInstead of filtering by ExceptionInInitializerError, add an option\nto the rethrow that enforces a NoClassDefFoundError, which is required\nby the specification.\n\nUse the libcore companion change to add the stored error (if any) as\na cause to the NoClassDefFoundError, which should significantly help\ntracking down issues.\n\nFix run-test 008 to expect spec-compliant behavior. Test that a cause\nhas been set.\n\nBug: 25445103\nChange-Id: I6a0dc54e78312283faf23415887eff387531407f\n"
    },
    {
      "commit": "c033474cfbfe1e963c07fa5c38aed02e35ed6f91",
      "tree": "7b5532969edb6036525cfa36973f52dcd5f6f566",
      "parents": [
        "c8894ab5021aecd0fa5eba94af47f732914af33b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 02 10:30:20 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 04 16:30:51 2015 -0800"
      },
      "message": "Add basic image writer support for app images\n\nNeeded to handle references from app image -\u003e boot image.\n\nGenerate app images for tests to enable some testing.\n\nBug: 22858531\n\nChange-Id: I1af98b6c4dfcb3a147fb5b0dea64aa4946c7ce57\n"
    },
    {
      "commit": "99babb6add7db19ce7605f6d5e4aee79d52e386f",
      "tree": "116f63fc2f96ad103a5dc121667d4b3df9e6e2ff",
      "parents": [
        "3f922d1f3ccd7a1341f887ac3e8176b5208ecf6d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 02 16:20:00 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 04 12:16:16 2015 -0800"
      },
      "message": "ART: Change behavior for rethrowing init failures\n\nAllow to store a Throwable instance or a throwable class. Handle\nrethrow accordingly.\n\nBug: 25444180\nChange-Id: I703c2c6eaf34ad0e3bc0f5a104d65f2ff1b212ca\n"
    },
    {
      "commit": "22cf3d361695ff1d585a8a412ebeade69749811f",
      "tree": "bff30bc41f6f85d0758934a9eeeb3511c2a0fc44",
      "parents": [
        "43c6d31c43c05d97511bb9658964fd3d2f32b915"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 02 11:57:11 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 02 15:21:41 2015 +0000"
      },
      "message": "Fix tests flakiness with jit when using Proxy classes.\n\nWe cannot copy the entry point between ArtMethod when\nthe entry point has been JITted. We put the interpreter\nbridge instead.\n\nbug:25334878\n\nChange-Id: I65a50cc1f10a5a152733807f8c85fb3ed81c5829\n"
    },
    {
      "commit": "9507fa2c9545156747a5eb248bc1af3159bfd8c8",
      "tree": "f8facbd68dabc781cc4f8e76353a418ef633896e",
      "parents": [
        "c65d1f3d26a47e2fce3c3f8872e7942fec23f9b9"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 29 15:08:57 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 29 15:22:00 2015 -0700"
      },
      "message": "Change a few places to use string version of GetTypeId\n\nGetTypeId is about 20% faster than GetStringId + integer GetTypeID\nsince it does less binary searches.\n\nChange-Id: I876c4ac89ab206acca217b2287b0197ef2e408c2\n"
    },
    {
      "commit": "7a16bdbcce562a39a6a7defde5e191ca74327f3b",
      "tree": "08aa651a9b18ccabe11083ceed413b9ed2cd13f5",
      "parents": [
        "1a7b13394775c363d8f8facf748d188d1c225aac",
        "35831e8bfa1c0944d4c978d99c4c5b9577945170"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 27 16:08:44 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 27 16:08:44 2015 +0000"
      },
      "message": "Merge \"Reduce memory used by CompiledMethods.\""
    },
    {
      "commit": "35831e8bfa1c0944d4c978d99c4c5b9577945170",
      "tree": "a347ecaf4265a1713c86d528392e162d5edfaebc",
      "parents": [
        "171b12e8060f63cf900ffc43d6db35125f6b8c83"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 11 11:59:18 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 27 15:13:37 2015 +0000"
      },
      "message": "Reduce memory used by CompiledMethods.\n\nUse LengthPrefixedArray\u003c\u003es instead of SwapVector\u003c\u003es to store\nCompiledMethod data and get rid of the unnecessary members\nof CompiledMethod to reduce dex2oat memory usage. Refactor\nthe deduplication from CompilerDriver to a new class.\n\nUse HashSet\u003c\u003e instead of std::set\u003c\u003e for the DedupeSet\u003c\u003e to\nfurther decrease the memory usage and improve performance.\n\nThis reduces the dex2oat memory usage when compiling boot\nimage on Nexus 5 (with Optimizing, -j1) by ~6.75MiB (5%).\nThis also reduces the compile time by ~2.2% (~1.6% dex2oat\ntime; with Optimizing, without -j).\n\nChange-Id: I974f1f5e58350de2bf487a2bca3907fa05fb80ea\n"
    },
    {
      "commit": "1dad3f68b7f5a4a4cb2b281413357adc2309a8fd",
      "tree": "df482d1f65e55a9a228c925e96532942fb25eb47",
      "parents": [
        "fe97bfeabcf99d470e7d974a68ec6b6641648396"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Oct 23 14:59:54 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Oct 26 19:10:55 2015 +0000"
      },
      "message": "Support garbage collection of JITted code.\n\nChange-Id: I9afc544460ae4fb31149644b6196ac7f5182c784\n"
    },
    {
      "commit": "28a15a922e172f96018ab2a1e94ea1cfeb9b7b95",
      "tree": "9f15ab6328ea212e74afe9c4285bcf2b140eca0e",
      "parents": [
        "f69f56e7d4a1e31dfce2a77558c9b7047f82092b",
        "00310e0bb4ee541b99f0b687dbf5f706db2aabca"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 19 19:54:44 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 19 19:54:44 2015 +0000"
      },
      "message": "Merge \"Keep dex files live in class table\""
    },
    {
      "commit": "00310e0bb4ee541b99f0b687dbf5f706db2aabca",
      "tree": "bbb0bc2f829ed2ce145ca142c85da6181e2cd527",
      "parents": [
        "3ae313d9bc64eaa0c791452dd972654eae979496"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Oct 17 12:46:42 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 19 12:30:45 2015 -0700"
      },
      "message": "Keep dex files live in class table\n\nThe DexFile.loadClass API allows callers to load classes using a\ndex file without having that dex file owned by the specified class\nloader. We now add the dex file to the class table to make sure it\nstays live until the class loader is unreachable.\n\nFixes interpreter gcstress test 087 with 64 bit.\n\nBug: 22720414\nChange-Id: Ia4341149f45b6293312f8b275c7a68cea179f718\n"
    },
    {
      "commit": "06d7aaa75f3d6d21fe904d54208b28e486673d97",
      "tree": "017a3bdea33e06e8b4356cdf419df9002ec2c01d",
      "parents": [
        "3ae313d9bc64eaa0c791452dd972654eae979496"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Oct 16 11:23:41 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Oct 19 16:19:40 2015 +0100"
      },
      "message": "Clean up OatFile.\n\nIn Setup(), avoid reading beyond the end and use the %zu\nformat specifier instead of %zd for size_t output.\n\nMake the .bss section pointers non-const.\n\nChange-Id: Ic8f066effe8037b552d8e911c6a5d17370d79ff4\n"
    },
    {
      "commit": "32cc9ee0cdffecb0ec8d80a7fd55d7dccae3a7ee",
      "tree": "e394d05cb35fd8a89ae4be0d57635d7fee219ede",
      "parents": [
        "114873103db3d4d6e0da42ca02bad1ea8826443b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 15 09:19:15 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 16 08:46:12 2015 -0700"
      },
      "message": "Change hash table load factors\n\nChanged class table and intern table load factors to query the\nruntime. The runtime returns load factors based on whether or not we\nare a low ram device.\n\nDescriptorEquals time for class linking goes from 10% -\u003e 1.2% for\ncompiling GmsCore with interpret only.\n\nAdded test.\n\nBug: 24917584\n\nChange-Id: Iaaf5d2eab1b0c2d188d299e4bc1852cdb3801173\n"
    },
    {
      "commit": "bdbce4e321b16a14425659fabaa5648f52853d51",
      "tree": "9b787a3bc09bf4866e492752c7475cec5c91b6cd",
      "parents": [
        "b8b3702f6818443cd5535419d97ad106b8623c89",
        "09d0943f5efe92c1f3a6b9dbdf255adb0f960a22"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Oct 15 16:01:16 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 15 16:01:16 2015 +0000"
      },
      "message": "Merge \"ART: Use .bss section for dex cache arrays.\""
    },
    {
      "commit": "4f55fd25111217e37001958b7069fe03292ff1a4",
      "tree": "bbf5555232c04d9dde9ad4198124247a6a767d2a",
      "parents": [
        "bc6cb93b2607e584fccdfe4e05ae74aa94e9e463",
        "d57d454a11ac6f49eaa397ec14d6231e3a2727b7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 15 15:52:53 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 15 15:52:53 2015 +0000"
      },
      "message": "Merge \"Allocate dex cache arrays in their class loader\u0027s linear alloc\""
    },
    {
      "commit": "09d0943f5efe92c1f3a6b9dbdf255adb0f960a22",
      "tree": "7521bf5eefaa84f1cd18c2d601ac0891cc1598a5",
      "parents": [
        "644044333f5f6d7ba7e327619ac0d0ce4e2609d3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 08 13:47:48 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Oct 15 16:46:41 2015 +0100"
      },
      "message": "ART: Use .bss section for dex cache arrays.\n\nChange-Id: I5fd507973b56f6a662a02a8c1dd9ac4493fb7b36\n"
    },
    {
      "commit": "d57d454a11ac6f49eaa397ec14d6231e3a2727b7",
      "tree": "ab8e705584702d73a6f943a02838a3225b1a5118",
      "parents": [
        "2248d278460f18db9bcdc5a1bdb2dcdfdde2d301"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 14 10:55:30 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 15 08:38:29 2015 -0700"
      },
      "message": "Allocate dex cache arrays in their class loader\u0027s linear alloc\n\nFixes memory leak for class unloading where the dex cache arrays\nused to be in the runtime linear alloc which never got freed.\n\nTODO: Some of the callers like the compiler just use the runtime\nlinear alloc. We could clean this up if we want to have class\nunloading during compilation for some reason.\n\nAdded regression test.\n\nBug: 22720414\n\nChange-Id: Ia50333a06a339efbdaedb5ad94b7a1ae841124ec\n"
    },
    {
      "commit": "56a40f5530bae9bfb738479d28b799d3ea577a68",
      "tree": "762b276f3fbe4c3d8426d1151758c7f9280efb0f",
      "parents": [
        "644044333f5f6d7ba7e327619ac0d0ce4e2609d3"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Oct 14 11:07:41 2015 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Oct 14 11:43:20 2015 -0700"
      },
      "message": "Cleanup interface initialization code to create fewer scopes\n\nMake us not create scopes and handles in loops and instead just mutate\na single one.\n\nBug: 24618811\n\nChange-Id: Ia16ed24c9914efa5a3358df24f0b2d05e2613910\n"
    },
    {
      "commit": "85506c2ff34e930b4589568f78ee30f60d49d456",
      "tree": "c7e4b30a54046ed90a212e298f871a5df257c648",
      "parents": [
        "7598f145d4fd4219c14c6e2c8a03b34ce7943ffe",
        "eb7c144a6aff7da673ba53d501c46f00311d4d7f"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Oct 13 21:02:28 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 13 21:02:28 2015 +0000"
      },
      "message": "Merge \"Add initial default method support to Art\""
    },
    {
      "commit": "e58991b3b2282b5761f1a6023a16c803e1c4eb45",
      "tree": "5a6fac6c5d3cb6a463463b83b8a34a53b07a8ede",
      "parents": [
        "fb11bab9bc96ff05dcb12f43abf58df256b7c7aa"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 13 07:59:34 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 13 13:17:50 2015 -0700"
      },
      "message": "Revert \"Revert \"Unload oat files\"\"\n\nFixed a race where two threads calling OatFile::Open could both use\ndlopen on the host.\n\nBug: 22720414\n\nThis reverts commit 72da5e7461fec3b1e116050f2e6f233efb9c54f3.\n\nChange-Id: I1636045b724944d2a09417527280784967957095\n"
    },
    {
      "commit": "eb7c144a6aff7da673ba53d501c46f00311d4d7f",
      "tree": "feec33dd2e711800305477b092970500991a3993",
      "parents": [
        "98ae42010a6e6a0e4c5bcc4d6a357805eef3f4ff"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Aug 31 13:17:42 2015 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Oct 13 13:09:37 2015 -0700"
      },
      "message": "Add initial default method support to Art\n\nThis commit starts the process of adding default methods and their\nassociated pieces to ART.\n\nThis adds full support for calling default methods using\ninvoke-interface and invoke-virtual on objects implementing the\ninterfaces. Verifier is changed to allow this when the runtime is\nstarted with -Xexperimental:default-methods.\n\nThis also adds support for defining and calling static methods on\ninterface classes with invoke-static.\n\nDirectly calling overridden default methods using invoke-super is not\nyet supported.\n\nThis adds 5 new run-tests for this functionality.\n\nBug: 24618811\n\nChange-Id: I35ca800d99d3329348b277789b70ceeeba6e7f03\n"
    },
    {
      "commit": "b30c3b2332c60261d54a3741f49f6c6461b23ea4",
      "tree": "9fff211ec149babe3f376b2615c67f3f7605ca41",
      "parents": [
        "b2d2d6ae8ad3dcec77bbaf99589cd98a4797f4f3",
        "72da5e7461fec3b1e116050f2e6f233efb9c54f3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 13 07:26:59 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 13 07:26:59 2015 +0000"
      },
      "message": "Merge \"Revert \"Unload oat files\"\""
    },
    {
      "commit": "72da5e7461fec3b1e116050f2e6f233efb9c54f3",
      "tree": "8b67f82fa1b8ffd6f272b267294cc71911a147f4",
      "parents": [
        "18656fefc7e68e2549a8fa93455074d359d1efa8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 13 07:26:45 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 13 07:26:45 2015 +0000"
      },
      "message": "Revert \"Unload oat files\"\n\nTentative, will monitor bots if flakiness is fixed.\n\nBug: 22720414\n\nThis reverts commit 18656fefc7e68e2549a8fa93455074d359d1efa8.\n\nChange-Id: I53b645b73207ccd21cad6ddac1de483bcc158794\n"
    },
    {
      "commit": "6cfc2c086c47342fd8f5cb09f565979333066473",
      "tree": "c30f4bae6bbd0d50151d3a7f2f1679d39b62de70",
      "parents": [
        "16065ce56394c73c87dcb78ead4164ddc80fddb3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 12 15:06:16 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 12 15:16:05 2015 -0700"
      },
      "message": "Avoid visiting find array class cache as roots\n\nIf we visit the find array class cache as roots it will prevent\nunloading for any array classes in the cache. This is not ideal\nsince it may take a long time for the entries to get replaced.\n\nAlso added a missed exception check in getDeclaredClasses.\n\nBug: 22720414\n\nChange-Id: Id34557fd034b3e3967ef629301ee251931937849\n"
    },
    {
      "commit": "18656fefc7e68e2549a8fa93455074d359d1efa8",
      "tree": "034cf3a36079c23c9c6ef2659a90a54e45456c90",
      "parents": [
        "b5c810e91d8e3da02c12a490850c68d5d9d563c3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 09 16:05:31 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 12 11:12:02 2015 -0700"
      },
      "message": "Unload oat files\n\nUnregister and delete oat file when we call DexFile.closeDexFile if\nall of the dex files are no longer in use. We store the oat file as\nthe first element of the dex files array (cookie).\n\nAdded a test that reads the proc maps to ensure there are no\nunload-ex maps. Also some clean up.\n\nBug: 22720414\n\nChange-Id: I52ab84562d1045e94b9a37aafe57609a14f188f7\n"
    },
    {
      "commit": "f9c6fc610b27887f832e453a0da1789187293408",
      "tree": "3f45a15327e5bc7cb71e6c238ba75e87ae2e6058",
      "parents": [
        "793e6fbdefb092d1dab50bca5618aed110c7e037"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 07 11:44:05 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 09 12:57:53 2015 -0700"
      },
      "message": "Add OatFileManager\n\nTakes over a large amount of functionality from the class linker.\n\nChanged OatFile to loading the same OatFile multiple times. This is\nrequired for unloading OatFiles and moving dex caches to BSS since\nthese require a different OatFile for each dex cache and class\nloader.\n\nBug: 22720414\n\nChange-Id: I0321096723a294dc72949f21e66da82727b512fc\n"
    },
    {
      "commit": "22e0ce3a73760757e509032a324bbbb9a1a93f5e",
      "tree": "b2923da107e8e0fdcc30c0a4f4ca4b8afb5138ae",
      "parents": [
        "a13d2e118700975d2cda73ffff85546a387308db"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 08 15:17:15 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 08 16:10:26 2015 -0700"
      },
      "message": "DO NOT MERGE Add locking to prevent races between setting class methods and marking\n\nThere was a race condition between VisitNativeRoots and threads which were\nupdating the lengths and pointers of the direct or virtual methods of classes.\n\nFor example:\nThe thread doing VisitNativeRoots could see a null pointer with a non 0 length if\nanother thread had changed the length but not the pointer.\n\nThe fix is already in master, do not merge.\n\nBug: 24270063\nChange-Id: Id7280b9507b95703820aedb6c5fee49966dabe27\n"
    },
    {
      "commit": "7778b880b9cf46fe7a303b11477bd92b5cf65316",
      "tree": "0b7aaae7a090139f8060c7a5799ce02b019ebf3a",
      "parents": [
        "6639985f39a1983494fc7de2e4639fdc88e81228"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 05 16:41:10 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 05 18:05:31 2015 -0700"
      },
      "message": "Disable class unloading when tracing is active\n\nTracing keeps a lot of pointers to ArtMethods that could belong to\nclasses that we are going to unload. A quick fix for this is to\ndisable class unloading when tracing is active.\n\nBug: 24414774\nBug: 22720414\nChange-Id: Ia5619cbd7c9fd558eaa2a5000871d287213c4a76\n"
    },
    {
      "commit": "4843bd5a0ba1d85e73f6e0ed7a24fa4a344cccb0",
      "tree": "0ab2126275b298ba877440dd6b556381af587ce1",
      "parents": [
        "25217af2a7cae96b32ba566aaf697288f3374c99"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 01 17:08:44 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 01 17:32:08 2015 -0700"
      },
      "message": "Change DecodeWeakGlobal to DecodeJObject for class unloading\n\nDecodeWeakGlobal returns the sentinel object for cleared JNI weak\nglobals. This was causing a memory leak since it wouldn\u0027t delete\nclass tables and linear allocs due to never returning null. The bug\nwas found by yamauchi.\n\nBug: 22720414\n\nChange-Id: Iff4681495232b9a9756dbdb51d10ea72691a85dd\n"
    },
    {
      "commit": "c3fcd41f15dffbb5f28c9900f421471a3d2dd420",
      "tree": "df1bb755238684ab5a01a79959c063a88801e218",
      "parents": [
        "ac87001cbbd44b436cc7866f7a41037ca83b17f1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 25 16:54:59 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 28 18:01:30 2015 -0700"
      },
      "message": "Address some code comments\n\nChange-Id: I0a38a387c4328d45bbc04d095bf3388c27495c12\n"
    },
    {
      "commit": "a00bd9395be31bd69a0558b78a48e4279a6ce693",
      "tree": "752dab08e8b0c87b42aaeff139fe4b480316a8fe",
      "parents": [
        "468c168b57cdbd6b00c3686644951bc653e136d5",
        "05aa4d3eb18bdcf2dab0addbc656f5ba28242043"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 25 15:50:24 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 25 15:50:24 2015 +0000"
      },
      "message": "Merge \"Enable class unloading\""
    },
    {
      "commit": "468c168b57cdbd6b00c3686644951bc653e136d5",
      "tree": "998385c5c545c558ff4f1e99acd46c91804c1946",
      "parents": [
        "59aacd4226e14313e8b0500ec0a412f17fc118ae",
        "3d6b47018ecc8f469919d383b7d80568d94690cc"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 25 15:46:06 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 25 15:46:06 2015 +0000"
      },
      "message": "Merge \"ART: Show the previous failure type in init rejection\""
    },
    {
      "commit": "05aa4d3eb18bdcf2dab0addbc656f5ba28242043",
      "tree": "d1ddf25ea6c8391bf29a47bf21a5800bc3a5369d",
      "parents": [
        "c7e0da5292e841f6a864dd010bd6e0b06e0ece73"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Sep 19 12:44:38 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 24 16:57:34 2015 -0700"
      },
      "message": "Enable class unloading\n\nAlso added class unloading test. Added a missing write barrier in\nthe class linker to fix a heap corruption error.\n\nBug: 22720414\nChange-Id: Iff615d69b574a4438e91d4c844279d202f4f2736\n"
    },
    {
      "commit": "951ec2c93c79c5539cbcc669566f0808d4460338",
      "tree": "ce3505be2fc526afafaf6135e9d15d831860502d",
      "parents": [
        "6a6916b378c413c2692782e901393607c47f0005"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 22 08:50:05 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 22 16:25:09 2015 +0000"
      },
      "message": "Revert \"Revert \"Add one LinearAlloc per ClassLoader\"\"\n\nIssue was fixed by:\nhttps://android-review.googlesource.com/#/c/171945/\n\nBug: 22720414\n\nThis reverts commit 7de5dfe37f3cf24e1166412b589f6f67dcd1f1c0.\n"
    },
    {
      "commit": "7de5dfe37f3cf24e1166412b589f6f67dcd1f1c0",
      "tree": "a87eeac15fd485bb14ea8ace2b2bc839c4c253be",
      "parents": [
        "356412e2b7ba3fde164bc08a44fee0ddc19c54e1"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 22 09:48:02 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 22 09:48:02 2015 +0000"
      },
      "message": "Revert \"Add one LinearAlloc per ClassLoader\"\n\nTimes out on 32bit target/host for 132-daemon-locks-shutdown test.\n\nBug: 22720414\n\nThis reverts commit 356412e2b7ba3fde164bc08a44fee0ddc19c54e1.\n\nChange-Id: I5ab3a09e88a5ad8c306a27d2606ecbecc80b9326\n"
    },
    {
      "commit": "356412e2b7ba3fde164bc08a44fee0ddc19c54e1",
      "tree": "9e07c960e67b3627ced80fa9a0dcd0c9fd8b5951",
      "parents": [
        "d0d11f20811f260453f6dfe2e26d7dbd6ed55f01"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 21 09:07:37 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 21 12:48:12 2015 -0700"
      },
      "message": "Add one LinearAlloc per ClassLoader\n\nAlso added freeing linear alloc and class table when the\ncorresponding class loader is no longer reachable.\n\nBug: 22720414\n\nChange-Id: Icb32c3a4c865f240e147bc87ed080a6b1d8a5795\n"
    },
    {
      "commit": "3d6b47018ecc8f469919d383b7d80568d94690cc",
      "tree": "967273e1d788f727fb1388211ffe3b1bc43d3921",
      "parents": [
        "7b87ff905ada1815d9b24843cf13b6ff54240e34"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 21 08:35:52 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 21 08:35:52 2015 -0700"
      },
      "message": "ART: Show the previous failure type in init rejection\n\nPrint the descriptor of the failure type when we reject re-init\non a previously failed class.\n\nBug: 24213543\nChange-Id: Ied0f101b81e386951313edd09865a8b0142b9d16\n"
    },
    {
      "commit": "498b160f0cb61ea4756d8ce859ae73c522366458",
      "tree": "f582bfd38bc7e6fbbfd8fffc4a7f5449a962e7d5",
      "parents": [
        "fe9a1b05ea5a21b6d9a2e9e5081f5e80ff8a1ba2"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Sep 16 21:11:44 2015 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Sep 17 11:34:14 2015 -0700"
      },
      "message": "Allow null self only in DecodeWeakGlobalDuringShutdown().\n\nTo follow up CL 169855, allow a null current thread only in\nDecodeWeakGlobalDuringShutdown() as a special case rather than\nDecodeWeakGlobal(). This is to prevent a bug where null is accidentally\npassed to DecodeWeakGlobal().\n\nBug: 23897251\n\nChange-Id: I5e7bb78ec739b8bfcf77284ed321d507737ee33e\n"
    },
    {
      "commit": "9b1c71ec77d92d63f1c2183b0cd3588727b2c265",
      "tree": "1f8cfa8487497a24cd8fdb0269242ea9e6873544",
      "parents": [
        "5fbb15fe05fb8814907e00fdc0ca34d9b6113c9f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 02 18:51:54 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 04 15:44:45 2015 -0700"
      },
      "message": "Make class loaders weak roots\n\nMaking the class loaders weak roots in the class linker prevents them\nfrom keeping the classes as live. However we currently do mark them\nas strong roots to make sure no accidental class unloading occurs\nuntil the logic to free from linear alloc is complete.\n\nBug: 22720414\n\nChange-Id: I57466236d9ce6fd064dda9a30ce8ab68094fb8b0\n"
    },
    {
      "commit": "c77f3ab25939727346b0b6ec2f9421e218ac836a",
      "tree": "5f6818e4bfa1b267b03e022f10feb76d97994827",
      "parents": [
        "ce8f828ad6ef44b8ef7ee24ed249abc440a5f58e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 03 19:41:50 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 04 09:52:49 2015 -0700"
      },
      "message": "Clean up formatting in class linker\n\nChange-Id: Ifc27dbe0b5fcabec439602e02f4128c063e1b120\n"
    },
    {
      "commit": "957fb8930766ae422568e7b1b816159a9e9bc18c",
      "tree": "849a611f978656f1c85182402e1ef2c8ca50c5e6",
      "parents": [
        "68ffda887e35f35e978f2f607b7a91e44a5e1969",
        "05792b98980741111b4d0a24d68cff2a8e070a3a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 04 10:34:04 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 04 10:34:04 2015 +0000"
      },
      "message": "Merge \"ART: Move DexCache arrays to native.\""
    },
    {
      "commit": "05792b98980741111b4d0a24d68cff2a8e070a3a",
      "tree": "bad79a387bcbdaefc87c07b388099960ca9caff3",
      "parents": [
        "c26b4512a01d46756683a4f5e186a0b7f397f251"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Aug 03 11:56:49 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 03 17:30:57 2015 +0100"
      },
      "message": "ART: Move DexCache arrays to native.\n\nThis CL has a companion CL in libcore/\n    https://android-review.googlesource.com/162985\n\nChange-Id: Icbc9e20ad1b565e603195b12714762bb446515fa\n"
    },
    {
      "commit": "ca33089f22aaebfb74229235b14adc24d3a91a4d",
      "tree": "649757e5c27c6c693f4b3e83649ee73215b014ab",
      "parents": [
        "91a359fc20f82adbe46154ca17db3cb14cd747a1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 01 20:00:10 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 01 20:03:06 2015 -0700"
      },
      "message": "No longer lock WeakGlobalsLock in FindDexCache\n\nSince DecodeWeakGlobal is now usually lock free, it is faster to use\nthat instead of the locked version.\n\n10x boot.oat compile on host -j4:\nBefore:\nreal  1m24.674s\nuser  3m40.446s\nsys 0m15.749s\n\nAfter:\nreal  1m14.529s\nuser  3m26.734s\nsys 0m8.469s\n\nChange-Id: I15bb10ad3a9bb2e6f8edb5dc0668267be821d603\n"
    },
    {
      "commit": "673ed3d8aedc5462a47ded827c99f35d46525457",
      "tree": "83de4690228c9f7772c48c770c5e2e5ba2dac6fe",
      "parents": [
        "ce209462cc1a7ce235e5ac0d0e6db6b402f73441"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 28 14:56:43 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Aug 31 10:58:31 2015 -0700"
      },
      "message": "Revert \"Revert \"Change dex caches to be weak roots\"\"\n\nThis reverts commit 81a9087f0df0518c39405b7d18ba5858a6d8b77b.\n\nBoot.oat creation time goes from 4.7s to 4.9s on host due to extra\nlocking. Will try to improve this in another CL.\n\nBug: 23602225\nBug: 22720414\n\nChange-Id: I7e25b75cfb63faa196c7b0f60e46cce50bf12021\n"
    },
    {
      "commit": "81a9087f0df0518c39405b7d18ba5858a6d8b77b",
      "tree": "f4936654805b4d84540bd909095e8bbf69795bfd",
      "parents": [
        "f86a0859684c0f8964da4cbe75d49df8f832e85b"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Aug 28 09:07:14 2015 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Aug 28 09:07:14 2015 -0700"
      },
      "message": "Revert \"Change dex caches to be weak roots\"\n\nThis reverts commit 3ae6b1d42523bb2a0ddb5edff1aaf05b592f28f4.\n"
    },
    {
      "commit": "ac8f4397f6978484fad6769526e9e3b3f7e7bd19",
      "tree": "f06f1a16fbfce7e22ae71ee9afb9d0597dd87287",
      "parents": [
        "1aca34160dd0b0f3b326434c45d34e1d44797607"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 27 13:54:20 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 27 16:49:56 2015 -0700"
      },
      "message": "Keep dex files live for duration of oatdump\n\nNot keeping the dex file live caused a dex cache with a pointer to a\nstale dex file resulting in oatdump failing. This is required to\nremove the dex file location test that causes the class loader 068\ntest to fail.\n\nChange-Id: I5d532862ab998482c0d16d7a63c6bdc3752f031a\n"
    },
    {
      "commit": "5af910615a4b99eb7f493465bf3d42558c596237",
      "tree": "dfacd9131052f1ae3ecf6b4603ebce0cbcad9237",
      "parents": [
        "4dce334b93596327433ba65c98d08960514d942f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 27 10:17:28 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 27 10:18:31 2015 -0700"
      },
      "message": "Re-add location check for FindDexCache\n\nFixes oatdump test.\n\nBug: 22720414\n\nChange-Id: I4a7622ab9e47893deaea2c100fabfa1f3386a4bc\n"
    },
    {
      "commit": "772cc4a2d4f978888d1b1e5a78c1c16a108260ed",
      "tree": "b8f29167cb5fb7ca7709a0d305cfd7e6018d5b2a",
      "parents": [
        "7d6c95a7e5d431fd1b9ad49823535073325c699a",
        "3ae6b1d42523bb2a0ddb5edff1aaf05b592f28f4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 27 02:47:40 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 27 02:47:40 2015 +0000"
      },
      "message": "Merge \"Change dex caches to be weak roots\""
    },
    {
      "commit": "4726941669584b30087ae7b4d142db4777d27015",
      "tree": "1955285beadada0050fd260e7fe4812c1f0b666a",
      "parents": [
        "fb32aca04cc1b5f5e8325d79664882f25f253881",
        "66c2d2d64d7ea75602eb63de7ae9bd2eaeb0a3c2"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 26 17:56:25 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 26 17:56:25 2015 +0000"
      },
      "message": "Merge \"Address some comments for class flags\""
    },
    {
      "commit": "3ae6b1d42523bb2a0ddb5edff1aaf05b592f28f4",
      "tree": "9ae990956db3d2d5970fb15bf264aeeb73e2bfe0",
      "parents": [
        "dcff51a0079c5e3abaf0335f7cb9a3dd44044456"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 14 14:03:10 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 25 18:00:47 2015 -0700"
      },
      "message": "Change dex caches to be weak roots\n\nChanged dex caches to be weak roots. This is necessary for class\nunloading since the resolved types arrays would keep classes live\nwhen they should be unloaded. Currently the dex caches still don\u0027t\nget freed due to the class loader roots.\n\nAlso deleted some unused functionality in image writer.\n\nBug: 22720414\nChange-Id: If22cb3cad7e3baabc8158a77d7f20799faf4c341\n"
    },
    {
      "commit": "66c2d2d64d7ea75602eb63de7ae9bd2eaeb0a3c2",
      "tree": "ade8f8e55ebba8ff8deaa6efc2be5af4f76e737f",
      "parents": [
        "dda43e7e9680e6eead02876e67718d01837d89e0"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 25 14:32:32 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 25 14:32:32 2015 -0700"
      },
      "message": "Address some comments for class flags\n\nChange-Id: I354f48aefc37ce92c4d02cfce1723db0e28907bf\n"
    },
    {
      "commit": "13e748b28c5f2bd1e83674d2ca899ff61ae5c0a1",
      "tree": "387724eebfe7cd0f7be368e64b22af3894eea4c7",
      "parents": [
        "dda43e7e9680e6eead02876e67718d01837d89e0"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Aug 25 20:44:19 2015 +0000"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Aug 25 14:20:09 2015 -0700"
      },
      "message": "Revert \"Revert \"Move annotations to native.\"\"\n\nThis reverts commit 7db6dd79a24570448ae737ee1946b00396696cac.\n\nAdds check if field\u0027s declaring class is proxy.\nBug: 23508574\n\nChange-Id: Ie829f1526e74427711e818b56d1588d92946cbf6\n"
    },
    {
      "commit": "7db6dd79a24570448ae737ee1946b00396696cac",
      "tree": "490c05f1488141adf5668b34cbec28830fe8295c",
      "parents": [
        "0042c6d49b8488c78f0b937063e316e8d6244439"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Aug 25 10:53:19 2015 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Aug 25 10:53:19 2015 +0000"
      },
      "message": "Revert \"Move annotations to native.\"\n\nThis reverts commit 0042c6d49b8488c78f0b937063e316e8d6244439.\n\nReverting this change (as well as the companion CL\nhttps://android-review.googlesource.com/#/c/167510/ in\nplatform/libcore) as they make libcore test\nlibcore.java.lang.reflect.ProxyTest#test24846 fail.\n\nChange-Id: Ie0676cabb128277c7df5dab7bde17aefd3b2c09c\n"
    },
    {
      "commit": "0042c6d49b8488c78f0b937063e316e8d6244439",
      "tree": "170286a01d08badebacaebed1db325bc889e259e",
      "parents": [
        "300432d27ba9dd6961458fb1e1c845766f25c50a"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Jul 29 20:14:10 2015 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Aug 21 17:05:27 2015 -0700"
      },
      "message": "Move annotations to native.\n\nArt side of this change. There is also a corresponding Libcore change.\n\nSeeing ~2-3x speedup over dalvik KK MR1 in AnnotatedElementBenchmark.\nBenchmark\t\t\t Speedup of Art AOSP to Dalvik KK MR1\nGetAllReturnsLargeAnnotation\t 2.99\nGetAllReturnsMarkerAnnotation\t 2.20\nGetAllReturnsNoAnnotation\t 2.43\nGetAllReturnsSmallAnnotation\t 2.52\nGetAllReturnsThreeAnnotations\t 2.87\nGetAnnotationsOnSubclass\t 2.42\nGetDeclaredAnnotationsOnSubclass 2.49\nGetFieldAnnotation\t\t 2.68\nGetFieldAnnotations\t\t 2.60\nGetMethodAnnotation\t\t 2.66\nGetMethodAnnotations\t\t 2.61\nGetParameterAnnotations\t\t 2.52\nGetTypeAnnotation\t\t 2.56\nGetTypeAnnotations\t\t 2.17\nIsFieldAnnotationPresent\t 3.26\nIsMethodAnnotationPresent\t 4.99\nIsTypeAnnotationPresent\t\t 1.34\n\nChange-Id: Ibdbb6d23b17eaab6e83c8774b1bb9401e8227941\n"
    },
    {
      "commit": "52a7f5caebdf359ab877f1928aad59f1e9ad29fa",
      "tree": "fe23aeb3682128a31c62324e427b906c9804afd3",
      "parents": [
        "944973e56fd3c04c92d902b05d0148f77ed28a78"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 18 18:35:52 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 21 10:25:36 2015 -0700"
      },
      "message": "Add class flags to class to help GC scanning\n\nReduces GC time and pauses by reducing the number of loads required\nto scan an object.\n\nAverage total GC time before on EvaluateAndApplyChanges (EAAC): 7.452s\nAfter: 7.144s\n\nAverage GC pause times before on EAAC: 860.67us\nAfter: 722.75us\n\nAdding the class flags field cause a memory increase of ~24k system\nwide on low memory devices.\n\nChange-Id: I3f04212d5787bfbf5e55026584d149f55476105e\n"
    },
    {
      "commit": "14632857428b7e37761e6e811c19021715a400f8",
      "tree": "1774ef3ed5b973ce661b761814bd86bdbfa8fdbc",
      "parents": [
        "8ecc1357e2c682165467ca8e10c7a748f7554df2"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Aug 17 12:07:23 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Aug 17 14:49:34 2015 +0100"
      },
      "message": "ART: Rename ArtMethod\u0027s size and alignment methods.\n\nRemove the historical prefix \"Object\" to avoid confusion\nwith Java objects.\n\nChange-Id: Ib36422c9a24878d8d4bd757977d99cbf66b3d567\n"
    },
    {
      "commit": "cf36d493124d8048efa0bd6f67d817ce3cd6b725",
      "tree": "fac1336f54ea477ce1afe2e99a04b68db38c7ac8",
      "parents": [
        "1cad8c7c63b600a3da83bf05fb645e08ac8fafc0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 12 19:27:26 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Aug 17 10:04:42 2015 +0100"
      },
      "message": "ART: Compress LengthPrefixedArray on 32-bit targets.\n\nPreviously, the LengthPrefixedArray\u003cArtMethod\u003e on 32-bit\ntargets contained a 64-bit length field followed by the\nArtMethod elements with size only a multiple of 4, not 8.\nConsequently, an odd-length array broke the alignment for\nthe following array which would have the 64-bit length\nplaced at an unaligned address.\n\nTo fix that, we make the length field 32-bit and explicitly\npass the alignment information to the LengthPrefixedArray.\nThis also makes the 32-bit boot image a bit smaller.\nOn Nexus 5, AOSP, ToT, the field section is 11528B smaller\nand the method section is 21036B smaller. 64-bit targets\nshould see the same savings for the field section but no\ndifference for the methods section.\n\nChange-Id: I3e03e7b94129025c8a1c117c27645a34dec516d2\n"
    },
    {
      "commit": "e4275c07e9852a6944f47efa9d0591fceb8e8e36",
      "tree": "92d5e69374f88555f454d137e5d60fb1c925b4d8",
      "parents": [
        "82b844fb449ddc5d7b4e43e71a55eb934a1b0b45"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 06 15:34:15 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 12 15:50:24 2015 -0700"
      },
      "message": "Visit class roots from ClassLoader::VisitReferences\n\nThis causes the classes of a class loader to get marked when that\nclass loader gets marked instead of during class root visiting.\n\nBug: 22720414\n\nChange-Id: If53f042aff1d9f7bf94ecbe6886601edda029b7d\n"
    },
    {
      "commit": "c0fe56a4ee672bb346b124438941e753887e7416",
      "tree": "30fe7746c9f9dd03fb2a9b0c860d6dcb101d18d3",
      "parents": [
        "adbd0e5c3a9a9fce4ad49c48d7a4212f3d18cfcc"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 11 13:01:23 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 11 21:07:38 2015 +0000"
      },
      "message": "Address some comments\n\nChange-Id: I0262304cc720a0e93015955d0a7fb05dfebe213e\n"
    },
    {
      "commit": "3ee25bb1df3df4f57c6a4c7d3957dd7303aa00d7",
      "tree": "d96d9aa3bfabe975edb3b39419f269150506e735",
      "parents": [
        "e6b307a833d3a0ba4327004c2a286680e01eae3b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Aug 10 10:13:02 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Aug 10 11:15:28 2015 -0700"
      },
      "message": "Do read barriers on native roots in CopyClassVisitor\n\nFixes a race condition caused by making a copy of a class then\nclearing the native root arrays of the original class. If the\noriginal class was gray and the new class was black then the GC\nwould miss the native roots.\n\nBug: 22957957\n\nChange-Id: I706110018220af12a2ad0d72eb803f1cfe3580b9\n"
    },
    {
      "commit": "6b06953817bdf613b52389c457e2f4ed6cf46f5c",
      "tree": "fb4ba014d048eae6a28778568a9b7c30889a01b7",
      "parents": [
        "7fbaa22e10979cf17b8c1c0c96bef4919e9d4163"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 05 15:08:12 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 07 16:10:07 2015 -0700"
      },
      "message": "Add class table field to class loader\n\nFixes bug with the class table where the comparator would cause read\nbarriers and break the map strict ordering properties.\n\nBug: 22957957\n\nChange-Id: I8dbc042db6e22e2172ab4ec58ddf1db0345dcaaa\n"
    },
    {
      "commit": "46e857a8b905a59254ca749f664d1e808918f558",
      "tree": "97f30b0b0b276b31e8dd905af10171891bc1c043",
      "parents": [
        "1f3f766d3b365d01f36b85dc19d40f754fa48533"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Aug 06 12:52:43 2015 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Aug 06 16:28:29 2015 +0200"
      },
      "message": "Fix image loading in interpeter-only mode\n\nFollow-up https://android-review.googlesource.com/162935. We now need\nan ArtMethodVisitor to update entrypoints of methods in the image.\n\nBug: 22832610\nChange-Id: I30ca9c369a73c3372694b446e73afa2e37890a65\n"
    },
    {
      "commit": "54d220eb9cc51215d75b9e0fe921b94bebbb3fd6",
      "tree": "fe08749dea3ca6cad97bce48416beb37203efdf5",
      "parents": [
        "275bc5e5f318ba6ea1bad6c89c2924d1248b7523"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jul 30 16:20:06 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 05 18:15:22 2015 -0700"
      },
      "message": "Move ArtFields and ArtMethods to be a length prefixed array\n\nFixes race conditions between changing method and fields arrays\nbeing seen in the wrong order by the GC.\n\nBug: 22832610\nChange-Id: Ia21d6698f73ba207a6392c3d6b9be2658933073f\n"
    },
    {
      "commit": "b1d8c314b55bb2df2b2bb72a3daaf5db65b7ebc7",
      "tree": "87e8252ee6ca23138f867989a098b7c4338c21a5",
      "parents": [
        "1d558db0bcd841140f6fe1c6ba2e9a6de131649d"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Tue Aug 04 11:18:43 2015 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Tue Aug 04 11:19:56 2015 -0700"
      },
      "message": "Revert \"cleanup: Replace pointers with out-parameters and fix-up formatting\"\n\nThis reverts commit a315f5c546b796f55f4872bb6efc15eb858d9639.\n\n--\n\nRevert \"runtime: cleanup class_linker out-parameters and formatting\"\n\nThis reverts commit bc1d78daa463572c5a770cdca858a3b51d8e1b7b.\n\n--\n\nRevert \"base: replace raw pointers for out-parameters with safer out\u003cT\u003e\"\n\nThis reverts commit fb326cffc679cab8eb873b9e44795706f023cb3c.\n"
    },
    {
      "commit": "a315f5c546b796f55f4872bb6efc15eb858d9639",
      "tree": "188bcbab728423d79147fd9d9da45c2539371ac5",
      "parents": [
        "bc1d78daa463572c5a770cdca858a3b51d8e1b7b"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Jul 31 17:35:52 2015 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Jul 31 17:35:52 2015 -0700"
      },
      "message": "cleanup: Replace pointers with out-parameters and fix-up formatting\n\nCleans all of oat_file.h/.cc, parsed_options.h./cc, runtime.h/.cc\n\nOther files are touched only incidentally to use outof(x) instead of \u0026x.\n\nChange-Id: I0bb15111149d53bb21aac2199ef33bd35333b0ca\n"
    },
    {
      "commit": "bc1d78daa463572c5a770cdca858a3b51d8e1b7b",
      "tree": "d33ae78ec8b5e1f9e4b088545e346306d3c4f04e",
      "parents": [
        "8e568d079b052db118d83e6e89ea36ab4fa4bfb1"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Jul 30 16:39:45 2015 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Jul 31 16:03:00 2015 -0700"
      },
      "message": "runtime: cleanup class_linker out-parameters and formatting\n\n* Use out\u003cT\u003e instead of parameters\n* Fixes up some other signatures to be more correct\n* Reformat parameters to be one per line if they can\u0027t fit on one line\n* Reformat locks to be one per line if they can\u0027t fit on the decl line\n\nChange-Id: Ib71b08707d3ed0bb85299406c0b23a1de4e92a1c\n"
    },
    {
      "commit": "eb837eb7c27e789bc7b05f474be9aa119f2fd99f",
      "tree": "a88f23ae9a4504052ba6a9e649255173583f3a32",
      "parents": [
        "3247ce5195f4233c484254b41a1fcc6cd1e6db0a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jul 29 17:25:41 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jul 29 18:01:12 2015 -0700"
      },
      "message": "Clear temporary class arrays before linking the new class\n\nFixes DCHECK failure from remembered sets where two classes had the\nsame field array which caused the remembered set to incorrectly\nremove a card with a reference to the target space.\n\nChange-Id: If43875616fb750e20667212381bc7e359c4214a5\n"
    },
    {
      "commit": "e0671ce5a6cb34e44e3afefa8e29c0c3e30d2855",
      "tree": "124d68a72435aebb5698e068c12555f121282cca",
      "parents": [
        "aac046772b6d0b8dd23f3296fd82b29ef35dca25"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jul 28 17:23:28 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jul 29 10:01:59 2015 -0700"
      },
      "message": "Clean up class visitors\n\nMove from function pointers to virtual function visitors.\n\nChange-Id: I68cb83c1d2ed9b5a89f8e534fe7ca4bbc1c91f45\n"
    },
    {
      "commit": "cc5ebdf29ea47e24e79279169e0192dfc08b38c8",
      "tree": "f808593b096046cc8f0ca2a8e6675474ea59000e",
      "parents": [
        "1a4d013b9f810f24bdca60c02da99f7650bcc367"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jul 27 11:19:43 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jul 28 16:32:09 2015 -0700"
      },
      "message": "Split the class table for each class loader\n\nEach class loader now has its own class table. This makes it easier\nto mark classes when a classloader is marked.\n\nFixed a bug in LookupClass where we used to look ignore the return\nvalue of InsertClass.\n\nBug: 22720414\n\nChange-Id: If2cd717989a20a6e245ebec24ad52dc47dd3207d\n"
    },
    {
      "commit": "da7c650022a974be10e2f00fa07d5109e3d8826f",
      "tree": "eb713496fee4a6885a3c240309e5efc78c6774cf",
      "parents": [
        "2a7ea34cda9bf776339dfc7f4a22ab01f9525f2d"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jul 23 16:01:26 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jul 24 11:50:43 2015 -0700"
      },
      "message": "Visit class native roots from VisitReferences\n\nVisit class roots when we call Class::VisitReferences instead of in\nthe class linker. This makes it easier to implement class unloading\nsince unmarked classes won\u0027t have their roots visited by the class\nlinker.\n\nBug: 22181835\nChange-Id: I63f31e5ebef7b2a0b764b3ba3cb038b3f561b379\n"
    },
    {
      "commit": "4e2cb098017bf073335ebb02b1bc0a36828cd720",
      "tree": "7dfb6c7b71a747f31d2903c383423aac96a11591",
      "parents": [
        "f64914d7392b7d35c7f35bc917b0797b9c4605ac"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jul 22 16:17:51 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jul 22 17:26:05 2015 -0700"
      },
      "message": "Add uninterruptible role\n\nExample error:\ncannot call function \u0027CopyOf\u0027 while mutex \u0027uninterruptible_\u0027 is held\n\nTODO: Add annotation to more locations.\n\nBug: 20072211\n\nChange-Id: I1bbf5a77e3deeafa5898df529cb7cb53a6d010d2\n"
    },
    {
      "commit": "90443477f9a0061581c420775ce3b7eeae7468bc",
      "tree": "8c74b81dfae162e0fd0ccf8d5ac50827ba815174",
      "parents": [
        "6078aec213dfaf111c29969706e8e5967cfc9bea"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jul 16 20:32:27 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jul 22 15:13:56 2015 -0700"
      },
      "message": "Move to newer clang annotations\n\nAlso enable -Wthread-safety-negative.\n\nChanges:\nSwitch to capabilities and negative capabilities.\n\nFuture work:\nUse capabilities to implement uninterruptible annotations to work\nwith AssertNoThreadSuspension.\n\nBug: 20072211\n\nChange-Id: I42fcbe0300d98a831c89d1eff3ecd5a7e99ebf33\n"
    },
    {
      "commit": "7617abdb402fd0419daa3eefb2ad059ccbb8b6db",
      "tree": "85ca02f6446cd50523156ea916d5524eaf3bf2dc",
      "parents": [
        "479ebe076561e4a48129ab0c78cf8ca93c44baf6"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Jul 10 18:27:47 2015 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Jul 17 17:38:46 2015 -0700"
      },
      "message": "runtime: Add -Xverify:softfail and ART_TEST_INTERPRETER_ACCESS_CHECKS\n\nUse ART_TEST_INTERPRETER_ACCESS_CHECKS\u003dtrue to run all the tests through\nthe interpreter with access checks enabled. The normal interpreter tests\ndo not currently enable access checks, which means that a large part of\nthe interpreter codebase is untested.\n\nThe verifier will force every class into a soft fail mode if\n-Xverify:softfail is used, thereby ensuring that if used along with the\ninterpreter (-Xint) that the interpret is always in access checks mode.\n\nThis is used alongside with --compile-filter\u003dverify-at-runtime to\nprevent the AOT compiler from putting down any code.\n\nChange-Id: I35a10ed8c43d76fa96133cf01fdad497da387200\n"
    },
    {
      "commit": "511bb656522e22f0570a9edff8dd295e0de6c145",
      "tree": "be5d83d766c5f3b61669a1ce6d8d7eb5f997ed9d",
      "parents": [
        "2661ffc6f739f2006bfa5c70bbb2f60badfaf321",
        "fab6788358dfb64e5c370611ddbbbffab0ed0553"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Fri Jul 17 15:22:10 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 17 15:22:11 2015 +0000"
      },
      "message": "Merge \"Fix FieldGap priority queue ordering bug.\""
    },
    {
      "commit": "14d90579f013b374638b599361970557ed4b3f09",
      "tree": "fe8f9f7b527e73c20078557eefd74615c2cfc7f8",
      "parents": [
        "5c03f3698f5e2e0d762e2e15ec00310b6cdab4fe"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Jul 16 10:52:26 2015 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Jul 16 10:52:26 2015 +0100"
      },
      "message": "Use (D)CHECK_ALIGNED more.\n\nChange-Id: I9d740f6a88d01e028d4ddc3e4e62b0a73ea050af\n"
    }
  ],
  "next": "fab6788358dfb64e5c370611ddbbbffab0ed0553"
}
