)]}'
{
  "commit": "922ac25c9f4b5dc4c48ff12bfd14a98bdeb6ff0a",
  "tree": "8c467994a89e65b231a3905a5e9d309ff1833139",
  "parents": [
    "c5484d7c0a533de6198cb474097e33b174f9c565"
  ],
  "author": {
    "name": "André Goddard Rosa",
    "email": "andre.goddard@gmail.com",
    "time": "Mon Dec 14 18:01:01 2009 -0800"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Tue Dec 15 08:53:32 2009 -0800"
  },
  "message": "vsprintf: reuse almost identical simple_strtoulX() functions\n\nThe difference between simple_strtoul() and simple_strtoull() is just\nthe size of the variable used to keep track of the sum of characters\nconverted to numbers:\n\nunsigned long simple_strtoul() {...}\nunsigned long long simple_strtoull(){...}\n\nBoth are same size on my Core 2/gcc 4.4.1.\nOverflow condition is not checked on both functions, so an extremely large\nstring can break these functions so that they don\u0027t even notice it.\n\nAs we do not care for overflowing on these functions, always keep the sum\nusing the larger variable around (unsigned long long) on simple_strtoull()\nand cast it to (unsigned long) on simple_strtoul(), which then becomes\njust a wrapper around simple_strtoull().\n\nCode size decreases by 304 bytes:\n   text    data     bss     dec     hex filename\n  15534       0       8   15542    3cb6 vsprintf.o (ex lib/lib.a-BEFORE)\n  15230       0       8   15238    3b86 vsprintf.o (ex lib/lib.a-AFTER)\n\nSigned-off-by: André Goddard Rosa \u003candre.goddard@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a315138ece55ffd73e5787198545145af5ab540c",
      "old_mode": 33188,
      "old_path": "lib/vsprintf.c",
      "new_id": "c50733a690f03854d7c12d128a560ea120a21c54",
      "new_mode": 33188,
      "new_path": "lib/vsprintf.c"
    }
  ]
}
