)]}'
{
  "log": [
    {
      "commit": "ef3b17732afb70ac70075a0334cb7074761bd507",
      "tree": "c2a967d1ff38c599cf30e3597407d0331992cbc6",
      "parents": [
        "0bf76878a7784b4e0f21ace82d891bf0b760aaac"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Jun 30 13:57:39 2015 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Jun 30 13:57:39 2015 +0200"
      },
      "message": "Properly delete temp files during run-test\n\nBug: 22190679\nChange-Id: Ic5cb98d296df924d9ee724c757c526ad70744612\n"
    },
    {
      "commit": "7403503d9ba33463e850b7e87a1b0430372d7003",
      "tree": "61444b6255e52f0728c3f3e0b8b8c4ca982307ca",
      "parents": [
        "04a77807a657e86495e7ececf7dc530fa5003c4c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jan 27 16:12:08 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Feb 02 10:35:13 2015 -0800"
      },
      "message": "ART: Fix run-tests for emulator\n\nOn a standard emulator, there is no sdcard emulation, so trying to\ncreate a temp file in /sdcard will fail - it will try to create in\nthe root file system, which is read-only.\n\nChange-Id: If7d1ad82db156177a5be58c2f79ed730cf7ab6b9\n"
    },
    {
      "commit": "270a0e16c3b8e5b95cbfdbd8996ac137c7c6322b",
      "tree": "2800649d19ffcdc891118a458f6b0169022d93e0",
      "parents": [
        "951d70b42400453f9d1746d155b8337c07c86acc"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Jan 16 19:49:09 2015 +0100"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Jan 23 17:26:45 2015 +0100"
      },
      "message": "Fix exception handling during deoptimization\n\nWhen interpreting a deoptimized shadow frame, we may start with a\npending exception thrown by a previous deoptimized shadow frame (from\na previous invoke). Therefore, we need to handle it before executing\nany instruction, otherwise we execute incorrect code.\n\nBecause we need the DEX pc of the throwing instruction to find a\nmatching catch handler, we initialize deoptimized shadow frames with\nthe current DEX pc at the time the stack is deoptimized.\nWhen we are about to interpret a deoptimized shadow frame, we need to\nupdate the shadow frame with the DEX pc of the next instruction to\ninterpret. There are three cases:\n- if there is no pending exception, this is the instruction following\nthe current one.\n- if there is a pending exception and we found a matching catch\nhandler, this is the first instruction of this handler.\n- if there is a pending exception but there is no matching catch\nhandler, we do not execute the deoptimized shadow frame and continue\nto its caller.\n\nThe verifier now fails when a method starts with a move-exception\ninstruction. Indeed we cannot start executing a method with a pending\nexception.\n\nBug: 19057915\nBug: 19041195\nBug: 18607595\nChange-Id: I355ac81e6ac098edc7e3cc8c13dbfa24a2969ab2\n"
    }
  ]
}
