)]}'
{
  "log": [
    {
      "commit": "7624d25dad2d1ba25969ae704fccf68649103ae5",
      "tree": "de72194b76a4e23e0b15ec4085447ae7e4425815",
      "parents": [
        "e1910f1d802dff79bba5ef61e1c4fd0b95f6e5b0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 02 14:40:15 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 13 11:43:22 2014 +0100"
      },
      "message": "Move quick frame info to OatQuickMethodHeader.\n\nRename OatMethodHeader to OatQuickMethodHeader, move frame\ninfo from OatMethodOffsets to OatQuickMethodHeader. Retrieve\nthe info from other places for non-quick methods (portable\ncompiled bytecode or jni stub, generic jni, runtime,\nabstract and proxy).\n\nThis change has a libcore/ companion CL\n  \"Remove ArtMethod\u0027s quick fields for frame size and spills.\"\n  https://android-review.googlesource.com/94164\n\nBug: 11767815\nChange-Id: I0e31a7875d76732e1ec479c86b9b5ca01203507f\n"
    },
    {
      "commit": "29a2648821ea4d0b5d3aecb9f835822fdfe6faa1",
      "tree": "2eb972b2b006e4d2842c8cf6a1d6631f90a39249",
      "parents": [
        "dbb8727b0b3ae73e84fb8db55e051336d6222add"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri May 02 15:27:29 2014 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri May 02 15:35:19 2014 -0700"
      },
      "message": "Move DecodedInstruction into MIR.\n\nChange-Id: I188dc7fef4f4033361c78daf2015b869242191c6\n"
    },
    {
      "commit": "c8f60a69a9f2420fc1ecafec612a667be8dcd547",
      "tree": "dff78a37faedcbe9964ba30ed69f8175365e9d7b",
      "parents": [
        "e1fced1d1805caec04b6e97d2b01a4977c6785c6"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 02 15:24:05 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Apr 07 17:14:39 2014 +0100"
      },
      "message": "Inlining synthetic accessors.\n\nBug: 11549140\nChange-Id: I0d6a38c51887f55563414c240ac42ee64bdb5426\n"
    },
    {
      "commit": "e1fced1d1805caec04b6e97d2b01a4977c6785c6",
      "tree": "ea5cf241f7237b6d1616301c46d3d184333ca10e",
      "parents": [
        "427ca38b0a6c6fd7dc0dbb380619e2b91b56cf1c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Apr 04 14:52:53 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Apr 07 16:59:13 2014 +0100"
      },
      "message": "Inlining setters that return one of their arguments.\n\nUseful for builder classes and synthetic setters. The latter\nare not inlined yet since they are static methods, i.e. they\ndon\u0027t use \"this\" as the object for IPUT.\n\nChange-Id: I3d34156c3629b837a0a95ccc34a8aae3f4a636d5\n"
    },
    {
      "commit": "73ed718e7b08d17fd2e4af9bceb5e74ac46db676",
      "tree": "54ffaf38ad27e3307ec2b43bb1993f40569e27d8",
      "parents": [
        "389e11db6ef350b806f7a3f0d7b7df23b0ab6e0c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 04 18:02:08 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 04 18:02:15 2014 -0700"
      },
      "message": "Revert \"Inlining setters that return one of their arguments.\"\n\nBug: 13817614\n\nThis reverts commit 8e40c3e662d852da87b6bcfe79355f96ab9e91c7.\n\nChange-Id: Ia7ed2d933514781150b2e0b9855244e383c60187\n"
    },
    {
      "commit": "389e11db6ef350b806f7a3f0d7b7df23b0ab6e0c",
      "tree": "fdeb0bd312f57bc57c244658660e00cc23453c45",
      "parents": [
        "818b4cf753d6e8a294f0fbe2e3bd9168eea9f762"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 04 18:02:04 2014 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 04 18:02:04 2014 -0700"
      },
      "message": "Revert \"Inlining synthetic accessors.\"\n\nThis reverts commit 505ebb0e7b42e7facc8354515b06333ee8b84b10.\n"
    },
    {
      "commit": "505ebb0e7b42e7facc8354515b06333ee8b84b10",
      "tree": "6f7adb2333b5a3b8b903097cf80f8b7896ed7d2e",
      "parents": [
        "8e40c3e662d852da87b6bcfe79355f96ab9e91c7"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 02 15:24:05 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Apr 04 17:25:17 2014 +0100"
      },
      "message": "Inlining synthetic accessors.\n\nBug: 11549140\nChange-Id: Ie0034a6840b1beaa3df92f26bf9d315119c81e34\n"
    },
    {
      "commit": "8e40c3e662d852da87b6bcfe79355f96ab9e91c7",
      "tree": "866b2a827ed70a36ba060bb6d79fa8f1fc4b9fcd",
      "parents": [
        "764c798b57b7baa04885fcdf5eba5708a01b9edc"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Apr 04 14:52:53 2014 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Apr 04 16:15:51 2014 +0100"
      },
      "message": "Inlining setters that return one of their arguments.\n\nUseful for builder classes and synthetic setters. The latter\nare not inlined yet since they are static methods, i.e. they\ndon\u0027t use \"this\" as the object for IPUT.\n\nChange-Id: I946cf570195be83ecec5fb32851bcaefad45f8a5\n"
    },
    {
      "commit": "2c87c4d999bccdff6cc60bf6af4871cca6e2c893",
      "tree": "73e2ed92aac81661708d4c8cfce3d026e7e9614c",
      "parents": [
        "0d9c02e661813abdf18b4e7544e204d2da719d20"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Mar 21 11:31:51 2014 +0100"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Mar 21 14:28:09 2014 +0100"
      },
      "message": "Support inlining detection from debugger.\n\nIn the context of the compiler, every method and field should be resolved. The\nInlineMethodAnalyser uses that property so we don\u0027t inline unresolved methods\nor methods accessing unresolved fields. In the context of the debugger, this is\nnot true. We may install a breakpoint in a method that\u0027s never been resolved\nyet for instance.\n\nThis CL weaks that property so we can detect getter/setter methods can be\ninlined even if they\u0027re not resolved yet. To differentiate both contexts, we\npass a null inline method pointer to InlineMethodAnalyser::AnalyseIGetMethod.\n\nBug: 12187616\nChange-Id: I247f315b9abd6b065d5a7ec4116de15a6cce7649\n"
    },
    {
      "commit": "e3e0260c23d8999b9433715ac7ee5296ee2fd633",
      "tree": "8f13f12f929e36d9366583934ebb4a20b4ce09b7",
      "parents": [
        "ca46e2003360b44f4c043f6da87092592bc3d6d6"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Mar 12 15:42:41 2014 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Mar 12 17:59:23 2014 +0000"
      },
      "message": "Move inline method detection to runtime.\n\nThe debugger needs this for selective deoptimization.\n\nChange-Id: I8100000449b56e619288fb05d41ea6f02b53b334\n"
    }
  ]
}
