)]}'
{
  "commit": "70a3075d40154053ad90d342b3dcb1b795c73dbb",
  "tree": "8740f15b26908f8ab247b3fc4c96cfaaf88140c9",
  "parents": [
    "cb76d5a4c4a74f4ff0bd4db5069f02fe4679a5ed"
  ],
  "author": {
    "name": "Julia Lawall",
    "email": "julia@diku.dk",
    "time": "Wed Oct 15 16:51:04 2008 +0100"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Thu Oct 16 15:06:54 2008 -0700"
  },
  "message": "FRV: Eliminate NULL test and memset after alloc_bootmem\n\nAs noted by Akinobu Mita in patch b1fceac2b9e04d278316b2faddf276015fc06e3b,\nalloc_bootmem and related functions never return NULL and always return a\nzeroed region of memory.  Thus a NULL test or memset after calls to these\nfunctions is unnecessary.\n\n arch/frv/mm/init.c |    2 --\n 1 file changed, 2 deletions(-)\n\nThis was fixed using the following semantic patch.\n(http://www.emn.fr/x-info/coccinelle/)\n\n// \u003csmpl\u003e\n@@\nexpression E;\nstatement S;\n@@\n\nE \u003d \\(alloc_bootmem\\|alloc_bootmem_low\\|alloc_bootmem_pages\\|alloc_bootmem_low_pages\\)(...)\n... when !\u003d E\n(\n- BUG_ON (E \u003d\u003d NULL);\n|\n- if (E \u003d\u003d NULL) S\n)\n\n@@\nexpression E,E1;\n@@\n\nE \u003d \\(alloc_bootmem\\|alloc_bootmem_low\\|alloc_bootmem_pages\\|alloc_bootmem_low_pages\\)(...)\n... when !\u003d E\n- memset(E,0,E1);\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1b851db341865420257f388a9fc9e31828a1d0e8",
      "old_mode": 33188,
      "old_path": "arch/frv/mm/init.c",
      "new_id": "0708284f85fb3d690d4e649366ea056282a171b8",
      "new_mode": 33188,
      "new_path": "arch/frv/mm/init.c"
    }
  ]
}
