)]}'
{
  "commit": "e62156d8292eb288ad456d6ba1eb96db7ce2a6b6",
  "tree": "21fa9d31d24c75a79521af09a2f2666a6dc51161",
  "parents": [
    "650984cd20fe526a6eef0c014fbd92a06aeb1f7a"
  ],
  "author": {
    "name": "Valentin Bartenev",
    "email": "vbart@nginx.com",
    "time": "Wed Jan 22 04:58:19 2014 +0400"
  },
  "committer": {
    "name": "Valentin Bartenev",
    "email": "vbart@nginx.com",
    "time": "Wed Jan 22 04:58:19 2014 +0400"
  },
  "message": "SPDY: use frame-\u003enext pointer to chain free frames.\n\nThere is no need in separate \"free\" pointer and like it is for ngx_chain_t\nthe \"next\" pointer can be used.  But after this change successfully handled\nframe should not be accessed, so the frame handling cycle was improved to\nstore pointer to the next frame before processing.\n\nAlso worth noting that initializing \"free\" pointer to NULL in the original\ncode was surplus.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a040a388f0bfbd57a8c0009816345d132bf13649",
      "old_mode": 33188,
      "old_path": "src/http/ngx_http_spdy.c",
      "new_id": "b5aa9931c60a296fcffcffe7de5cb8d047e3a3fa",
      "new_mode": 33188,
      "new_path": "src/http/ngx_http_spdy.c"
    },
    {
      "type": "modify",
      "old_id": "49b07caefa83d9d640cbf747f30041967c08897f",
      "old_mode": 33188,
      "old_path": "src/http/ngx_http_spdy.h",
      "new_id": "3dab0fecba955d464e1f7f22e61c624955d556fd",
      "new_mode": 33188,
      "new_path": "src/http/ngx_http_spdy.h"
    },
    {
      "type": "modify",
      "old_id": "7a7559ee8b5902c1f772c0814a11bca901baa3d2",
      "old_mode": 33188,
      "old_path": "src/http/ngx_http_spdy_filter_module.c",
      "new_id": "bc39ec2aa1f06d95762e5453be911f1ddf6986ad",
      "new_mode": 33188,
      "new_path": "src/http/ngx_http_spdy_filter_module.c"
    }
  ]
}
