)]}'
{
  "log": [
    {
      "commit": "1eeb00c7499c520159a38af4be3835aee7ee7b38",
      "tree": "b3633fdf5f7e94674970be7321f86640e90452c8",
      "parents": [
        "c64789734890c86ac772b1963b35ad21d17e44c3"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Nov 03 08:19:01 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Nov 03 11:16:36 2016 -0700"
      },
      "message": "ART: Change iterator value type to match\n\nMake keys const.\n\nBug: 32619234\nTest: m\nChange-Id: I240341a0fec79754bea2ed21c0d0a4ddd119ce35\n"
    },
    {
      "commit": "12393f3aa99eb2148d22af5244511b8f9dfe08e2",
      "tree": "41346822de64ebb6014d8ca38f4b58e57dc8eb18",
      "parents": [
        "c89f9776a107ca20d0146c16fa881db91c4f8266"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 20 17:11:23 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 20 17:44:31 2016 -0700"
      },
      "message": "Don\u0027t dump loaded but unresolved classes in hprof\n\nIf a class is loaded but not yet resolved, it will cause failed\nDCHECK when reading static fields.\n\nBug: 32008990\n\nTest: test/run-test --host 130\n\nChange-Id: I05f549cb2b70c75b06ed23d3405373d15ad7707b\n"
    },
    {
      "commit": "709b070044354d9f47641f273edacaeeb0240ab7",
      "tree": "3a8ac051d7c35076303984d0d892cdd396b60427",
      "parents": [
        "1a4de6a2453a3ad0310aca1a44e7e2d3b6f53bc1"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Oct 13 09:12:37 2016 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Oct 18 14:10:04 2016 -0700"
      },
      "message": "Remove mirror:: and ArtMethod deps in utils.{h,cc}\n\nThe latest chapter in the ongoing saga of attempting to dump a DEX\nfile without having to start a whole runtime instance.  This episode\nfinds us removing references to ArtMethod/ArtField/mirror.\n\nOne aspect of this change that I would like to call out specfically\nis that the utils versions of the \"Pretty*\" functions all were written\nto accept nullptr as an argument.  I have split these functions up as\nfollows:\n1) an instance method, such as PrettyClass that obviously requires\nthis !\u003d nullptr.\n2) a static method, that behaves the same way as the util method, but\ncalls the instance method if p !\u003d nullptr.\nThis requires using a full class qualifier for the static methods,\nwhich isn\u0027t exactly beautiful.  I have tried to remove as many cases\nas possible where it was clear p !\u003d nullptr.\n\nBug: 22322814\nTest: test-art-host\nChange-Id: I21adee3614aa697aa580cd1b86b72d9206e1cb24\n"
    },
    {
      "commit": "0795f23920ee9aabf28e45c63cd592dcccf00216",
      "tree": "ff3f880c5e84f3316532b47d0e9a7729ade848ac",
      "parents": [
        "d1224dce59eb0019507e41da5e10f12dda66bee4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 27 18:43:30 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 29 17:31:09 2016 -0700"
      },
      "message": "Clean up ScopedThreadStateChange to use ObjPtr\n\nAlso fixed inclusion of -inl.h files in .h files by adding\nscoped_object_access-inl.h and scoped_fast_natvie_object_access-inl.h\n\nChanged AddLocalReference / Decode to use ObjPtr.\n\nChanged libartbenchmark to be debug to avoid linkage errors.\n\nBug: 31113334\n\nTest: test-art-host\n\nChange-Id: I4d2e160483a29d21e1e0e440585ed328b9811483\n"
    },
    {
      "commit": "bdf7f1c3ab65ccb70f62db5ab31dba060632d458",
      "tree": "25cc77adfeb05232d0ab00aa561a693f1d71745c",
      "parents": [
        "d7eabc2cc1a88c1f7f927da61246ae65aab0626c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Aug 30 16:38:47 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Aug 30 17:02:53 2016 -0700"
      },
      "message": "ART: SHARED_REQUIRES to REQUIRES_SHARED\n\nThis coincides with the actual attribute name and upstream usage.\nPreparation for deferring to libbase.\n\nTest: m\nTest: m test-art-host\nChange-Id: Ia8986b5dfd926ba772bf00b0a35eaf83596d8518\n"
    },
    {
      "commit": "3aaa37bba53d6df0265793de48b4b0b57327e57a",
      "tree": "ce795803f0f10003eb3d96d9348da620937675b3",
      "parents": [
        "792c98bb773c8c2390f9cbf774f85be9d9a75332"
      ],
      "author": {
        "name": "jessicahandojo",
        "email": "jessicahandojo@google.com",
        "time": "Fri Jul 29 14:46:37 2016 -0700"
      },
      "committer": {
        "name": "jessicahandojo",
        "email": "jessicahandojo@google.com",
        "time": "Tue Aug 23 15:12:26 2016 -0700"
      },
      "message": "creating workflow for mirror::String compression\n\nAll-ASCII String characters are stored in 8-bit blocks\ninstead of 16-bit. The compression has not taken place, but all\nworkflow are in the code already (changing kUseStringCompression in\nstring.h file to TRUE will enable the feature)\n\nNotes: Feature works on interpreter only without optimizing\n\nTest art: m ART_TEST_INTERPRETER\u003dtrue ART_TEST_OPTIMIZING\u003dfalse\n          test-art-host\n\nAlso tested with String tests from libcore/:\n1. libcore.java.lang.StringTest\n2. libcore.java.lang.StringBufferTest\n3. libcore.java.lang.StringBuilderTest\n4. libcore.java.lang.OldStringTest\n5. libcore.java.lang.OldStringBufferTest\n\nMemory improvement is 33% (from 6.03% to 4.03%, total String memory\nfrom all apps per total memory of all apps) measured on Angler\nwith Hprof tools\n\nBug: 31040547\nChange-Id: I9cc92c265ebf1305fc06b5fc33efd83797660cce\n"
    },
    {
      "commit": "4b76755d37f29ddb1a752b70ef1e81550f639b6e",
      "tree": "935ab9db171cf4d7ba13ee9e857e2076450269be",
      "parents": [
        "5e67a6a26e12d79e7ab788d4496240ac2fc2be73"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Apr 26 13:28:59 2016 -0700"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Fri Apr 29 14:04:23 2016 -0700"
      },
      "message": "Deduplicate simple roots in hprof.\n\nBug: 28311991\n\n(cherry picked from commit e792305f5238df71a1928faf142cd35713aa3e47)\n\nChange-Id: Icfb646ff62965daee51f65f46f4911cf0751bf8d\n"
    },
    {
      "commit": "458b105a9cbab6156d72acf3b9372291dba9097a",
      "tree": "af01339c9c0e18a16455ebc64098bb683055c94b",
      "parents": [
        "fd9ac384741435902d4fc03034f4cbaafaa85780"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 29 14:02:55 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 31 13:00:07 2016 -0700"
      },
      "message": "Obtain stack trace outside of critical section\n\nFixes deadlock if the stack walk does allocations, changed stack\ntrace format to prevent slowdown.\n\nAdded missing GetInterfaceMethodIfProxy to fix a crash in maps.\n\nBug: 27857910\n\n(cherry picked from commit 23428587d32361736d4c5e0ba7270c7602695a43)\n\nChange-Id: I64373bcd87a68fdd1b58fb855db2b16c9f6ed36b\n"
    },
    {
      "commit": "c9cd7ac27479c2fbc4c8451536ec628307f260cd",
      "tree": "f34caca02e7a6ac7479d207d40d2eeb1d11809fc",
      "parents": [
        "1ee101ac001561a40a3b654bab9c62f9369f0350"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jan 20 14:48:36 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jan 20 14:58:55 2016 -0800"
      },
      "message": "Add stack trace info to hprof completion message\n\nBug: 25795907\nChange-Id: Iba39ac9467ed57ee37c7dd17f1b21e28c7e556c7\n"
    },
    {
      "commit": "4f55e22630d99ca0edd9e951e5ee96b57bb9b980",
      "tree": "84b7d55a6a7c31c09ed2865cc1bc2f4393476533",
      "parents": [
        "2d06e08d25bbf8eff1de945736a60810009e59ad"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 04 13:26:21 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 11 13:14:20 2015 -0700"
      },
      "message": "Add and use ScopedSuspendAll\n\nUsage replaces most SuspendAll and ResumeAll calls.\n\nChange-Id: I355683a5365876242cea85a656dcb58455f7a294\n"
    },
    {
      "commit": "c515f21dabd53e1b68bd2780fe86039d0dab49f8",
      "tree": "42de004d79536b2b6cd32d284d4f5c6b187e0f02",
      "parents": [
        "ce209462cc1a7ce235e5ac0d0e6db6b402f73441"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Aug 28 18:15:27 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Aug 28 19:11:22 2015 -0700"
      },
      "message": "ART: Weaken size check in hprof\n\nDumping the heap is a two-phase process. In the first phase, all\nobjects are visited to fill the header tables. In the second phase,\nthe tables are written out and the heap is visited again to write\nthe object records.\n\nDeleting global references doesn\u0027t require the mutator lock. So it\nis possible to delete a global ref in-between the first and the\nsecond phase. This leads to a smaller set of object records. The\nresult is still safe, as the object\u0027s class etc. is still in the\nheader tables, and the object won\u0027t be deleted, so will still be\ndumped by itself.\n\nBug: 23521263\n\n(cherry picked from commit e4cf5892c2a244034900d49499c071b255571bba)\n\nChange-Id: I019c29b13ceb9f13e362c742662f1546d52c37a0\n"
    },
    {
      "commit": "aa50d3a01a4137cd89c152be5487fed23683d0ff",
      "tree": "a676638c9d43eb519214445173c1a66ba38355ac",
      "parents": [
        "f0170ded84fbcd3d9152cdbcf9ffbf74c71b03ba"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Aug 25 15:25:41 2015 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Aug 25 15:56:54 2015 +0200"
      },
      "message": "Add missing field init in constructors\n\nAdds missing field initializations detected by Eclipse IDE.\n\nChange-Id: I5f2f32bcccb12545fc9f0b42fcec74a23dc81376\n"
    },
    {
      "commit": "059ef3ddb2088f926ac452889e0953fdcd646a5e",
      "tree": "36067457d7e4aba11be908ddd235734d29b7c4f2",
      "parents": [
        "f71ad9ede9ae322a897e8fe407208dc35c5dee65"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 18 13:54:21 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 18 16:11:21 2015 -0700"
      },
      "message": "Always visit object class from VisitReferences\n\nWe don\u0027t want to unload classes which have instances.\n\nSlight increase in CMS GC time from ~6.5s to ~7.3s on\nEvaluateAndApplyChanges.\n\nBug: 22720414\nChange-Id: I467ff9c9d55163d2a90b999aef3bdd7b3f648bac\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": "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": "d7f3c38f1b1d23c08b91abb474e08da3105689f8",
      "tree": "f01ad355cf39649ead8544325fb2c34e64ffe43e",
      "parents": [
        "dfda6d74f97891d1b61027de9b4dca9bcd7c197d",
        "42c3c33df8b6eefc4ba532f1981282510f109928"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jun 25 22:02:33 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 25 22:02:33 2015 +0000"
      },
      "message": "Merge \"Make allocation tracker use less memory\""
    },
    {
      "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": "07d7eab545916ef0602afddae162f5b6b1a68b7d",
      "tree": "cc8db5933a30c5b3a7b08f420874e40cbd26b060",
      "parents": [
        "b1452c2fb01bfb663dbac94010c73b97e0c094e8"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jun 23 15:45:15 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jun 23 15:55:50 2015 -0700"
      },
      "message": "Fix field ordering for String in hprof\n\nWe were inserting value field after the Object field instead of\nthe String fields.\n\n(cherry picked from commit c94c6a751ef1ee31cbc3b924835290bcdef731a0)\n\nBug: 22043800\nChange-Id: Ibaddbd7299562949e32eceb625feac325539e3ce\n"
    },
    {
      "commit": "a6d3a7ef8e648e8a65b38ea0bc475fad1d1fc105",
      "tree": "2727f55063d0544614635b24f5f5bdf9acef3f92",
      "parents": [
        "9fb3e66a08c779f55d22174d079ecd58fd8b8bc3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jun 03 16:51:09 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jun 11 12:56:01 2015 -0700"
      },
      "message": "Add hprof accounting for Class IMT, VTable\n\nThese are now included in the classOverhead field which used to be\nthe staticOverhead field.\n\nBug: 20726205\nChange-Id: I648db1bcaa393e3e907b1878f29631ad6b14a6e7\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": "e7158116f345df6df73f0df7ebdc2be8e0e4f3e8",
      "tree": "eb22dd962fe56325a505eaacfdf07e3cc97c7904",
      "parents": [
        "2519fc40d4ae89322d28d1ff610fe81bb90fb564"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jun 03 13:32:15 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jun 03 16:07:29 2015 -0700"
      },
      "message": "Add a way to determine if a large object is a zygote object\n\nAlso fix a slight memory leak in LargeObjectMapSpace.\n\nBug: 20674158\n\n(cherry picked from commit 8f23620d45399286564986d2541cda761b3fe0ac)\n\nChange-Id: I2416df484e5b84a8c5cc0b5664c8cb102dc235f6\n"
    },
    {
      "commit": "7c1f53e4253e6acff5e76f00e6bf666518068c4d",
      "tree": "3b07161966b6f3f7d0c475ef06d9b274b19f2f16",
      "parents": [
        "0c46694c182655150d1f8faf7992e844c07710f2"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jun 03 10:51:13 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jun 03 11:08:37 2015 -0700"
      },
      "message": "Emit instance fields for java.lang.Object in hprof\n\nPreviously we omitted these fields.\n\n(cherry picked from commit 0adc90eb0592e220f787f87dbef3a9b5c1db2080)\n\nBug: 20726205\nChange-Id: I81c55919a4bd015bc0a4e7259a41a05dab534e11\n"
    },
    {
      "commit": "bf44d42d978861f33fd5978f49392db3321ae414",
      "tree": "9026c1e27e713bebc3d23139dfb0263ca3435ba1",
      "parents": [
        "35d62ce1801aad45233ae72c1bd665f8709e4a6d"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jun 02 11:42:18 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jun 02 17:51:53 2015 -0700"
      },
      "message": "Add a way to SuspendAll for a long duration\n\nHprof uses this mode to not cause thread suspend timeouts if GC tries\nwhile the hprof dump is running.\n\n(cherry picked from commit 77be6635f9b07a8a794924c5fb9b071949776a6d)\n\nBug: 21063989\nChange-Id: Ic6304620afd1489719a7e0e4299f829c90fe27cc\n"
    },
    {
      "commit": "80afd02024d20e60b197d3adfbb43cc303cf29e0",
      "tree": "ef054c7b4f2a739f7cf063e0bc4c501c2c7e41b5",
      "parents": [
        "559b178e34c5d92e7932f92e5d8a981ac334606f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 19 18:08:00 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 26 15:59:02 2015 +0100"
      },
      "message": "ART: Clean up arm64 kNumberOfXRegisters usage.\n\nAvoid undefined behavior for arm64 stemming from 1u \u003c\u003c 32 in\nloops with upper bound kNumberOfXRegisters.\n\nCreate iterators for enumerating bits in an integer either\nfrom high to low or from low to high and use them for\n\u003carch\u003eContext::FillCalleeSaves() on all architectures.\n\nRefactor runtime/utils.{h,cc} by moving all bit-fiddling\nfunctions to runtime/base/bit_utils.{h,cc} (together with\nthe new bit iterators) and all time-related functions to\nruntime/base/time_utils.{h,cc}. Improve test coverage and\nfix some corner cases for the bit-fiddling functions.\n\nBug: 13925192\nChange-Id: I704884dab15b41ecf7a1c47d397ab1c3fc7ee0f7\n"
    },
    {
      "commit": "90bcbd50aca23331869f64a2ecb8e6c292c127ff",
      "tree": "46d04086aaafd8a6d4a015df66865d04ed426ac8",
      "parents": [
        "961445587ade0ba26f9bbd4d66853e75d446c057"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu May 14 17:19:15 2015 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu May 14 17:58:46 2015 -0700"
      },
      "message": "In hprof, use an address within string for char array of empty string.\n\nBug: 21089461\n\n(cherry picked from commit I203345caf74fba2e9bf0549256147d84d1bb829e)\n\nChange-Id: I38d1bc0d303558ab535ec4c3aa17a046fcb055a1\n"
    },
    {
      "commit": "0ce43539b3bbade7d95482c4da0126a54d5bcba9",
      "tree": "dcad280ed1aad47518ce9309db0f4782f1e218f7",
      "parents": [
        "ca7db4af96cd834bfe322fb14c1476186f1278e5"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue May 12 18:58:32 2015 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu May 14 14:52:05 2015 -0700"
      },
      "message": "In hprof, set string class instance size to that of an empty string.\n\nBug: 21066704\n\n(cherry-picked from commit c99b900283296663a37bffe06ae5ca6453748e16)\n\nChange-Id: I91fc397f8ea6bdec654eae51b82528ba5843532c\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": "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": "ca068b2385ba160367d1e7fd123317b851b99390",
      "tree": "7a8c20069c3d3bae136d6760b52be5b6c4dc7daf",
      "parents": [
        "1b8e8cac2c96f6d2af8e7217f997a30e11c098b5"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Apr 07 10:28:53 2015 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Apr 07 10:55:26 2015 +0200"
      },
      "message": "Ignore not yet loaded classes during hprof\n\nSkips classes that are no yet loaded because we cannot access its\nfields nor its superclass. This CL fixes a crash observed during the\nrun-test 130-hprof.\n\nBug: 20040824\nChange-Id: Ia618b6c1579d35dfd726726ca6d2ff4258d8a841\n"
    },
    {
      "commit": "e8aae00fa400efbb8f998a5dbf68eb42810889c1",
      "tree": "f14ec179e84f7b122fadd6e4abaf066d1843634a",
      "parents": [
        "81aedc7b2f2e8b990d74d6dfa5303ab2447327a1",
        "ca71458862be8505330b7fd5649a062f31d143dc"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 06 20:36:03 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 06 20:36:03 2015 +0000"
      },
      "message": "Merge \"ART: Add Clang\u0027s -Wused-but-marked-unused\""
    },
    {
      "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": "ca71458862be8505330b7fd5649a062f31d143dc",
      "tree": "7bc749056ab65906a147cc8e1d92e8be3ffea2cc",
      "parents": [
        "9d231cc422b7b32d00bd43ca6993b2dd7e9989ea"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 03 19:41:34 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 03 20:14:40 2015 -0700"
      },
      "message": "ART: Add Clang\u0027s -Wused-but-marked-unused\n\nAdd detection of wrong unused annotations. Fix our codebase.\n\nChange-Id: I85cc20f2eac71c1ec6c5c7cd6efb08454a629634\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": "bf9fc581e8870faddbd320a935f9a627da724c48",
      "tree": "0a4a6c21fbd4c771b06fac186d32efa6722605b2",
      "parents": [
        "3d96846b6adedf57be64eb3873de0ca58ec4b827"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 13 17:21:25 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 13 17:32:48 2015 -0700"
      },
      "message": "Add more info to who called SuspendAll\n\nHelps diagnose related jank.\n\nChange-Id: I38191cdda723c6f0355d0197c494a3dff2b6653c\n"
    },
    {
      "commit": "15f345cdfaebe480de6387b67d4be4eb5f106870",
      "tree": "b4144be2207eab5584d100e155e107a873da4794",
      "parents": [
        "709d8df91d829573e399b68db882399e5509aeb5"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 06 12:45:44 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 06 12:52:57 2015 -0800"
      },
      "message": "Fix failing hprof DCHECK\n\nBenign.\n\nBug: 19627999\nChange-Id: I20f3d36ffa1efaf23b40b6290c042df81eca2fea\n"
    },
    {
      "commit": "ff38c04b88e86bffdd520bc1863d05334ada6c94",
      "tree": "33daa35b0d24b3c56fd6be3809a12a6e4b2d7f02",
      "parents": [
        "a6aad92310895d35d8004da917100806d35d6b16"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 06 11:33:36 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 06 11:46:09 2015 -0800"
      },
      "message": "Fix byte and char Get32\n\n8 bit and 16 bit fields aren\u0027t necessarily 32 bit aligned due to\nfield packing. This was causing SIGBUS for hprof dumping some apps.\n\nBug: 19627999\n\n(cherry picked from commit 2ff8da6a4d44bcf6a72dca1b5294a72297c5ce26)\n\nChange-Id: If549412fc4d62c55bb6a46f11658fc60b822a27e\n"
    },
    {
      "commit": "2cd334ae2d4287216523882f0d298cf3901b7ab1",
      "tree": "b72d3d07e5a04151caca96cae345075b6e4452b0",
      "parents": [
        "604e2828896fbb8663897d1e75112da7305ead4c"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Jan 09 14:03:35 2015 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Jan 23 14:07:32 2015 -0800"
      },
      "message": "More of the concurrent copying collector.\n\nBug: 12687968\nChange-Id: I62f70274d47df6d6cab714df95c518b750ce3105\n"
    },
    {
      "commit": "0c8c303c20cdaaf54d26e45cc17dc5afb820d8ef",
      "tree": "d3289457acd74e6aa3296bbeef1f8a7619537eec",
      "parents": [
        "97d9f286971a4c1eec70e08f9f18f990d21780d5"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Jan 16 16:54:35 2015 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Jan 20 12:40:59 2015 -0800"
      },
      "message": "Clean up the locks around Heap::VisitObjects().\n\nThis is so that we could support suspending all threads when visiting\nobjects in the presence of a concurrent, moving collector.\n\nBug: 12687968\nChange-Id: Icc8e60630465afde948ebc6ea91d4ebaff5d7837\n"
    },
    {
      "commit": "e34fa1df67fbe0173b4ea9abddcc3ae3d0537037",
      "tree": "a5148f079b5671a95f60910c41981ebf91db3a02",
      "parents": [
        "9f06b1946ae3ef1d2fd75bbf7f0a288bc611fe58"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jan 14 14:55:47 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jan 15 12:23:28 2015 -0800"
      },
      "message": "Print more info in MarkSweep::VerifyRoot\n\nRefactored old root callback to use a new class called RootInfo.\nRootInfo contains all the relevant info related to the root\nassociated with the callback. The MarkSweep::VerifyRoot function\nnow uses this info to print the StackVisitor\u0027s described location\nif the GC root is of the type kRootJavaFrame.\n\nSome other cleanup.\n\nExample output:\nE/art     (12167): Tried to mark 0x123 not contained by any spaces\nE/art     (12167): Attempting see if it\u0027s a bad root\nE/art     (12167): Found invalid root: 0x123 with type RootJavaFrame\nE/art     (12167): Location\u003dVisiting method\n\u0027void java.lang.Runtime.gc()\u0027 at dex PC 0xffffffff (native PC 0x0)\nvreg\u003d0\n\n(cherry picked from commit 12f7423a2bb4bfab76700d84eb6d4338d211983a)\n\nBug: 18588862\nChange-Id: Ic5a2781f704e931265ffb3621c2eab4b2e25f60f\n"
    },
    {
      "commit": "3a91309c30a7575776526ffe6e9a46dc648a59fe",
      "tree": "c52ace7e97c0bb907198acf344a08db8cec1886a",
      "parents": [
        "f9e0e191ad8d8ab1859de95ecb15a57d4bf32107"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Jan 10 00:26:17 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jan 13 08:29:46 2015 -0800"
      },
      "message": "ART: Hprof cleanup\n\nRefactor things a bit to make it easier to stream.\n\nAdd a simple test that dumps the heap and runs hprov-conf on it.\n\nChange-Id: I79a9ad37d4cf41fa8d63d039586aa80394d96005\n"
    },
    {
      "commit": "ad466adf38db74a9840659626858196091151a64",
      "tree": "feb296965a8a9659787a949e8e9aca0a7180774c",
      "parents": [
        "46af48acf4221a7f819d58dfffb576d0523ae285"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jan 08 16:28:08 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jan 09 15:04:27 2015 -0800"
      },
      "message": "Change hprof to use streaming\n\nPreviously, we compute the whole hprof dump in memory resulting in\n\u003e 50MB of memory usage for some apps (such as maps). This could\ncause the app to get killed by the low memory killer.\n\nThe solution works by doing the dump in 2 passes.\nThe first pass calculates the size of the dump.\nThe second pass starts by sending the DDMS header with the correct\nsize, then does the rest of the hprof dump by streaming and sending\ndata one HprofRecord at a time.\n\nBug: 18921793\nChange-Id: I7dd9f5cfe49799ba268095c994a8c2eb1fe493df\n"
    },
    {
      "commit": "4303ba97313458491e038d78efa041d41cf7bb43",
      "tree": "5a5873651db918416c9ff63f4bb06b6eb7f4c71a",
      "parents": [
        "a971100be7870544360fa8a46311ef7f5adb6902"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Nov 06 01:00:46 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 18 17:26:06 2014 -0800"
      },
      "message": "ART: Track Flush \u0026 Close in FdFile\n\nImplement a check that aborts when a file hasn\u0027t been explicitly\nflushed and closed when it is destructed.\n\nAdd WARN_UNUSED to FdFile methods.\n\nUpdate dex2oat, patchoat, scoped_flock and some gtests to pass with\nthis.\n\n(cherry picked from commit 9433ec60b325b708b9fa87e699ab4a6565741494)\n\nChange-Id: I9ab03b1653e69f44cc98946dc89d764c3e045dd4\n"
    },
    {
      "commit": "575e78c41ece0dec969d31f46be563d4eb7ae43b",
      "tree": "16906df0ba0912a6cb01b3139ba7c60d5f9d09b7",
      "parents": [
        "2998e9cdc9f19c30c4944a4726ed9f147de79ebd"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 03 23:41:03 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 03 23:41:03 2014 -0800"
      },
      "message": "ART: Replace COMPILE_ASSERT with static_assert (runtime)\n\nReplace all occurrences of COMPILE_ASSERT in the runtime tree.\n\nChange-Id: I01e420899c760094fb342cc6cb9e692dd670a0b2\n"
    },
    {
      "commit": "fc787ecd91127b2c8458afd94e5148e2ae51a1f5",
      "tree": "ef48c0f511ee9bf4ed85607cc4d530bace7e6cae",
      "parents": [
        "8fa8c904f7c783204a1dc9438429391d256658da"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 09 21:56:44 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 09 22:22:46 2014 -0700"
      },
      "message": "Enable -Wimplicit-fallthrough.\n\nFalling through switch cases on a clang build must now annotate the fallthrough\nwith the FALLTHROUGH_INTENDED macro.\nBug: 17731372\n\nChange-Id: I836451cd5f96b01d1ababdbf9eef677fe8fa8324\n"
    },
    {
      "commit": "ae1ad009f7e531aaf95ffbc080a4ad8769c1d4d0",
      "tree": "0a14116d1c8522ccbbd4afaea8d6e91657eaafd6",
      "parents": [
        "719ca5ade262c5ace6a2ea32a3e4e48619d8439e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jul 18 17:58:22 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jul 21 11:58:34 2014 -0700"
      },
      "message": "Add detection of zygote vs app vs image objects in hprof\n\nBug: 16406673\nChange-Id: Ic3e4a809c00b8379e42b074f9032ac106138be67\n"
    },
    {
      "commit": "3280517651195602253ed92a2749964e96cad27e",
      "tree": "9e91047bf950a7eddbb551534dc10078be74251c",
      "parents": [
        "6dfa4188d5cbe7cb1c89011cda80e1c261ae30f0"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Jul 04 16:24:03 2014 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Jul 17 21:06:19 2014 +0100"
      },
      "message": "Fix identifier size in the heap dump.\n\nWe\u0027re using addresses as IDs and previously we would have written\nsizeof(void*) as the identifier size in the header. Heap references\nare actually uint32_t so writting 4 bytes should be enough.\n\nBug: 16016862\nChange-Id: I785abf5030681b6009370b7b2d7552e8b4b54e67\n"
    },
    {
      "commit": "22d5e735f403c57525fe868304c7123f0ce66399",
      "tree": "2458684efa56f0b800dd75a9dedd0449f76f581f",
      "parents": [
        "fbde4dd1cb6db729e3f3ee5bdae0cdd824d73054"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jul 15 22:23:51 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jul 16 06:13:46 2014 -0700"
      },
      "message": "Remove object_utils.h.\n\nBreak into object_lock, field_helper and method_helper.\nClean up header files following this.\nAlso tidy some of the Handle code in response to compiler errors when resolving\nthe changes in this CL.\n\nChange-Id: I73e63015a0f02a754d0866bfaf58208aebcaa295\n"
    },
    {
      "commit": "61c5ebc6aee2cac1c363de6fbdac25ada1697fdb",
      "tree": "444936c3e3718b692ba7f1981b863190f26b4ed7",
      "parents": [
        "25c4f6a25b3de9b9d7ca5162f1629753a0b7f003"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jun 05 17:42:53 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jun 06 13:12:17 2014 -0700"
      },
      "message": "Change FieldHelper to use a handle.\n\nFixed compaction bugs related to FieldHelper::GetType in:\nartSet32InstanceFromCode\nSetFieldValueImpl\nCheckReceiver\nField_set\ninterpreter::DoFieldPut\nMethodVerifier::VerifyISGet\nMethodVerifier::VerifyISPut\nMethodVerifier::VerifyIGetQuick\n\nBug: 13077697\n\nChange-Id: I7de9ded2893b5568d43e4daa86fd135bf5508b72\n"
    },
    {
      "commit": "700a402244a1a423da4f3ba8032459f4b65fa18f",
      "tree": "4c22fcda04d271bd55a37aff30650214af17a90c",
      "parents": [
        "047c11adcbcbc0bcf210defdfcbada763961ffee"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 19 16:49:03 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 19 22:27:39 2014 -0700"
      },
      "message": "Now we have a proper C++ library, use std::unique_ptr.\n\nAlso remove the Android.libcxx.mk and other bits of stlport compatibility\nmechanics.\n\nChange-Id: Icdf7188ba3c79cdf5617672c1cfd0a68ae596a61\n"
    },
    {
      "commit": "893263b7d5bc2ca43a91ecb8071867f5134fc60a",
      "tree": "a99238843a9caad00122c8f7d13e031f5d81bc38",
      "parents": [
        "2fece5941f12395a94e742313e7059a9e419994d"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 04 11:07:42 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 04 14:21:58 2014 -0800"
      },
      "message": "Avoid marking old class linker and intern table roots during pause.\n\nThe new root visiting logic has a concept of a root log which holds\nnew roots which were added since the start of the GC. This is an\noptimization since it lets us only mark these newly added roots\nduring the pause (or pre-cleaning) since the other roots intern table\nand class linker roots were marked concurrently at the start of the\nGC.\n\nBefore (EvaluateAndApplyChanges):\nMarkConcurrentRoots:\tSum: 605.193ms\nAfter:\nMarkConcurrentRoots:\tSum: 271.858ms\n\nThis should also reduce pathological GC pauses which used to be able\nto happen when the intern table or class linker became \"dirty\"\nduring the concurrent GC.\n\nChange-Id: I433fab021f2c339d50c35aaae7161a50a0901dec\n"
    },
    {
      "commit": "815873ecc312b1d231acce71e1a16f42cdaf09f2",
      "tree": "18ba2fa951775e60b240271bfe975e6e2cfc654c",
      "parents": [
        "2befd09cf4fe89a18a655f3e1dd310831bfa769f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Feb 13 18:02:13 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 18 10:45:12 2014 -0800"
      },
      "message": "Change root visitor to use Object**.\n\nSimplifies code and improves the performance of root visiting since\nwe usually don\u0027t need to check to see if the object moved.\n\nChange-Id: Iba998f5a15ae1fa1b53ca5226dd2168a411196cf\n"
    },
    {
      "commit": "83c8ee000d525017ead8753fce6bc1020249b96a",
      "tree": "d5167ed15dee2629905ac3640b6ea0578d4ae312",
      "parents": [
        "7cba217ab0661d74deccbb97160cdf60b74d4ea3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jan 28 14:50:23 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 11 10:40:10 2014 -0800"
      },
      "message": "Add root types and thread id to root visiting.\n\nEnables us to pass the root type and thread id to hprof.\n\nBug: 12680863\nChange-Id: I6a0f1f9e3aa8f9b4033d695818ae7ca3460d67cb\n"
    },
    {
      "commit": "ef7d42fca18c16fbaf103822ad16f23246e2905d",
      "tree": "c67eea52a349c2ea7f2c3bdda8e73933c05531a8",
      "parents": [
        "822115a225185d2896607eb08d70ce5c7099adef"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jan 06 12:55:46 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Feb 06 23:20:27 2014 -0800"
      },
      "message": "Object model changes to support 64bit.\n\nModify mirror objects so that references between them use an ObjectReference\nvalue type rather than an Object* so that functionality to compress larger\nreferences can be captured in the ObjectRefererence implementation.\nObjectReferences are 32bit and all other aspects of object layout remain as\nthey are currently.\n\nExpand fields in objects holding pointers so they can hold 64bit pointers. Its\nexpected the size of these will come down by improving where we hold compiler\nmeta-data.\nStub out x86_64 architecture specific runtime implementation.\nModify OutputStream so that reads and writes are of unsigned quantities.\nMake the use of portable or quick code more explicit.\nTemplatize AtomicInteger to support more than just int32_t as a type.\nAdd missing, and fix issues relating to, missing annotalysis information on the\nmutator lock.\nRefactor and share implementations for array copy between System and uses\nelsewhere in the runtime.\nFix numerous 64bit build issues.\n\nChange-Id: I1a5694c251a42c9eff71084dfdd4b51fff716822\n"
    },
    {
      "commit": "e9c36b34efb7460f59c6766e526c9b0de8da70b3",
      "tree": "5694423b3debc675764f6364785090a6956bc371",
      "parents": [
        "3e669dba962dc5291de0642eb46ede107be4e5a4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 21 15:49:16 2013 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 21 17:24:18 2013 +0000"
      },
      "message": "Avoid some string allocations.\n\nAlso avoid building a string one character at a time.\n\nChange-Id: I3db26226c620a730b95637d5bfc23e2d4715cfb9\n"
    },
    {
      "commit": "423d2a3dcbb260b020efb5da59f784c9f02accbf",
      "tree": "79ed739e6072f8308c1cd880f9420a1c63539c95",
      "parents": [
        "b048dd2b662c19644361f4396a1e8d6213445ee8"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 12 17:33:56 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 13 10:30:24 2013 -0700"
      },
      "message": "Add support for changing roots through the root visitor callback.\n\nNeeded for copying collectors.\n\nChange-Id: Icc4a342a57e0cfb79587edb02ef8c85e08808877\n"
    },
    {
      "commit": "ea46f950e7a51585db293cd7f047de190a482414",
      "tree": "9dddc8073547a2dcb58a19e1728932a89cb149c3",
      "parents": [
        "5e3572709b5a5d59957f835db4f73760ecef08da"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jul 30 01:26:50 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 13 18:09:46 2013 -0700"
      },
      "message": "Refactor java.lang.reflect implementation\n\nCherry-picked from commit ed41d5c44299ec5d44b8514f6e17f802f48094d1.\n\nMove to ArtMethod/Field instead of AbstractMethod/Field and have\njava.lang.reflect APIs delegate to ArtMethod/ArtField.\n\nBug: 10014286.\n\nChange-Id: Iafc1d8c5b62562c9af8fb9fd8c5e1d61270536e7\n"
    },
    {
      "commit": "7934ac288acfb2552bb0b06ec1f61e5820d924a4",
      "tree": "43f3acd8af7fd34d4ae7b64f6e06bb8429d74bb8",
      "parents": [
        "fb331d7ca004f39608fcfdae49d38df90c702ea9"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 26 10:54:15 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 26 11:55:10 2013 -0700"
      },
      "message": "Fix cpplint whitespace/comments issues\n\nChange-Id: Iae286862c85fb8fd8901eae1204cd6d271d69496\n"
    },
    {
      "commit": "2d88862f0752a7a0e65145b088f49dabd49d4284",
      "tree": "3fac6bbd9a0ff3836f361e46579151c8a93420b6",
      "parents": [
        "751d4ed43e8118f145edf18db4d987daf7dabbae"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jul 18 17:02:00 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jul 18 17:02:52 2013 -0700"
      },
      "message": "Fixing cpplint readability/casting issues\n\nChange-Id: I6821da0e23737995a9b884a04e9b63fac640cd05\n"
    },
    {
      "commit": "fc0e3219edc9a5bf81b166e82fd5db2796eb6a0d",
      "tree": "5fc7f5b941724a62f8e3411df09fae431ff5e3cf",
      "parents": [
        "56d947fbc9bc2992e2f93112fafb73e50d2aaa7a"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 17 14:40:12 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 17 16:49:05 2013 -0700"
      },
      "message": "Fix multiple inclusion guards to match new pathnames\n\nChange-Id: Id7735be1d75bc315733b1773fba45c1deb8ace43\n"
    },
    {
      "commit": "7940e44f4517de5e2634a7e07d58d0fb26160513",
      "tree": "ac90242d96229a6942f6e24ab137bc1f8f2e0025",
      "parents": [
        "5cd9e3b122f276f610980cbaf0d2ad6ed4cd9088"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 12 13:46:57 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 12 17:49:01 2013 -0700"
      },
      "message": "Create separate Android.mk for main build targets\n\nThe runtime, compiler, dex2oat, and oatdump now are in seperate trees\nto prevent dependency creep.  They can now be individually built\nwithout rebuilding the rest of the art projects. dalvikvm and jdwpspy\nwere already this way. Builds in the art directory should behave as\nbefore, building everything including tests.\n\nChange-Id: Ic6b1151e5ed0f823c3dd301afd2b13eb2d8feb81\n"
    }
  ]
}
