)]}'
{
  "log": [
    {
      "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": "017ed0b936539dba1bb6f1d9b2bd81798b471966",
      "tree": "24cee7c2bafe0d931081d3869cfc7ca78f748e47",
      "parents": [
        "b64d5832879f462ed146f0b012ea0bf62255b643"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 22 11:04:26 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 22 11:04:26 2015 -0700"
      },
      "message": "Fix CreateLinearAlloc bug\n\nShould have been using IsAotCompiler since the JIT has IsCompiler\nas true but no low 4 GB arena pool.\n\nFixes 64 bit JIT tests.\n\nChange-Id: Idc4d3e66c573eacd31ae85c66f8493b418d221d7\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": "6a6916b378c413c2692782e901393607c47f0005",
      "tree": "b492954ac5c25d99c967798174355736a934344a",
      "parents": [
        "3f4b39dec9ec6b8948ed18b9d65ba49db2465004",
        "37cf51fb00bbe4bb82e713228b460cafbbf79b43"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 22 14:23:04 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 22 14:23:04 2015 +0000"
      },
      "message": "Merge \"ART: Fix destruction order in Runtime.\""
    },
    {
      "commit": "37cf51fb00bbe4bb82e713228b460cafbbf79b43",
      "tree": "7329488024609e91d6683734c889b0cc0998f3aa",
      "parents": [
        "a28cae4d38020ea5c42c203414eaa667743ffd1e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 22 11:43:46 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 22 12:09:59 2015 +0100"
      },
      "message": "ART: Fix destruction order in Runtime.\n\nDestroy arena allocators as late as possible.\n\nWith https://android-review.googlesource.com/172057 , the\nArenaPool was indirectly used by ClassLinker\u0027s destructor\n(via ~LinearAlloc) after it has already been destroyed.\nThese allocators were being destroyed way too early anyway,\nthey should be orderly destroyed when the unique_ptr\u003c\u003e\nmembers of Runtime have their destructors executed. However,\ndue to the potential dependence on MemMap, we destroy them\njust before the MemMap::ShutDown().\n\nChange-Id: Ifc3e5a24a29536d5767c82353901e2d22b13d643\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": "1147b9bd68323c753ed1a0b6106b205fd640c820",
      "tree": "d14f8a47c66b78716d23b6cdcbc6e3e6da498361",
      "parents": [
        "b505997b2176bd29a108cb6c33d06d4ef29ba001"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 14 18:50:08 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 15 10:02:40 2015 -0700"
      },
      "message": "Use image pointer size for profile info\n\nMay fix some random crashes in dex2oat due to cross compilation.\n\nChange-Id: I633652500e8c7dfec38044dffd07eb467973d82a\n"
    },
    {
      "commit": "35717f8cfb6c1de5c89b2f9b990a050b2cbab66f",
      "tree": "468d9275ebb774de9c373aea6387e5c55c4336e6",
      "parents": [
        "b6f7dd330f115fc977d1d5a10122c41c9dd7c210",
        "637ee0b9c10ab7732a7ee7b8335f3fff4ac1549c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Sep 14 10:42:01 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 14 10:42:01 2015 +0000"
      },
      "message": "Merge \"ART: Add some utilities for working with containers.\""
    },
    {
      "commit": "5550ca8bcc742b109d77e62f3a0877c667d894d3",
      "tree": "522c873c59b56fff0244e754dd869f18ccf485f4",
      "parents": [
        "dbd357086fdb7fce619d745fda4efd52377becdd"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Aug 21 18:38:30 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 11 15:08:37 2015 +0100"
      },
      "message": "Record profiling information before Jitting.\n\n- Add a new instrumentation kind to record dynamic invokes.\n- Use the JNI entry point field to store the profiling data.\n- Record seen receivers for every dynamic invoke.\n\nChange-Id: I2c1738ab2a72052d45964d055dc16b44b906e54c\n"
    },
    {
      "commit": "637ee0b9c10ab7732a7ee7b8335f3fff4ac1549c",
      "tree": "21cf63333abcc07ed1e3138ec3c9e690e0abc227",
      "parents": [
        "68ffda887e35f35e978f2f607b7a91e44a5e1969"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 04 12:47:41 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 08 18:09:20 2015 +0100"
      },
      "message": "ART: Add some utilities for working with containers.\n\nAdd utility functions for searching, removing and replacing\nexisting values in a container, to be used with std::vector\n(including the ArenaVector alias) and other containers.\n\nAlso move UniqueCPtr\u003c\u003e and MakeUnique() to base/stl_utils.h\nand clean up related includes.\n\nChange-Id: I1e61762df91c046866591bda167d42bf8b67a692\n"
    },
    {
      "commit": "fdbd13c7af91a042eda753e436eeebf0e1937250",
      "tree": "c1fb370c9a4a30b9e589802c9c75dcc4919fc6e9",
      "parents": [
        "fe3879e6011f629d0dd6b04fab00b9496bd4ea08"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Sep 02 16:16:58 2015 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Sep 03 10:45:21 2015 -0700"
      },
      "message": "Some fixes for the CC collector.\n\n- Remove a DCHECK in DisableMarkingCheckpoint, which caused\n  occasional (false) failures.\n- Check the thread-local GetWeakRefAccessEnabled in boxed lambdas weak\n  access.\n- Add missing BroadcastForNewAllocationRecords and\n  BroadcastForNewWeakBoxedLambdas. The lack of the former caused\n  occasional deadlocks in the ddmc test.\n- Remove the \u0027ensure system weaks disallowed\u0027 calls, which weren\u0027t\n  useful and dead.\n\nBug: 12687968\nChange-Id: I33850c8d12e6e1a3aed1c2bb18eba263cbab76e8\n"
    },
    {
      "commit": "c823effac6455affd40bedbc9f620f9275919e73",
      "tree": "eeff9d8571f165054b09cbffeadb86db7852c761",
      "parents": [
        "4bc27eb21222cd9d0fd680442d34185e42ae4373"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Sep 01 16:21:35 2015 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Sep 01 16:21:35 2015 -0700"
      },
      "message": "Disable the GDB-based test timeout dump in 32 bit.\n\nBug: 23485091\nChange-Id: I46b8ae8d0a37439ca6f2d1030dec8e513b82745f\n"
    },
    {
      "commit": "4bc27eb21222cd9d0fd680442d34185e42ae4373",
      "tree": "6b3038af36bb1f9041e2f749e1da44167c7d2d6f",
      "parents": [
        "2c23471c9051e117d8df31f80488e24e3a524d00",
        "6ffb9ccfec7ec2149c4a3d403ca81c48585857e0"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Sep 01 19:54:23 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 01 19:54:23 2015 +0000"
      },
      "message": "Merge \"Use GDB to dump threads in test timeouts, if available.\""
    },
    {
      "commit": "6ffb9ccfec7ec2149c4a3d403ca81c48585857e0",
      "tree": "7efc7e462a8d45da83a9602ff9242422e043dfe2",
      "parents": [
        "c38fd0dc9c2d046555dbca41e3d27afb25f2e206"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Aug 31 15:14:17 2015 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Sep 01 12:46:42 2015 -0700"
      },
      "message": "Use GDB to dump threads in test timeouts, if available.\n\nGDB is able to dump threads which may not be responding to the SIGQUIT\nthread dump.\n\nBug: 23485091\nChange-Id: Ib80db4e63258887f3b7c313ed5e6eb9e6300ac4c\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": "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": "02f0771bba69edd34b0b112902bb9132ed099c75",
      "tree": "669634d6447ee626e306665ebf3881c17be4ffec",
      "parents": [
        "94800f46da0aded5152545322ad842f89e8a21d8",
        "b1d8c314b55bb2df2b2bb72a3daaf5db65b7ebc7"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Aug 05 18:18:59 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 05 18:18:59 2015 +0000"
      },
      "message": "Merge \"Revert \"cleanup: Replace pointers with out-parameters and fix-up formatting\"\""
    },
    {
      "commit": "90ef3db4bd1d4865f5f9cb95c8e7d9afb46994f9",
      "tree": "3c6f8989e0c6e027382a3c08d221ba97afd72291",
      "parents": [
        "1cf85515600d298a2c9e4de137c0926949205097"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 04 15:19:41 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 04 18:56:54 2015 -0700"
      },
      "message": "Address some comments and clean up\n\nChange-Id: I538cf204f1c89d5fc81f8fc5e5800fcf1cf87359\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": "695a2732ae19649b3331673747177fcc57afb012",
      "tree": "af55112f9989919d3ddae3e69501ecc352929c54",
      "parents": [
        "e3ab2a7dc3ff7ef0da6a82de7387470fb67695d0"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jul 24 15:41:20 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jul 24 15:41:20 2015 -0700"
      },
      "message": "ART: Make warnings into errors in InitZygote\n\nThese warnings are actual errors and lead to failure to start the\nruntime. Print them accordingly.\n\nChange-Id: I907e32a3c5da5364ecc9678bb9a11604234d669c\n"
    },
    {
      "commit": "dd6712578b6aa8a292bc6249295b6d2a7b182717",
      "tree": "28e428fc2b4fd2a1a78b1ffb8659611f2ad45df0",
      "parents": [
        "bd76db36abc1026cdc3f737ec0f2be6174a131a1"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jul 23 14:37:18 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jul 24 15:10:22 2015 -0700"
      },
      "message": "ART: Change the stack dump format to be in line with debuggerd\n\nMake offsets 16 digits on 64-bit platforms.\n\nAdd the ability to provide the build fingerprint, and print it in\nthe traces output.\n\nBug: 22693991\n\n(cherry picked from commit 242ae94dc39be53e519a6163ea1db494ceb75954)\n\nChange-Id: Ibd3d3b3bd65dce84acfb97a487807d6f280a9508\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": "e2facc5b18cd756a8b5500fb3d90da69c9ee0fb7",
      "tree": "595a3c807e1cbaa4b8c22b93685d70faa4ff0f5a",
      "parents": [
        "e07300b712f44397ecbfed1ef7f880686e46274a"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Jul 10 13:49:08 2015 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Mon Jul 20 15:11:59 2015 -0700"
      },
      "message": "runtime: Add lambda box/unbox object equality\n\nA lambda that is boxed with box-lambda is now stored as a weak reference\nin a global runtime table (lambda::BoxTable). Repeatedly boxing the same\nlambda closure value will always return the same java.lang.Object back.\n\nSince there is no way to observe the address of an object, a GC can\nhappen and clean up the table of any dead boxed lambdas, which can also\nshrink the table to prevent the memory use from growing too much.\n\n(Note that a lambda closure is immutable, so hashing over it is\nguaranteed safe.)\n\nChange-Id: I786c1323ff14eed937936b303d511875f9642524\n"
    },
    {
      "commit": "11237947eefd3ec3167d9df41f2f3a041e717b6f",
      "tree": "654ebf6650c65abf0d602509321336f729170edd",
      "parents": [
        "7745dc34f0b40c8c2ef2ef1a540c84c305cd987a",
        "14c3bf91b2ec434295ec84d6446f495fb7de6d5c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Jul 18 01:49:00 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Jul 18 01:49:02 2015 +0000"
      },
      "message": "Merge \"Change intern table to not use WaitHoldingLocks\""
    },
    {
      "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": "14c3bf91b2ec434295ec84d6446f495fb7de6d5c",
      "tree": "6eaa51c263b84b7a11f40f21be993987cdca80f3",
      "parents": [
        "6d3d1e3d866a880b4df95ba96ed126c1723e3dd6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jul 13 14:35:43 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jul 17 15:34:40 2015 -0700"
      },
      "message": "Change intern table to not use WaitHoldingLocks\n\nBug: 22423014\nChange-Id: I9e16b8cb4def72fff73f1783a182877105feb7aa\n"
    },
    {
      "commit": "97509954404d031594b2ecbda607314d169d512e",
      "tree": "bb5371ba90d52e2f561b1dc6959584857cb84683",
      "parents": [
        "c6f3439b67962584cfb764133e192c3317f0e1fc"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jul 13 14:35:43 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jul 14 16:45:27 2015 -0700"
      },
      "message": "Clean up GC callbacks to be virtual methods\n\nChange-Id: Ia08034a4e5931c4fcb329c3bd3c4b1f301135735\n"
    },
    {
      "commit": "0541502e6d9d0efa50aa333db32898a0664512c3",
      "tree": "1c8c2adc8e70bee2c2e972ac84f0726e19d5a348",
      "parents": [
        "5b1eea0a6c90e6e82393cdb7337f0c2bb05637d9",
        "1e13374baf7dfaf442ffbf9809c37c131d681eaf"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Tue Jul 14 00:47:06 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 14 00:48:54 2015 +0000"
      },
      "message": "Merge \"Generalize Valgrind annotations in ART to support ASan.\""
    },
    {
      "commit": "1e13374baf7dfaf442ffbf9809c37c131d681eaf",
      "tree": "9a8a53295a8389d7ec10accf3efb8785a97a3599",
      "parents": [
        "f68c8545382925062da2b87169ca2b5314f0b431"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Wed May 20 12:30:59 2015 -0700"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Mon Jul 13 17:38:40 2015 -0700"
      },
      "message": "Generalize Valgrind annotations in ART to support ASan.\n\nAlso add redzones around non-fixed mem_map(s).\nAlso extend -Wframe-larger-than limit to enable arm64 ASan build.\n\nChange-Id: Ie572481a25fead59fc8978d2c317a33ac418516c\n"
    },
    {
      "commit": "5b1eea0a6c90e6e82393cdb7337f0c2bb05637d9",
      "tree": "3b8bddd878f07ee418a83a09f229ea44f2a20a05",
      "parents": [
        "24db1bc55bf8fb3240690436a229352453ae75e1",
        "0b71357fb52be9bb06d35396a3042b4381b01041"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Jul 13 22:51:39 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 13 22:51:40 2015 +0000"
      },
      "message": "Merge \"Thread-local mark stacks for the CC collector.\""
    },
    {
      "commit": "0b71357fb52be9bb06d35396a3042b4381b01041",
      "tree": "44b8d6b0ca4a71f33cda55068fa9e14864c55625",
      "parents": [
        "0e87d1809443d41b431ce3a686b4e074df2d7b8b"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Jun 16 18:29:23 2015 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Jul 13 15:50:20 2015 -0700"
      },
      "message": "Thread-local mark stacks for the CC collector.\n\nThread-local mark stacks are assigned to mutators where they push\nreferences in read barriers to reduce the (CAS) synchronization cost\nin a global mark stack/queue.\n\nWe step through three mark stack modes (thread-local, shared,\nGC-exclusive) and use per-thread flags to disable/enable system weak\naccesses (only for the CC collector) instead of the existing global\none to safely perform the marking phase. The reasons are 1)\nthread-local mark stacks for mutators need to be revoked using a\ncheckpoint to avoid races (incorrectly leaving a reference on mark\nstacks) when terminating marking, and 2) we can’t use a checkpoint\nwhile system weak accesses are disabled (or a deadlock would\nhappen). More details are described in the code comments.\n\nPerformance improvements in Ritzperf EAAC: a ~2.8% improvement\n(13290-\u003e12918) in run time and a ~23% improvement (51.6s-\u003e39.8s) in\nthe total GC time on N5.\n\nBug: 12687968\nChange-Id: I5d234d7e48bf115cd773d38bdb62ad24ce9116c7\n"
    },
    {
      "commit": "7a4d0157eb690266928902a67922f346e290f4c6",
      "tree": "945e8d0cccf009a332f4550017e0ea3f567cc389",
      "parents": [
        "f40002163fed58215df569e89f0a0b9661e16273"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 10 17:29:39 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 10 18:46:17 2015 +0100"
      },
      "message": "Change JIT code to use optimizing.\n\nObviously, will fall back to quick for most methods currently,\ndue to lack of -QUICK opcodes support.\n\nChange-Id: I28882fbe805cd907275b6047437d9639a475964a\n"
    },
    {
      "commit": "41656de4b6440bcd1bea5fb785f0710153b2bc68",
      "tree": "394de0c87c3dd3ddc3e6c88919187a077ab609b4",
      "parents": [
        "a100332ee0f4b842c28ec2448f97e40a882cd837"
      ],
      "author": {
        "name": "Man Cao",
        "email": "manc@google.com",
        "time": "Mon Jul 06 18:53:15 2015 -0700"
      },
      "committer": {
        "name": "Man Cao",
        "email": "manc@google.com",
        "time": "Wed Jul 08 20:02:54 2015 +0000"
      },
      "message": "Fix potential bugs in allocation tracker\n\nAdd a missing visit allocation records call in concurrent copying collecter.\nHandle null class objects if we support class unloading, and issues\nwith disallow and allow new allocation records.\n\nBug: 20037135\nChange-Id: I59b7321c281e0d79a620501b2f43e36d2a576203\n"
    },
    {
      "commit": "22bb5a2ebc1e2724179faf4660b2735dcb185f21",
      "tree": "74b5bec56238a9f4ee3ee9e52d2fd6da4ee2a806",
      "parents": [
        "b447598f6900f05f0b1940a0731ee374c57c3100"
      ],
      "author": {
        "name": "Douglas Leung",
        "email": "douglas.leung@imgtec.com",
        "time": "Thu Jul 02 16:42:08 2015 -0700"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jul 03 13:27:29 2015 +0100"
      },
      "message": "Add implicit null pointer and stack overflow checks for Mips.\n\nBug: 21555893\nChange-Id: I2a995be128a5603d08753c14956dd8c8240ac63c\n"
    },
    {
      "commit": "01aaf6ef3e3e35cc8e41cf3fe899a7bf337042f4",
      "tree": "d19b35a078536b6190d861810aa443ccd7e2fcdb",
      "parents": [
        "2b252dc15995a708aead33aab6d307205d860a88"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Jun 19 22:05:39 2015 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jul 01 12:32:13 2015 +0100"
      },
      "message": "Allow for sig chain to be disabled.\n\nTools like dex2oat or patchoat don\u0027t need the sig chain or the fault\nmanager. This also enables building a statically link version of\ndex2oat.\n\nChange-Id: I9897728cac48acade854bb027bfde860628ebf84\n"
    },
    {
      "commit": "42c3c33df8b6eefc4ba532f1981282510f109928",
      "tree": "4526fe0a718f2e8ead36907aa9984c402d5a1888",
      "parents": [
        "bb3dabaf804e0d0bd2bf34e69091b2f86fd4e78b"
      ],
      "author": {
        "name": "Man Cao",
        "email": "manc@google.com",
        "time": "Tue Jun 23 16:38:25 2015 -0700"
      },
      "committer": {
        "name": "Man Cao",
        "email": "manc@google.com",
        "time": "Thu Jun 25 14:10:48 2015 -0700"
      },
      "message": "Make allocation tracker use less memory\n\nThe allocation tracker no longer keeps recently allocated objects live.\nInstead it just keeps their class objects live as strong roots. This fixed\nthe gc-stress test failure for 098-ddmc.\n\nAlso fixed the issue in DisableNewSystemWeak() for allocation tracker,\nby making new allocation to wait until GC\u0027s sweeping to complete. I didn\u0027t\nfeel any significant slowdown with this wait.\n\nBug: 20037135\nChange-Id: I6a98188832cf7ee478007e3788e742dc6e18f7b8\n"
    },
    {
      "commit": "da0e224d79262b11fbac9e7b1fdc11c4df31b77f",
      "tree": "1394e3cf8839eae01fb0d5ed3573bf6399f0220a",
      "parents": [
        "3355963cee00fe97cc7aaeaab2c6e31c5657ff6a",
        "1ed11b9ad5512cf464cb1686640df53201fa5297"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jun 23 03:27:44 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 23 03:27:45 2015 +0000"
      },
      "message": "Merge \"Restore DDMS recent allocation tracking\u0027s behavior\""
    },
    {
      "commit": "1ed11b9ad5512cf464cb1686640df53201fa5297",
      "tree": "7466c110f74fb736a8f00e60a24ac841d1c0213a",
      "parents": [
        "5aa39bb7f93cf2e8f73d06980b588519825c0ebe"
      ],
      "author": {
        "name": "Man Cao",
        "email": "manc@google.com",
        "time": "Thu Jun 11 22:47:35 2015 -0700"
      },
      "committer": {
        "name": "Man Cao",
        "email": "manc@google.com",
        "time": "Mon Jun 22 16:52:08 2015 -0700"
      },
      "message": "Restore DDMS recent allocation tracking\u0027s behavior\n\nMake the allocation tracker mark recently allocated objects as roots,\nso the allocation records are not swept. Because DDMS needs recent\nallocation tracking records even for dead objects. This should fix\nthe flaky failures for 098-ddmc test, but it cannot pass GC stress\ntest (OOM). Re-enabled 098-ddmc for other tests.\n\nThere should be an option to not mark them as roots, when user only\nneeds HPROF dump with traces but not DDMS\u0027s recent allocation tracking.\nProbably need to add a new JNI API function for this option.\n\nThere could be another way to keep a second list of recent allocation\nrecords and maintain a type cache for them, so not to make the objects\nroots. But it\u0027s more complex, and not sure which is better.\n\nAlso reduce memory usage for AllocRecordStackTrace objects, and change\ndefault stack depth to 16. Rename the property that controls the stack\ndepth to \"debug.allocTracker.maxStackDepth\" so developer can change it.\n\nBug:20037135\nChange-Id: Ic6b9ae87bdcda558be6f14ded8057e763439881c\n"
    },
    {
      "commit": "310008008c90fea246efd00cb99ee7ded97c5209",
      "tree": "93ef04470ec9c883e003b0a8043b370b8f05718f",
      "parents": [
        "f7012291ed9c984e2b50d83d7a2d5758cd64c99a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Jun 14 14:14:37 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 22 15:45:13 2015 -0700"
      },
      "message": "New experimental GC stress mode\n\nTries to do a GC for every unique call stack (up to 16 frames).\nThe goal is to catch moving GC bugs and lock violations without being\nrediculously slow. Some tests fail on 64 bits, 32 bit host doesn\u0027t\nwork. N5 is booting.\n\nAdded runtime -Xgc options: gcstress and nogcstress.\n\nBug: 21664466\n\nChange-Id: Icb8e420f2048e8ee83bcca7937563166a2638f5c\n"
    },
    {
      "commit": "247e97746016b49183b52f4c386bedf7cd53e590",
      "tree": "758c0a7c60c2099fb6a8cf2d4ea68ffc8c9459ac",
      "parents": [
        "2b696ab55e817b583d7b3b3ffd39e48c38db6989",
        "158f35c98e2ec0d40d2c032b8cdce5fb60944a7f"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Jun 18 19:56:57 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 18 19:56:58 2015 +0000"
      },
      "message": "Merge \"interpreter: Add experimental lambda opcodes for invoke/create-lambda\""
    },
    {
      "commit": "158f35c98e2ec0d40d2c032b8cdce5fb60944a7f",
      "tree": "63bb3bbed85b0add42c7fdc714cd611424d8af2e",
      "parents": [
        "c449e8b79aaaf156ce055524c41474cc1200ed5a"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Jun 10 15:55:30 2015 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Jun 18 10:22:27 2015 -0700"
      },
      "message": "interpreter: Add experimental lambda opcodes for invoke/create-lambda\n\nThese opcodes are not yet fully specified, and *will* change before they become shippable.\nDo not write production code against experimental opcodes.\n\n--\n\nImplement partial interpreter support for new dex instructions invoke/create-lambda, and a\nnew opcode format 25x.\n\n* Does not verify, in fact verification will soft fail when we see those opcodes.\n* Compilers will punt to interpreter since they don\u0027t support new opcodes.\n* As there is no way to capture/liberate variables yet, the \"closure\" is just\n  an ArtMethod for the time being.\n\nAll new opcodes are disabled by default, use runtime option -Xexperimental-lambdas to enable them.\n\nFor example:\n  dalvikvm ... -Xexperimental-lambdas ...\n  dex2oat --runtime-arg -Xexperimental-lambdas ...\n\nChange-Id: I6c996ca32a9b54ec45ec21d7a959b84dfb8a24eb\n"
    },
    {
      "commit": "37670178497df18ae6b2a97a2ea9bf365621f16e",
      "tree": "c6d446642f25ec3c065a9d86303fbccb25bb5455",
      "parents": [
        "79b08e69b71a53beb3f053b304c34ea88bfb9a47"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Jun 10 17:20:54 2015 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Jun 11 13:47:23 2015 -0700"
      },
      "message": "Reset GC performance stats at zygote fork.\n\nSo GCs before a zygote fork won\u0027t be attributed to an app.\n\n(cherry pick commit  Ib37bc587e0f039ef8faeabe63dec19de49501863)\n\nBug: 21491908\nChange-Id: Ib37bc587e0f039ef8faeabe63dec19de49501863\n"
    },
    {
      "commit": "8c2ff641294715864013737fdec57cdfd410270c",
      "tree": "2dd302323b4711d1a9391b8c1a8dce3de3e76e91",
      "parents": [
        "6dbf5a5a075a371cb2ff3659058e93a985485baa"
      ],
      "author": {
        "name": "Man Cao",
        "email": "manc@google.com",
        "time": "Wed May 27 17:25:30 2015 -0700"
      },
      "committer": {
        "name": "Man Cao",
        "email": "manc@google.com",
        "time": "Wed Jun 10 15:03:01 2015 -0700"
      },
      "message": "Add allocation stack traces for HPROF dump.\n\nThis feature is currently only enabled when DDMS\u0027s allocation tracking\nis enabled. In the future there should be a way to enable this feature\nbefore an application starts.\n\nAlso updates DDMS\u0027s recent allocation tracking to use a new backend\ndata structure that is shared with this feature.\n\nThe following system properties controls customizable parameters:\ndalvik.vm.allocTrackerMax: max number of objects that have allocation\n                           records, default 512K;\n\ndalvik.vm.recentAllocMax:  max number of records that are sent to DDMS\n                           when clicking \"Get allocation\" button,\n                           default 64K-1 (limit of the protocol);\n\ndalvik.vm.allocStackDepth: max number of stack frames in an allocation\n                           record, default 4.\n\nBug: 20037135\nChange-Id: I26ed378a5613678bd3c43e846025f90470a8e059\n"
    },
    {
      "commit": "054a078ecebfb84b5003f2d0239c472de53267e2",
      "tree": "bb1fe30d8e74e8204e93ad9db0a1c775f5be42fe",
      "parents": [
        "da2fd5aa2cbdab371f9a1c29ff4e4dfd09305fdc"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Apr 07 10:56:50 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jun 04 16:17:21 2015 -0700"
      },
      "message": "Add atrace calls to runtime start and heap create\n\n(cherry picked from commit 7fabaa6ba1927d21a317c03499b705cbde4f6a47)\n\nBug: 20727525\n\nChange-Id: I91a74b793fb9eda8ed580244a6a5fd313ef2eb27\n"
    },
    {
      "commit": "e3b034a6f6f0d80d519ab08bdd18be4de2a4a2db",
      "tree": "660cc713e0ad2d71ccd1e0af1399c92665b626c7",
      "parents": [
        "119a8025bbc1c6f4a2d537e9a6d22f33ef31e552"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun May 31 14:29:23 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun May 31 17:36:10 2015 -0700"
      },
      "message": "Fix some ArtMethod related bugs\n\nAdded root visiting for runtime methods, not currently required\nsince the GcRoots in these methods are null.\n\nAdded missing GetInterfaceMethodIfProxy in GetMethodLine, fixes\n--trace run-tests 005, 044.\n\nFixed optimizing compiler bug where we used a normal stack location\ninstead of double on ARM64, this fixes the debuggable tests.\n\nTODO: Fix JDWP tests.\n\nBug: 19264997\n\nChange-Id: I7c55f69c61d1b45351fd0dc7185ffe5efad82bd3\n"
    },
    {
      "commit": "e401d146407d61eeb99f8d6176b2ac13c4df1e33",
      "tree": "17927f9bfe7d2041b5942c89832d55f9dedb24c5",
      "parents": [
        "2006b7b9b8e32722bd0d640c62549d8a0ac624b6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 22 13:56:20 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri May 29 18:45:49 2015 -0700"
      },
      "message": "Move mirror::ArtMethod to native\n\nOptimizing + quick tests are passing, devices boot.\n\nTODO: Test and fix bugs in mips64.\n\nSaves 16 bytes per most ArtMethod, 7.5MB reduction in system PSS.\nSome of the savings are from removal of virtual methods and direct\nmethods object arrays.\n\nBug: 19264997\nChange-Id: I622469a0cfa0e7082a2119f3d6a9491eb61e3f3d\n"
    },
    {
      "commit": "0de1133ba600f299b3d67938f650720d9f859eb2",
      "tree": "575781fecb928641714801e24af128c68e108448",
      "parents": [
        "03e4351df62ade9fa0e9139ece28f23ba85c49c2"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed May 13 12:14:05 2015 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue May 19 14:31:54 2015 +0200"
      },
      "message": "Fix debuggable compiler flag detection for secondary dex files\n\nCompiles secondary dex files like the primary dex file: if it has\nbeen compiled with the --debuggable flag, compile secondary dex files\nwith the --debuggable flag too.\n\nTherefore, dex files loaded at runtime are compiled the same way as\ndex files compiled at install time on the classpath (excluding the\nboot image that is not compiled debuggable).\n\nAlso adds debuggable key in the oat header and bump the oat version.\n\nBug: 20944228\nChange-Id: I59119f3468adb27ab1d6026f2cefbebbd814224c\n"
    },
    {
      "commit": "b81e1cddd6a8ccccb9fe86e3bfae12b2657b8085",
      "tree": "d247ef138c2304c2ac7c5a0147ad06200e58de07",
      "parents": [
        "b6829c2ee05124d64a19c7a52ada4a23f624fb91"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Apr 28 12:31:41 2015 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Apr 29 15:50:03 2015 +0200"
      },
      "message": "Fix missing transaction abort error message\n\nChange-Id: I5157def06d385c082f9fdd4714e20bead9e707e8\n"
    },
    {
      "commit": "848f70a3d73833fc1bf3032a9ff6812e429661d9",
      "tree": "b0349b3a40aab5a915af491b100659a5ca9fbbf6",
      "parents": [
        "d14438f0c5071962be7fab572b54687d32d9d087"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Jan 15 13:49:50 2014 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Apr 27 18:54:52 2015 -0700"
      },
      "message": "Replace String CharArray with internal uint16_t array.\n\nSummary of high level changes:\n  - Adds compiler inliner support to identify string init methods\n  - Adds compiler support (quick \u0026 optimizing) with new invoke code path\n    that calls method off the thread pointer\n  - Adds thread entrypoints for all string init methods\n  - Adds map to verifier to log when receiver of string init has been\n    copied to other registers. used by compiler and interpreter\n\nChange-Id: I797b992a8feb566f9ad73060011ab6f51eb7ce01\n"
    },
    {
      "commit": "2cebb24bfc3247d3e9be138a3350106737455918",
      "tree": "d04d27d21b3c7733d784e303f01f873bb99e7770",
      "parents": [
        "1f02f1a7b3073b8fef07770a67fbf94afad317f0"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 21 16:50:40 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 22 12:44:27 2015 -0700"
      },
      "message": "Replace NULL with nullptr\n\nAlso fixed some lines that were too long, and a few other minor\ndetails.\n\nChange-Id: I6efba5fb6e03eb5d0a300fddb2a75bf8e2f175cb\n"
    },
    {
      "commit": "fc58af45e342ba9e18bbdf597f205a58ec731658",
      "tree": "3f93906235cb4d2462d237223b72ccf4eedef645",
      "parents": [
        "bbf02afc641a393d33342976e269218668c07386"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 16 18:00:39 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 21 15:51:29 2015 -0700"
      },
      "message": "Add AbstractMethod, Constructor, Method\n\nMoves functionality to ART from libcore. Precursor to moving\nArtMethods to native. Mostly performance improvements.\n\nN5 perf before (irrelevant results removed):\n            Class_getConstructor  962.87 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n         Class_getDeclaredMethod 2394.37 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                 Class_getMethod 2509.20 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n               Class_newInstance 1999.81 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                  Method_invokeI 1439.02 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n          Method_invokePreBoxedI 1415.82 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n            Method_invokeStaticI 1456.24 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n    Method_invokeStaticPreBoxedI 1427.32 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n            Method_invokeStaticV  814.47 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                  Method_invokeV  816.56 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nAfter:\n                       benchmark      ns linear runtime\n            Class_getConstructor 1302.04 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n         Class_getDeclaredMethod 1459.01 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                 Class_getMethod 1560.40 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n               Class_newInstance 2029.94 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                  Method_invokeI 1312.89 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n          Method_invokePreBoxedI 1255.01 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n            Method_invokeStaticI 1289.13 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n    Method_invokeStaticPreBoxedI 1196.52 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n            Method_invokeStaticV  790.82 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                  Method_invokeV  791.73 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nPerformance improvements are more than just fixing regressions introduced\nin: http://android-review.googlesource.com/#/c/146069/\n\nBug: 19264997\n\nChange-Id: Ife79c469fdb09f30e3aefcfc3e0ce5ed32303fce\n"
    },
    {
      "commit": "40da286d3207d88ed8ff3f5caac4873874603428",
      "tree": "3f9720425b2a024a5a54a0a71447dcea107229a8",
      "parents": [
        "6508158f8388847f4cc3693e2cc1dbee6c2c7d18"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Feb 27 12:49:04 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Apr 15 20:45:35 2015 -0700"
      },
      "message": "ART: Streaming trace mode\n\nAdd a streaming mode for tracing. Streaming uses a buffer of 16KB\nand writes to the output when that buffer gets full. Streaming mode\ncan be enabled with -Xmethod-trace-stream and is currently not\nexposed otherwise.\n\nAdd a python script that can parse the streaming format, which\nsimply contains strings for newly encountered threads and methods\ninline, and create output that can be used with traceview.\n\nAdd Trace::Pause and Trace::Abort, which can pause and abort tracing.\nAbort is different from Stop in that it does not write the data.\n\nAdd code to the zygote hooks JNI implementation that pauses tracing\nbefore the fork, making sure that a child cannot clobber the parent\u0027s\ndata.\n\nAdd code to the zygote hooks JNI implementation that aborts old\ntracing and starts new tracing in the child after the fork. Currently\nbase the output on the pid. This will not work on an unmodified\ndevice, as the profiles directory is not generally writable, but\nwe do not have enough information at that point. Consider a scheme\nthat restarts tracing later.\n\nChange-Id: I93c7bf87e35af582bdfdd3ecc7c52454514220dd\n"
    },
    {
      "commit": "3481ba2c4e4f3aa80d8c6d50a9f85dacb56b508b",
      "tree": "77551c0a6d060e5a3723ad35d2ab101038f9328a",
      "parents": [
        "095d209342420563becfec6676b46a6c6b839107"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Apr 13 12:22:36 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Apr 13 16:30:13 2015 +0100"
      },
      "message": "ART: Clean up includes.\n\nReduce dependencies to improve incremental build times.\nBreak up circular dependency involving class_linker-inl.h.\n\nChange-Id: I4be742c5c2b5cd9855beea86630fd68aab76b0db\n"
    },
    {
      "commit": "c785344b87221f5e4e6473e5b762e4e61fe65dcf",
      "tree": "cd32ad2c2604596a18926f04d4c313dab255ecfd",
      "parents": [
        "a29d93b380c9aeb8270e281aefbdd0c77a430d43"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 27 14:35:38 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 10 12:57:27 2015 -0700"
      },
      "message": "Move ArtField to native\n\nAdd linear alloc. Moved ArtField to be native object. Changed image\nwriter to put ArtFields after the mirror section.\n\nSavings:\n2MB on low ram devices\n4MB on normal devices\n\nTotal PSS measurements before (normal N5, 95s after shell start):\nImage size: 7729152 bytes\n23112 kB: .NonMoving\n23212 kB: .NonMoving\n22868 kB: .NonMoving\n23072 kB: .NonMoving\n22836 kB: .NonMoving\n19618 kB: .Zygote\n19850 kB: .Zygote\n19623 kB: .Zygote\n19924 kB: .Zygote\n19612 kB: .Zygote\nAvg: 42745.4 kB\n\nAfter:\nImage size: 7462912 bytes\n17440 kB: .NonMoving\n16776 kB: .NonMoving\n16804 kB: .NonMoving\n17812 kB: .NonMoving\n16820 kB: .NonMoving\n18788 kB: .Zygote\n18856 kB: .Zygote\n19064 kB: .Zygote\n18841 kB: .Zygote\n18629 kB: .Zygote\n3499 kB: .LinearAlloc\n3408 kB: .LinearAlloc\n3424 kB: .LinearAlloc\n3600 kB: .LinearAlloc\n3436 kB: .LinearAlloc\nAvg: 39439.4 kB\n\nNo reflection performance changes.\n\nBug: 19264997\nBug: 17643507\n\nChange-Id: I10c73a37913332080aeb978c7c94713bdfe4fe1c\n"
    },
    {
      "commit": "bb87e0f1a52de656bc77cb01cb887e51a0e5198b",
      "tree": "113f014c6e20fab3e936a3ac05f9f738639541f6",
      "parents": [
        "e57fc0f0260fcb1d08cbb720ec95c04c0f394b91"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 03 11:21:55 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Apr 06 10:44:37 2015 -0700"
      },
      "message": "Refactor and improve GC root handling\n\nChanged GcRoot to use compressed references. Changed root visiting to\nuse virtual functions instead of function pointers. Changed root visting\ninterface to be an array of roots instead of a single root at a time.\nAdded buffered root marking helper to avoid dispatch overhead.\n\nRoot marking seems a bit faster on EvaluateAndApplyChanges due to batch\nmarking. Pause times unaffected.\n\nMips64 is untested but might work, maybe.\n\nBefore:\nMarkConcurrentRoots: Sum: 67.678ms 99% C.I. 2us-664.999us Avg: 161.138us Max: 671us\n\nAfter:\nMarkConcurrentRoots: Sum: 54.806ms 99% C.I. 2us-499.986us Avg: 136.333us Max: 602us\n\nBug: 19264997\n\nChange-Id: I0a71ebb5928f205b9b3f7945b25db6489d5657ca\n"
    },
    {
      "commit": "9ba48cef58e71f6a61b346d83c69c6372ede6b77",
      "tree": "aa81defca9c6cc2c736e9b19e477240d18867225",
      "parents": [
        "425587d25832145a45a0b76beaa93996b0226f0d",
        "02d2f290380c6aeff5f5a089ee38fa5d55e46130"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Apr 03 21:06:51 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 03 21:06:51 2015 +0000"
      },
      "message": "Merge \"Fix the read barrier builds.\""
    },
    {
      "commit": "02d2f290380c6aeff5f5a089ee38fa5d55e46130",
      "tree": "7a1e2bd74768db29f25b087e2120fb4c61897da5",
      "parents": [
        "1f940310658cd5a15e12305463fb6d2d508bbd26"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Apr 03 13:35:16 2015 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Apr 03 13:35:16 2015 -0700"
      },
      "message": "Fix the read barrier builds.\n\nA check failure (!UseJit() in ArtMethod::Invoke()) in forced interpret\nonly mode in the eng build with JIT enabled by default on target.\n\nA build failure (inl header file issues) in the USE_BAKER_READ_BARRIER\nbuild.\n\nChange-Id: Ib13632b10864ad8b4691b66971c0ab5d2ae1e675\n"
    },
    {
      "commit": "ae36b4a8d05525c977af831f1b31126d84159e4f",
      "tree": "1b474b0bdec9db773cab0a2bca70dce1452f7cd1",
      "parents": [
        "a68a7cf8f3a6fef22d71a14350176115cb13857f",
        "2fd7e69505195cda4caaa3161aaf37315552a698"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Apr 03 07:49:44 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 03 07:49:46 2015 +0000"
      },
      "message": "Merge \"Use specific exception class to abort transaction\""
    },
    {
      "commit": "2fd7e69505195cda4caaa3161aaf37315552a698",
      "tree": "2bd681443ad36a8616f237a12e56ecbdb7054f8e",
      "parents": [
        "c6e949a6d93fae2351fc59ed825657adee8185dc"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Apr 02 11:11:19 2015 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Apr 03 09:31:59 2015 +0200"
      },
      "message": "Use specific exception class to abort transaction\n\nWe used to throw a java.lang.InternalError when aborting a\ntransaction (when preinitializing image classes at compilation time).\n\nWe now use dedicated class dalvik.system.TransactionAbortError that\nis only thrown by the compiler to abort a transaction. This class has\nconstructors taking a java.lang.Throwable \"cause\" so we can wrap\nexceptions causing the transaction to abort (for instance class\njava.lang.ClassNotFoundException) and give more information about the\ncause of the transaction abort.\n\nBug: 20019689\nChange-Id: I019a72a1c754d8bba6a7ad6bb0f02e4fd6668622\n"
    },
    {
      "commit": "f6a780abeaed4bf745720e8f836a3064d3ffbec4",
      "tree": "0850cde8f2200f893a374610090be5b8326ecf83",
      "parents": [
        "93c65adb3d7bd1d3815715df433d185219045230"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 02 18:51:05 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 02 18:51:05 2015 -0700"
      },
      "message": "ART: Move trace options to a struct\n\nBundles the different options and moves them to a struct in the\nimplementation file. Will allow for easier change for streaming.\n\nChange-Id: I486e0942614e714964eb233e2d6b4e3e12aa704f\n"
    },
    {
      "commit": "461687d898dfd91253f242072849a9fe43e5f523",
      "tree": "452e3e11cb5746f487920f87fcaf1b238d2a8957",
      "parents": [
        "e33d0cb5b88703302e3912ca96dabcb06fea4340"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 31 12:05:24 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 31 15:57:27 2015 -0700"
      },
      "message": "Visit image roots for hprof\n\nBug: 19995360\n\n(cherry picked from commit 0cab5e68f14ee403380664146db6dc7ddfc32064)\n\nChange-Id: I17868bff2a701dc25291d41b9732c6b86f92be08\n"
    },
    {
      "commit": "af38d89634edbef394b3ef2cb3390d08dfb8d939",
      "tree": "d201eb23ef8bdef663a7580289cece348903adba",
      "parents": [
        "f381645a336f7092ab6f5900c0a2cf183a9dbdf7",
        "7e7e0f47628fb358da70c5e2766545c4f0596235"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 30 01:04:12 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 30 01:04:12 2015 +0000"
      },
      "message": "Merge \"ART: Use enums in Trace\""
    },
    {
      "commit": "7e7e0f47628fb358da70c5e2766545c4f0596235",
      "tree": "5f1473cb0aa149fee476966ffb23ec8f8941b208",
      "parents": [
        "68e22f3b982ff9ccbdfb3b65b7cfc16fcae907ba"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sun Mar 29 15:26:23 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sun Mar 29 15:26:23 2015 -0700"
      },
      "message": "ART: Use enums in Trace\n\nMove away from booleans. Will make introduction of streaming mode\na bit easier / obvious.\n\nChange-Id: Id7ae92f6b97f627e848510d473931537d7db0db8\n"
    },
    {
      "commit": "daaf3265806eb2eadb2e03302bd68022fab5ca28",
      "tree": "aff5d6d53d6d2b65995aa204839f88ee66400989",
      "parents": [
        "68e22f3b982ff9ccbdfb3b65b7cfc16fcae907ba"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 24 13:30:28 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Mar 29 14:13:08 2015 -0700"
      },
      "message": "Add AccessibleObject and Field to mirror\n\nMain motivation is to remove all the functionality / field access on\njava side to ArtField. Also comes with some reflection speedups /\nslowdowns.\n\nSummary results:\ngetDeclaredField/getField are slower mostly due to JNI overhead.\nHowever, there is a large speedup in getInt, setInt,\nGetInstanceField, and GetStaticField.\n\nBefore timings (N5 --compiler-filter\u003deverything):\n\n                       benchmark      ns linear runtime\n          Class_getDeclaredField  782.86 \u003d\u003d\u003d\n                  Class_getField  832.77 \u003d\u003d\u003d\n                    Field_getInt  160.17 \u003d\n                    Field_setInt  195.88 \u003d\n                GetInstanceField 3214.38 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                  GetStaticField 6809.49 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nAfter:\n          Class_getDeclaredField 1068.15 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                  Class_getField 1180.00 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                    Field_getInt  121.85 \u003d\n                    Field_setInt  139.98 \u003d\n                GetInstanceField 1986.15 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                  GetStaticField 2523.63 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nBug: 19264997\n\nChange-Id: Ic0d0fc1b56b95cd6d60f8e76f19caeaa23045c77\n"
    },
    {
      "commit": "4585f876eb5dfb936bd0d6cb6acd78a1f2182ba6",
      "tree": "e9dfed086f56245e74862caa813c708bc4f500f9",
      "parents": [
        "e2c29f4a2717923f190c944a06e02f7d8c3ddcb6"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 27 23:45:15 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 27 23:46:09 2015 -0700"
      },
      "message": "ART: Some runtime cleanup\n\nUse an enum for the compiler-callback mode.\n\nRefactor and remove some unnecessary includes in runtime.h.\n\nChange-Id: If2245fa470171311b8e05b677cf6bb28f209585a\n"
    },
    {
      "commit": "81c6f8db12b203878a7d72444ead2bc7cf5c47ad",
      "tree": "11caae30b75b700ac648356fd30759a6154be997",
      "parents": [
        "cac51526bbd03947676a8d49700425b19a57e447"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Mar 25 17:19:53 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 27 21:43:21 2015 -0700"
      },
      "message": "ART: PathClassLoader for compiler\n\nUse an actual PathClassLoader when compiling apps, instead of a\nside structure and cutout.\n\nThis CL sets up a minimal object \u0027cluster\u0027 that recreates the Java\nside of a regular ClassLoader such that the Class-Linker will\nrecognize it and use the internal native fast-path.\n\nThis CL removes the now unnecessary compile-time-classpath and\nreplaces it with a single \u0027compiling-the-boot-image\u0027 flag in the\ncompiler callbacks.\n\nNote: This functionality is *only* intended for the compiler, as\nthe objects have not been completely initialized.\n\nBug: 19781184\n\nChange-Id: I7f36af12dd7852d21281110a25c119e8c0669c1d\n"
    },
    {
      "commit": "3679a47027b40290018d0ccc50b996a15645dfef",
      "tree": "92c6fcbb8fe5c647eb06bb63277c90f36c319101",
      "parents": [
        "139cec015abd195727d5410dc313b483babeda10",
        "e5fed03772144595c0904faf3d6974cc55214c8c"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Mar 25 17:10:11 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 25 17:10:12 2015 +0000"
      },
      "message": "Merge \"Support relative encoded dex locations in oat files.\""
    },
    {
      "commit": "e5fed03772144595c0904faf3d6974cc55214c8c",
      "tree": "27c242e48cabd2543f472930d1ad7e2ab86557fe",
      "parents": [
        "b93581f857e36a62f690e26e78167f2abea0f033"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Mar 18 08:21:11 2015 -0700"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Mar 24 12:48:09 2015 -0700"
      },
      "message": "Support relative encoded dex locations in oat files.\n\nNow when opening an oat file, the caller can pass an absolute dex\nlocation used to resolve the absolute path for any relative\nencoded dex locations in the oat file.\n\nBug: 19550105\nChange-Id: I6e9559afe4d86ac12cf0b90176b5ea696a83d0e7\n"
    },
    {
      "commit": "785049f8083e56e88dfeab5ff74fb3817f9854e3",
      "tree": "ab06a7fb4acb2ed73eed4b58327ba485f61560c4",
      "parents": [
        "f5988cf0c47ff935bb19c89ed0398be5fbe44bb6"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Jul 18 10:08:57 2014 -0700"
      },
      "committer": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon Mar 23 11:38:54 2015 -0700"
      },
      "message": "Add paths to apk!lib/\u003cabi\u003e to LD_LIBRARY_PATH\n\n  Add paths to .apk to LD_LIBRARY_PATH to enable\n  bionic linker\u0027s \"open from zip-file\" feature.\n\nBug: 8076853\nChange-Id: I1aa2c039bb2a590ae72f256acc9ba5401c2c59b1\n"
    },
    {
      "commit": "455f67c4cf0b4f04e117db3024fd189fa1c7dab9",
      "tree": "3f89fdc8ba9b31cc0205945410a75d63e2f25000",
      "parents": [
        "5747266d57445ecdd026a4705d62768faad09b01"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 17 13:48:29 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 18 18:49:28 2015 -0700"
      },
      "message": "Fix JIT options with late init\n\nPreviously we couldn\u0027t create the JIT since we didn\u0027t have any\nJITOptions.\n\nBug: 19735273\n\nChange-Id: I24b8ed131ed8b18f75ec94291e135d8a1c089ebd\n"
    },
    {
      "commit": "12d625f87bcd6c4059a205bb39007a255f57f382",
      "tree": "b69f6f80f56977c176e0c441869d2f1de06ede70",
      "parents": [
        "b871a15f1f662c8efe10d41199180bd00b6decd1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 13 11:33:37 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 13 16:38:25 2015 -0700"
      },
      "message": "Change method verifiers to be thread local roots\n\nBug: 10921004\n\nChange-Id: I3a1425d76cd380587ba67ef6d5ec1227564e55bf\n"
    },
    {
      "commit": "2435a43f6c851c23922d8508fb17c6079248201c",
      "tree": "a0eea938dfbafc8f8e1546528295005d3a55ecee",
      "parents": [
        "c685bce4e6cfec075cb5b468d06b2fcdeeda2005"
      ],
      "author": {
        "name": "bowen_lai",
        "email": "bowen_lai@htc.com",
        "time": "Fri Mar 13 14:34:40 2015 +0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 13 10:20:40 2015 -0700"
      },
      "message": "ART: Add entries_ lock for race condition\n\nGCDaemon thread would visit incorrect RegType content when there is\nanother thread initializing classes.\nAdd a lock to protect entries_.\n\nhttps://code.google.com/p/android/issues/detail?id\u003d159849\n\nChange-Id: Iabaa1c7f5cc5106b60a6e3856152e0797e8a5d6d\n"
    },
    {
      "commit": "c6201fa2ec66a218c4d0320fbcddd2fbb65cfa4a",
      "tree": "d7e2742906c340d61a7bf24aab6e0b343e0580d2",
      "parents": [
        "4cfe74cb50b73f5f4b6dd32aabed55d044afe348"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 12 10:06:33 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 12 10:59:33 2015 -0700"
      },
      "message": "Add way to select arena type at runtime\n\nWe now use MemMap for JIT, and malloc for everything else. This\nshould help fix the allegedly regressed compile times.\n\nChange-Id: I6a6552738933f9d7ee3bd23f45e310818b19b70d\n"
    },
    {
      "commit": "0aa50ce2fb75bfc2e815a0c33adf9b049561923b",
      "tree": "9a3f9603ab30d5cbc7fc21aee0ceb48bbb0dd25a",
      "parents": [
        "e8e42f3548fd894f860912bb1b71ce6fa2d7daf3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 10 11:03:29 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 10 14:51:11 2015 +0000"
      },
      "message": "Remove ThrowLocation.\n\nNote that this is a cleanup change, and has no functionality change.\nThe ThrowLocation had no use anymore.\n\nChange-Id: I3d2126af1dc673cec3a0453ff3d56a172663a5f6\n"
    },
    {
      "commit": "9b34b244ecddd8a35c922ed87bc3df0ca4db0282",
      "tree": "cb73f09a77a1ba58331eb299bb8dd1e6eafb6eaa",
      "parents": [
        "81d38f74219774d87389f83f23595ffc8fe814b1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 09 11:30:17 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 09 14:25:02 2015 -0700"
      },
      "message": "Trim arenas for JIT\n\nMoved arena pool into the runtime. Added arena trimming to arena\npool. When called, this madvises the used memory.\n\nChanged the JIT compiler to trim arenas after compilation. Changed\nthe arena mmap name to dalvik-LinearAlloc.\n\nNative PSS before:\n  80353 kB: Native\n  80775 kB: Native\n  78116 kB: Native\nAfter:\n  73357 kB: Native\n  70181 kB: Native\n  70306 kB: Native\n\nBug: 17950037\nBug: 17643507\nBug: 19264997\n\nChange-Id: I63e7a898fd6e909c2c677fa57b5917a7b1398930\n"
    },
    {
      "commit": "5c9d8f0d2948c2b4fe4258f96e3598ad5b8fa23b",
      "tree": "7510031e119cf981cdb6aafc5e5c2299aa06590d",
      "parents": [
        "3dd536ffd7e8f82e4587964545b272acbd61d68e",
        "14691c5e786e8c2c5734f687e4c96217340771be"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 09 10:11:03 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 09 10:11:03 2015 +0000"
      },
      "message": "Merge \"Compute the right catch location for the debugger.\""
    },
    {
      "commit": "14691c5e786e8c2c5734f687e4c96217340771be",
      "tree": "7c2156671b323c70ffdd1d48d5e2f1d1de79c5fc",
      "parents": [
        "3d7d2af4c6502b771b032ee9bf3ab30e78f9c60d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 05 10:40:17 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 09 10:09:33 2015 +0000"
      },
      "message": "Compute the right catch location for the debugger.\n\nAlso remove tls ThrowLocation, it is not needed anymore.\n\nChange-Id: I78fddf09ce968ca475e39c17fa76d699c589c8d9\n"
    },
    {
      "commit": "184c9dc3bfc500134fdb2fbea0a7fab290c0abb0",
      "tree": "753a040fa1ef43651dd36fc4dfeb9377dc88e481",
      "parents": [
        "66b26662ad0c52c648c9b5ea4a99149091e842b4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 05 13:20:54 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 05 13:25:51 2015 -0800"
      },
      "message": "Fix some incorrect IsCompiler instead of IsAotCompiler\n\nFixes jdwp related issues (DDMS) when JIT is enabled.\n\nBug: 19623297\nChange-Id: I36139c70a97b529135febcf01b227e7ab9affacc\n"
    },
    {
      "commit": "7b2f09eb6b5c74ffc38bd70f0aa74b8f8112e394",
      "tree": "be2f01bfa3e326ea10ee3a670cca8e41a5abaa6d",
      "parents": [
        "dc47e986941b1a3754447fabea272485f3f0f382"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 02 14:07:33 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Mar 04 12:19:44 2015 -0800"
      },
      "message": "ART: Add debuggable compiler flag\n\nAdd a flag to compiler options that shows debuggability.\n\nChange-Id: Id17ec72babe2ee88713a0d274eff86508de30666\n"
    },
    {
      "commit": "775f1d4096efce112a3bd1e5897c84f898c5f7ce",
      "tree": "44fbce76fdc2114947032cac69ad82aa93aee85c",
      "parents": [
        "cd93415651b7295d0bda1d37ef72ee99ba953c67",
        "bd9cf9f6bbf285ec7a5b74ce655a9e68e0f6e434"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Mar 03 13:39:30 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 03 13:39:31 2015 +0000"
      },
      "message": "Merge \"Follow-up 128393\""
    },
    {
      "commit": "bd9cf9f6bbf285ec7a5b74ce655a9e68e0f6e434",
      "tree": "04f3b49c2946c99b0aac23552f8c3cfdf8da39f4",
      "parents": [
        "ff9b747588e77f04b07dc76b2d39a82cbfc60441"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Mar 03 12:16:13 2015 +0100"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Mar 03 14:30:46 2015 +0100"
      },
      "message": "Follow-up 128393\n\nAvoids false warning when initializing the exception\u0027s class by\nmarking the transaction aborted after throwing the InternalError\nexception.\n\nAlso uses VLOG(compiler) to print the warning since it\u0027s only useful\nwhen investigating ahead-of-time class initialization.\n\nBug: 19202032\nChange-Id: I3c53639cbb888086ad345d668d1e5b73c5aaf861\n"
    },
    {
      "commit": "deebb99a53b0af3ccfde9daaef8cae8fad9e44d2",
      "tree": "12e12ff23a4790b8076d6e45c3defb8695772072",
      "parents": [
        "0d1ef55dd46ecd0309f8e9e6b30625cde9473fc8"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 02 11:49:22 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 02 11:50:18 2015 -0800"
      },
      "message": "Fix AddCurrentRuntimeFeaturesAsDex2OatArguments jit handling\n\nNow jit passes interpret filter to dex2oat.\n\nBug: 19550422\nChange-Id: I932c7d1084acbb9d356ad0f5534a270e2ca2d6ec\n"
    },
    {
      "commit": "e5f13e57ff8fa36342beb33830b3ec5942a61cca",
      "tree": "02e370ecc4e0d955f28bfc71a41015f94fbb19b7",
      "parents": [
        "354d58ba776866ea7b1c71f0d0848d5aaa013ae3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 24 09:37:21 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 24 10:47:02 2015 -0800"
      },
      "message": "Revert \"Revert \"Add JIT\"\"\n\nAdded missing EntryPointToCodePointer.\n\nThis reverts commit a5ca888d715cd0c6c421313211caa1928be3e399.\n\nChange-Id: Ia74df0ef3a7babbdcb0466fd24da28e304e3f5af\n"
    },
    {
      "commit": "f548c54c69443ba94fcee89daca6f5f499d71e9a",
      "tree": "aff0f707cb27e303d3b9de53f961bf48e38ad5be",
      "parents": [
        "9e87baff2eee8e8ae0700c7391ca4447dbe142b0",
        "a5ca888d715cd0c6c421313211caa1928be3e399"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 24 08:11:23 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 24 08:11:24 2015 +0000"
      },
      "message": "Merge \"Revert \"Add JIT\"\""
    },
    {
      "commit": "a5ca888d715cd0c6c421313211caa1928be3e399",
      "tree": "bdb08a2cbcf277ab7f02626a23b52a3fdf272ffe",
      "parents": [
        "2535abe7d1fcdd0e6aca782b1f1932a703ed50a4"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 24 08:10:57 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 24 08:10:57 2015 +0000"
      },
      "message": "Revert \"Add JIT\"\n\nSorry, run-test crashes on target:\n0-05 12:15:51.633 I/DEBUG   (27995): Abort message: \u0027art/runtime/mirror/art_method.cc:349] Check failed: PcIsWithinQuickCode(reinterpret_cast\u003cuintptr_t\u003e(code), pc) java.lang.Throwable java.lang.Throwable.fillInStackTrace() pc\u003d71e3366b code\u003d0x71e3362d size\u003dad000000\u0027\n10-05 12:15:51.633 I/DEBUG   (27995):     r0 00000000  r1 0000542b  r2 00000006  r3 00000000\n10-05 12:15:51.633 I/DEBUG   (27995):     r4 00000006  r5 b6f9addc  r6 00000002  r7 0000010c\n10-05 12:15:51.633 I/DEBUG   (27995):     r8 b63fe1e8  r9 be8e1418  sl b6427400  fp b63fcce0\n10-05 12:15:51.633 I/DEBUG   (27995):     ip 0000542b  sp be8e1358  lr b6e9a27b  pc b6e9c280  cpsr 40070010\n10-05 12:15:51.633 I/DEBUG   (27995): \n\nBug: 17950037\nThis reverts commit 2535abe7d1fcdd0e6aca782b1f1932a703ed50a4.\n\nChange-Id: I6f88849bc6f2befed0c0aaa0b7b2a08c967a83c3\n"
    },
    {
      "commit": "4fa1a274024067e160a60d0a77124e95dca980e1",
      "tree": "61dd41429b6b2ed29239f0c619c0e7ea058fd4ac",
      "parents": [
        "40c99de1fd26f9ba6fae20a01175240b96fc7443",
        "2535abe7d1fcdd0e6aca782b1f1932a703ed50a4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 24 01:29:46 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 24 01:29:47 2015 +0000"
      },
      "message": "Merge \"Add JIT\""
    },
    {
      "commit": "2535abe7d1fcdd0e6aca782b1f1932a703ed50a4",
      "tree": "140026ff9638ff34050680b6c706b82fa1740b56",
      "parents": [
        "38fee8ef4bc0f4dbe2c6d1f5585895f0c4d16984"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 17 10:38:49 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Feb 23 16:45:49 2015 -0800"
      },
      "message": "Add JIT\n\nCurrently disabled by default unless -Xjit is passed in.\n\nThe proposed JIT is a method JIT which works by utilizing interpreter\ninstrumentation to request compilation of hot methods async during\nruntime.\n\nJIT options:\n-Xjit / -Xnojit\n-Xjitcodecachesize:N\n-Xjitthreshold:integervalue\n\nThe JIT has a shared copy of a compiler driver which is accessed\nby worker threads to compile individual methods.\n\nAdded JIT code cache and data cache, currently sized at 2 MB\ncapacity by default. Most apps will only fill a small fraction of\nthis cache however.\n\nAdded support to the compiler for compiling interpreter quickened\nbyte codes.\n\nAdded test target ART_TEST_JIT\u003dTRUE and --jit for run-test.\n\nTODO:\nClean up code cache.\nDelete compiled methods after they are added to code cache.\nAdd more optimizations related to runtime checks e.g. direct pointers\nfor invokes.\nAdd method recompilation.\nMove instrumentation to DexFile to improve performance and reduce\nmemory usage.\n\nBug: 17950037\n\nChange-Id: Ifa5b2684a2d5059ec5a5210733900aafa3c51bca\n"
    },
    {
      "commit": "39ce2282ed2b020e51e8d92f442b419ae9dd6434",
      "tree": "ec4bb0fc550d97dac474200246cedabb8b0759c5",
      "parents": [
        "9e80e7fa5ef60f02f35823bc58969c3d5a03453e",
        "05d1461f40a065acb66e6d5248609cf33c5b900a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 24 00:33:15 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 24 00:33:15 2015 +0000"
      },
      "message": "Merge \"Only detach shutdown thread if we attached it\""
    },
    {
      "commit": "05d1461f40a065acb66e6d5248609cf33c5b900a",
      "tree": "c31a40484dabb28d758f2dbcd375b6f96f6a8dd9",
      "parents": [
        "735969139b162f9d45a3c0e47dc24a8aec63c736"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Feb 23 15:31:58 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Feb 23 16:22:32 2015 -0800"
      },
      "message": "Only detach shutdown thread if we attached it\n\nSpeculative fix to:\n\"Request to unregister unattached thread\" bug.\n\nBug: 18713034\nChange-Id: I6e69088dd66970c704010397a11e3758cf107ff9\n"
    },
    {
      "commit": "24e04aa68c575d349eac0d9d09aab9bd3106ef94",
      "tree": "e6a14642cc4a4b409fe98a696b17968c6d0a65f4",
      "parents": [
        "38fee8ef4bc0f4dbe2c6d1f5585895f0c4d16984"
      ],
      "author": {
        "name": "Jean Christophe Beyler",
        "email": "jean.christophe.beyler@intel.com",
        "time": "Fri Sep 12 12:03:25 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Feb 23 15:43:46 2015 -0800"
      },
      "message": "ART: Allow the execution to stop if the compilation fails via an option\n\nThe current implementation continues the execution of the application if\ndex2oat fails by relying on the interpreter.\n\nThis patch adds a -Xno-dex-file-fallback option to stop the default behavior.\nThis can be used two-fold.\n\nFirst, one can enforce that a runtime only starts with a boot image. A\nfollow-up patch will ensure that dex2oat (for apps) and patchoat in general\nrequest that mode and close gracefully otherwise.\n\nSecond, this can be used for testing and debugging purposes, as it ensures\nthat compiler failures \u0026 aborts are not silently ignored.\n\nAdd testing.\n\nBug: 19100590\nChange-Id: Iaf07b5ccf00942ca8a8ec8687599320a3ddbc089\nSigned-off-by: Jean Christophe Beyler \u003cjean.christophe.beyler@intel.com\u003e\n"
    },
    {
      "commit": "5a2be3f40125af8b25fbbd9d55dc968168c76ed7",
      "tree": "070b920e71c927f112a6922f5e7b59668392f762",
      "parents": [
        "d98ff78976696fdde1e7868d4687719a0439544b"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Feb 16 13:51:51 2015 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Sat Feb 21 11:19:07 2015 +0000"
      },
      "message": "Implement a simple count based boot marker.\n\nWe write the number of failed boots to the marker and only\nprune the dalvik cache if the number of consecutive failed\nboots is higher than a predefined threshold.\n\nNote that the code is forgiving of errors related to boot\nmarkers; we continue the boot process even if we\u0027re unable\nto create / write or flush the boot marker.\n\nbug: 19360096\nChange-Id: Ia17c3b783318ddf43c9199d0f7f09c54a4176667\n"
    },
    {
      "commit": "f360ad091bdc1484db2e4e0f0492f620402dbf58",
      "tree": "18b356225ef42bdc3a50a62a5f7975872c9742c6",
      "parents": [
        "4ba405483177cf346211d43d97892bae6ff14119"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Feb 20 11:28:03 2015 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Feb 20 11:28:03 2015 -0800"
      },
      "message": "Make UseTLAB a bool flag.\n\nThis would make it easier to override its default value at build time.\n\nChange-Id: I643fe1afaf492f0443dc01df0c9a62bb3fa025d9\n"
    },
    {
      "commit": "b3b173bbbd1d1cbad555de13c3fa6765f5078bce",
      "tree": "89d380f42aed1a4c60db40f8be7d22501eaafa32",
      "parents": [
        "e5f5953e744060fde3b4489cea4d934d529e3e32"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Feb 06 09:16:32 2015 +0100"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Feb 17 22:42:43 2015 +0100"
      },
      "message": "Follow up 129144\n\nPasses JDWP options to debugger on runtime init so we no longer need\nto keep them on the heap.\n\nUpdates ParseJdwpOption to return Result for consistency.\n\nBug: 19275792\nChange-Id: I68b7e58908164d3e4cf9e3fbcc3dfab6ce0579a5\n"
    },
    {
      "commit": "53b36a26925e898b5f7cd3fad1d6a133eda62b4b",
      "tree": "f081ee7fb2f80bad763a5016d72127c4a3ea5aa5",
      "parents": [
        "69c37c3b5bc868003115898a3d1754604bb6db96",
        "c7d11887725e28db2796c848f4485e59d5eb690c"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Feb 10 18:47:42 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 10 18:47:42 2015 +0000"
      },
      "message": "Merge \"Handle variable size of methods properly between 32 and 64 bit.\""
    },
    {
      "commit": "c7d11887725e28db2796c848f4485e59d5eb690c",
      "tree": "97f39432ca9d94969f53cae91baaf8de57cf785d",
      "parents": [
        "a0acc2d5dbf8764b346da3d9e6ce1a91427fc4b5"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Feb 03 15:08:39 2015 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Feb 05 14:14:43 2015 -0800"
      },
      "message": "Handle variable size of methods properly between 32 and 64 bit.\n\nBug: 19100762\nChange-Id: I62358905fa882284d0201ed3c1e97e1286ccec5f\n"
    },
    {
      "commit": "3be6e9d904baa13d7cf51dfc6742dea12e766b2e",
      "tree": "43ad5f3655d73243ab212eefb83169471a1d87b3",
      "parents": [
        "24898d447640c3a45e6fc9f404b049eddc5a2709"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Feb 05 16:30:58 2015 +0100"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Feb 05 18:28:54 2015 +0100"
      },
      "message": "Read JDWP options from runtime\n\nAllocates JDWP::JdwpOptions on the heap and copies parsed options to\navoid the need to include jdwp/jdwp.h into runtime.h file.\n\nAlso does some minor cleanup and removes the old JDWP options parsing\ncode that became dead code after we move it to the new command-line\nparser.\n\nBug: 19275792\nChange-Id: I71901c89fbf2cc3c1901a089e2a98b4326c6ee70\n"
    },
    {
      "commit": "911b4be50c379d052dd9e5f9b59ce91df1340453",
      "tree": "790b7f3a25b0a31ddddc606b1ba2a24fc8146476",
      "parents": [
        "7e6a918ecfbe786c060bce0eeddd55c4c70f819d",
        "1c80becf5406cd6d95dc24bf47a0c5a3809ea281"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Feb 05 08:19:21 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 05 08:19:22 2015 +0000"
      },
      "message": "Merge \"Fix transaction aborting\""
    }
  ],
  "next": "1c80becf5406cd6d95dc24bf47a0c5a3809ea281"
}
