)]}'
{
  "commit": "519b8e16d67d00cc20e4cfcdcd3382e85bf42e5f",
  "tree": "44bea1e0651747dd7698e552054c0afbc0758169",
  "parents": [
    "e021457f27654ea0f1ec41963c6da62c168be853"
  ],
  "author": {
    "name": "Carlos Martín Nieto",
    "email": "cmn@dwim.me",
    "time": "Tue Apr 21 13:14:22 2015 +0200"
  },
  "committer": {
    "name": "Carlos Martín Nieto",
    "email": "cmn@dwim.me",
    "time": "Tue Apr 21 13:14:22 2015 +0200"
  },
  "message": "Introduce an indirection layer for pointers\n\nAs the Go runtime can move stacks at any point and the C code runs\nconcurrently with the rest of the system, we cannot assume that the\npayloads we give to the C code will stay valid for any particular\nduration.\n\nWe must therefore give the C code handles which we can then look up in\nour own list when the callbacks get called.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9496d2dc6ba7e924dbf0d5d01e8645af19e4dc8b",
      "old_mode": 33188,
      "old_path": "git.go",
      "new_id": "4f1a65e603f822c24b915712557a6dfa44d19281",
      "new_mode": 33188,
      "new_path": "git.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c0d1889cb4b75c7e69fe3298004ba8dbc3d60469",
      "new_mode": 33188,
      "new_path": "handles.go"
    }
  ]
}
