)]}'
{
  "commit": "bfdd1a93084f55d01448648e98a3fb3e97e0e8c1",
  "tree": "cd0d3f7444c46919baf569f074f9a88186d3efd4",
  "parents": [
    "58150ed59b69c2e6c35379d96f4f43c5f5838d03"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Fri Jun 29 16:26:38 2018 -0400"
  },
  "committer": {
    "name": "CQ bot account: commit-bot@chromium.org",
    "email": "commit-bot@chromium.org",
    "time": "Tue Jul 03 22:57:56 2018 +0000"
  },
  "message": "Give SSL_SESSION a destructor.\n\nPreviously we\u0027d partially attempted the ssl_st / bssl::SSLConnection\nsubclassing split, but that gets messy when we actually try to add a\ndestructor, because CRYPTO_EX_DATA\u0027s cleanup function needs an ssl_st*,\nnot a bssl::SSLConnection*. Downcasting is technically undefined at this\npoint and will likely offend some CFI-like check.\n\nMoreover, it appears that even with today\u0027s subclassing split,\nNew\u003cSSL\u003e() emits symbols like:\n\nW ssl_st*\u0026 std::forward\u003cssl_st*\u0026\u003e(std::remove_reference\u003cssl_st*\u0026\u003e::type\u0026)\n\nThe compiler does not bother emitting them in optimized builds, but it\ndoes suggest we can\u0027t really avoid claiming the ssl_st type name at the\nsymbol level, short of doing reinterpret_casts at all API boundaries.\nAnd, of course, we\u0027ve already long claimed it at the #include level.\n\nSo I\u0027ve just left this defining directly on ssl_session_st. The cost is\nwe need to write some silly \"bssl::\" prefixes in the headers, but so it\ngoes. In the likely event we change our minds again, we can always\nrevise this.\n\nChange-Id: Ieb429e8eaabe7c2961ef7f8d9234fb71f19a5e2a\nReviewed-on: https://boringssl-review.googlesource.com/29587\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\nCQ-Verified: CQ bot account: commit-bot@chromium.org \u003ccommit-bot@chromium.org\u003e\nReviewed-by: Adam Langley \u003cagl@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "cfba8396a2d7a0979dbe95bacd8e83fb685e03d3",
      "old_mode": 33188,
      "old_path": "ssl/handshake.cc",
      "new_id": "c1837a8c83eb8e820cfb8a9f586d81d7f2829747",
      "new_mode": 33188,
      "new_path": "ssl/handshake.cc"
    },
    {
      "type": "modify",
      "old_id": "c649eba491b3c6a73b9042ec92d1ac8f459bb594",
      "old_mode": 33188,
      "old_path": "ssl/handshake_client.cc",
      "new_id": "eba21f395e3229905f661144be9b55347c51a7ac",
      "new_mode": 33188,
      "new_path": "ssl/handshake_client.cc"
    },
    {
      "type": "modify",
      "old_id": "65a6299091055b69a34a990af123bf20c3ff8d5e",
      "old_mode": 33188,
      "old_path": "ssl/handshake_server.cc",
      "new_id": "edbe617e8e01efcb139c3c62ae17294b046095ad",
      "new_mode": 33188,
      "new_path": "ssl/handshake_server.cc"
    },
    {
      "type": "modify",
      "old_id": "d66b418cfc18af199519e2d4061464f96172a6e4",
      "old_mode": 33188,
      "old_path": "ssl/internal.h",
      "new_id": "52320f28de41b9c0ede9442f23f7cb9e6f453e02",
      "new_mode": 33188,
      "new_path": "ssl/internal.h"
    },
    {
      "type": "modify",
      "old_id": "54e87bf0f15cbf8a445dc93940eb196a11198ca9",
      "old_mode": 33188,
      "old_path": "ssl/ssl_asn1.cc",
      "new_id": "5dfacb227ab0bdbcf00fc517e0e14f25d1d0a8b1",
      "new_mode": 33188,
      "new_path": "ssl/ssl_asn1.cc"
    },
    {
      "type": "modify",
      "old_id": "8b869c8a7205fcc08d763a94066607f35f24b4b3",
      "old_mode": 33188,
      "old_path": "ssl/ssl_cert.cc",
      "new_id": "04c77ad596cb1d9830042ab68a05a48d8f29f93c",
      "new_mode": 33188,
      "new_path": "ssl/ssl_cert.cc"
    },
    {
      "type": "modify",
      "old_id": "a153c603fd4adf4c7b2bbb6af91b47e2df185127",
      "old_mode": 33188,
      "old_path": "ssl/ssl_lib.cc",
      "new_id": "0363e32280afc453c27f86a2f7d705152e6507fd",
      "new_mode": 33188,
      "new_path": "ssl/ssl_lib.cc"
    },
    {
      "type": "modify",
      "old_id": "a2a1482e0084bd368a46af87ddd06428b012ef23",
      "old_mode": 33188,
      "old_path": "ssl/ssl_session.cc",
      "new_id": "379cea793502d8b33544b7c7fe02bc4b9b32cc51",
      "new_mode": 33188,
      "new_path": "ssl/ssl_session.cc"
    },
    {
      "type": "modify",
      "old_id": "0af4167a058c5490bf401c78027d17e7acf7b7c3",
      "old_mode": 33188,
      "old_path": "ssl/ssl_x509.cc",
      "new_id": "4f2fc9e2c3f7126a63dbac33e1ba5e7470004c08",
      "new_mode": 33188,
      "new_path": "ssl/ssl_x509.cc"
    },
    {
      "type": "modify",
      "old_id": "6db7de76fcb2fac03604f91954da06dc2ad82c06",
      "old_mode": 33188,
      "old_path": "ssl/t1_lib.cc",
      "new_id": "49c895551f7230853fbfcb562c96573697134929",
      "new_mode": 33188,
      "new_path": "ssl/t1_lib.cc"
    },
    {
      "type": "modify",
      "old_id": "495838caef9309b1aca2ded2090f05eeb39e1346",
      "old_mode": 33188,
      "old_path": "ssl/tls13_both.cc",
      "new_id": "9149e7616a0262eebb580cabca609a51273de6fe",
      "new_mode": 33188,
      "new_path": "ssl/tls13_both.cc"
    },
    {
      "type": "modify",
      "old_id": "317b4d33572fc239020252b0be64d72c64b95605",
      "old_mode": 33188,
      "old_path": "ssl/tls13_client.cc",
      "new_id": "1f1d4b40e142008ae46445d02322f1159a072c58",
      "new_mode": 33188,
      "new_path": "ssl/tls13_client.cc"
    },
    {
      "type": "modify",
      "old_id": "481dc548b700a347a9a198ec27667a921406600d",
      "old_mode": 33188,
      "old_path": "ssl/tls13_server.cc",
      "new_id": "a113504a7c9f7055c65856db64739a5ccf309bd7",
      "new_mode": 33188,
      "new_path": "ssl/tls13_server.cc"
    }
  ]
}
