)]}'
{
  "commit": "d0fa136ce22bb57638a1bf18e656602f53081ff3",
  "tree": "b28c81ccdfe238a0e655b3ab906095a7589c133b",
  "parents": [
    "15156cce0eed843d74ca06392144cad29c306ff7"
  ],
  "author": {
    "name": "Geoff Thorpe",
    "email": "geoff@openssl.org",
    "time": "Fri Dec 08 20:02:01 2000 +0000"
  },
  "committer": {
    "name": "Geoff Thorpe",
    "email": "geoff@openssl.org",
    "time": "Fri Dec 08 20:02:01 2000 +0000"
  },
  "message": "Next step in tidying up the LHASH code.\n\nDECLARE/IMPLEMENT macros now exist to create type (and prototype) safe\nwrapper functions that avoid the use of function pointer casting yet retain\ntype-safety for type-specific callbacks. However, most of the usage within\nOpenSSL itself doesn\u0027t really require the extra function because the hash\nand compare callbacks are internal functions declared only for use by the\nhash table. So this change catches all those cases and reimplements the\nfunctions using the base-level LHASH prototypes and does per-variable\ncasting inside those functions to convert to the appropriate item type.\n\nThe exception so far is in ssl_lib.c where the hash and compare callbacks\nare not static - they\u0027re exposed in ssl.h so their prototypes should not be\nchanged. In this last case, the IMPLEMENT_LHASH_*** macros have been left\nintact.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b7e50c73740dedf0c76ae2639bd58c397e709da9",
      "old_mode": 33188,
      "old_path": "apps/openssl.c",
      "new_id": "14cb93ee26af5bfeba289ebc1f1928d3893b8a08",
      "new_mode": 33188,
      "new_path": "apps/openssl.c"
    },
    {
      "type": "modify",
      "old_id": "64bbd971ab259b79f668ece46c83f1b37790dcfa",
      "old_mode": 33188,
      "old_path": "crypto/conf/conf_api.c",
      "new_id": "8216e64525912b0bb233eb467329e53f35d85334",
      "new_mode": 33188,
      "new_path": "crypto/conf/conf_api.c"
    },
    {
      "type": "modify",
      "old_id": "3b4de23775f70f9641e7560e462c4f9f7198f620",
      "old_mode": 33188,
      "old_path": "crypto/err/err.c",
      "new_id": "48eed688a6afb30343cfc3fde920c397aeabd7b1",
      "new_mode": 33188,
      "new_path": "crypto/err/err.c"
    },
    {
      "type": "modify",
      "old_id": "56ce7dddea60d1d03a433d30590e1776c00613f8",
      "old_mode": 33188,
      "old_path": "crypto/mem_dbg.c",
      "new_id": "8e48e25fbdb812cd11ac1605a8ad7e3b4b421023",
      "new_mode": 33188,
      "new_path": "crypto/mem_dbg.c"
    },
    {
      "type": "modify",
      "old_id": "ccf3a18726d781c3d047d02bd951377fa778ccf1",
      "old_mode": 33188,
      "old_path": "crypto/objects/o_names.c",
      "new_id": "a5b1aacd66831dae71aac806aef3ee7759bb29ff",
      "new_mode": 33188,
      "new_path": "crypto/objects/o_names.c"
    },
    {
      "type": "modify",
      "old_id": "6eb9f4886123ee0a692fad8d3790feef7c60b39c",
      "old_mode": 33188,
      "old_path": "crypto/objects/obj_dat.c",
      "new_id": "0057da29bd52654f5bafcf4851aaaa5418e7c903",
      "new_mode": 33188,
      "new_path": "crypto/objects/obj_dat.c"
    },
    {
      "type": "modify",
      "old_id": "685fc5560a76d36ed5b4951bc9853e07d84fa0ec",
      "old_mode": 33188,
      "old_path": "ssl/ssl_lib.c",
      "new_id": "c757ea874e638d885ff59f5e8985d69c0b88525a",
      "new_mode": 33188,
      "new_path": "ssl/ssl_lib.c"
    }
  ]
}
