)]}'
{
  "commit": "18602745de52e5869f3865245c3c72986831dae2",
  "tree": "ca4bb29660efd441b1d3498ec670d1fe9191a5a3",
  "parents": [
    "ad2e032049d8e9460372e273eddb192c300b46dc"
  ],
  "author": {
    "name": "Geoff Thorpe",
    "email": "geoff@openssl.org",
    "time": "Tue Jan 09 00:02:09 2001 +0000"
  },
  "committer": {
    "name": "Geoff Thorpe",
    "email": "geoff@openssl.org",
    "time": "Tue Jan 09 00:02:09 2001 +0000"
  },
  "message": "This adds macros to implement (and/or declare) type-safe wrapper functions\naround the callbacks required in the LHASH code for the \"doall\" functions.\n\nAlso - fix the evil function pointer casting in the two lh_doall functions\nby deferring to a static utility function. Previously lh_doall() was\ninvoking lh_doall_arg() by casting the callback to the 2-parameter\nprototype and passing in a NULL argument. This appears to have been working\nthus far but it\u0027s not a hot idea. If the extra level of indirection becomes\na performance hit, we can just provide two virtually identical\nimplementations for each variant later on.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "874647af6bc3878739177f36275c23118e2aa696",
      "old_mode": 33188,
      "old_path": "crypto/lhash/lhash.c",
      "new_id": "9d815f0ca0c77c18ea2439d2667716bf9ce12060",
      "new_mode": 33188,
      "new_path": "crypto/lhash/lhash.c"
    },
    {
      "type": "modify",
      "old_id": "3c5355885f29d03b5350ed1007c445804aeade66",
      "old_mode": 33188,
      "old_path": "crypto/lhash/lhash.h",
      "new_id": "a6048a4b7d2a73bb2c18b46368e56f57d8947e5a",
      "new_mode": 33188,
      "new_path": "crypto/lhash/lhash.h"
    }
  ]
}
