)]}'
{
  "commit": "ce572d6e9bde836016b200169abf81e71b2a55bf",
  "tree": "318e6c2804b30edd49a567a411c9f3f3ca700890",
  "parents": [
    "4f76523ffef78ba8650c3d4905c6ff90b82dc303"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Tue Oct 22 12:35:44 2024 -0400"
  },
  "committer": {
    "name": "Boringssl LUCI CQ",
    "email": "boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue Oct 22 21:57:56 2024 +0000"
  },
  "message": "Standardize on Init vs InitForOverwrite for value vs default initialization\n\nC++ is fun and has two notions of \"default\" initialization, `new T` and\n`new T()`. These are default initialization and value initialization,\nrespectively.\n\nThey are identical except that POD types are uninit when\ndefault-initialized and zero when value-initialized. InplaceVector\npicked the safer option by default and called the other one\nFooMaybeUninit.  Array is older and uses the less safe one (it\u0027s almost\nalways the one we want; we usually allocate an array to immediately fill\nit).\n\nWhile MaybeUninit does capture what you do with it, it is slightly\nambiguous, as seen in Array\u0027s internal implementation: uninitialized\ncould also mean we haven\u0027t gotten around to initialize it at all. I.e.\nwe need to use a function like std::uninitialized_value_construct_n\ninstead of normal functions in \u003calgorithm\u003e.\n\nC++20 has std::make_unique and std::make_unique_for_overwrite to capture\nthe two. This seems as fine a naming convention as any, so switch to it.\nAlong the way, make the internal bssl::Array default to the safer one.\nThis lets us remove a couple of memset(0)\u0027s.\n\nChange-Id: I32cede231da051a854e6251e10b87f8e4dd06ee6\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/72268\nReviewed-by: Nick Harper \u003cnharper@chromium.org\u003e\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f8ac34a20fbd5cf583274e8a69d4b64c3871a270",
      "old_mode": 33188,
      "old_path": "ssl/d1_both.cc",
      "new_id": "e0c2614a5cae1d86460e315952b66f16a339c8e1",
      "new_mode": 33188,
      "new_path": "ssl/d1_both.cc"
    },
    {
      "type": "modify",
      "old_id": "8c4a42ce838aa5d65e5063a31de3ced43d9213a0",
      "old_mode": 33188,
      "old_path": "ssl/encrypted_client_hello.cc",
      "new_id": "f9686fe652e31ecb96cbfe119a5623acc5d8c8a6",
      "new_mode": 33188,
      "new_path": "ssl/encrypted_client_hello.cc"
    },
    {
      "type": "modify",
      "old_id": "c9424c98b8e0e026660b0fb64738958f9a299af3",
      "old_mode": 33188,
      "old_path": "ssl/extensions.cc",
      "new_id": "ad4bf8151b27392ee2b1d5d37f2f09fd04f662a7",
      "new_mode": 33188,
      "new_path": "ssl/extensions.cc"
    },
    {
      "type": "modify",
      "old_id": "6f5c7e2502b70c44c82d39e109380dca17b9a5b9",
      "old_mode": 33188,
      "old_path": "ssl/handoff.cc",
      "new_id": "d3172693876abebdc8af987177aebf2a08e7772d",
      "new_mode": 33188,
      "new_path": "ssl/handoff.cc"
    },
    {
      "type": "modify",
      "old_id": "f87e000029c4d52acf832a725a9723e54d245edf",
      "old_mode": 33188,
      "old_path": "ssl/handshake_client.cc",
      "new_id": "031ed81ff0ea6d06af237b335f4dea96b792e98c",
      "new_mode": 33188,
      "new_path": "ssl/handshake_client.cc"
    },
    {
      "type": "modify",
      "old_id": "0eb037bef9ae509a3777d91924fc0ca64a8321b0",
      "old_mode": 33188,
      "old_path": "ssl/handshake_server.cc",
      "new_id": "1b292a72834678e3e3ac4a142cae6dfb9148bdf4",
      "new_mode": 33188,
      "new_path": "ssl/handshake_server.cc"
    },
    {
      "type": "modify",
      "old_id": "c4a36acf439613a99619bdceaf9ba2c25be1044c",
      "old_mode": 33188,
      "old_path": "ssl/internal.h",
      "new_id": "4a1f84c4c4527c72d161432641f0db64bfc8515e",
      "new_mode": 33188,
      "new_path": "ssl/internal.h"
    },
    {
      "type": "modify",
      "old_id": "97e69ff901e13f5156892a5b7f6737bae138b2c3",
      "old_mode": 33188,
      "old_path": "ssl/ssl_cipher.cc",
      "new_id": "48f90a17cf2518ef8429e71cb9ea3c3d49a1a977",
      "new_mode": 33188,
      "new_path": "ssl/ssl_cipher.cc"
    },
    {
      "type": "modify",
      "old_id": "d5df82e5632043b4c125a403d0235c182a6fc726",
      "old_mode": 33188,
      "old_path": "ssl/ssl_credential.cc",
      "new_id": "b5282b8487d4f8a24330eed232dd1776c60aad33",
      "new_mode": 33188,
      "new_path": "ssl/ssl_credential.cc"
    },
    {
      "type": "modify",
      "old_id": "258d39de21a5b18856b67255d1c3bfe72c6d09ab",
      "old_mode": 33188,
      "old_path": "ssl/ssl_internal_test.cc",
      "new_id": "f5982a2bbce05db05be7560924696d4124b32f58",
      "new_mode": 33188,
      "new_path": "ssl/ssl_internal_test.cc"
    },
    {
      "type": "modify",
      "old_id": "88144b0602d82c7b31fc929a0ed732973bc36337",
      "old_mode": 33188,
      "old_path": "ssl/ssl_key_share.cc",
      "new_id": "0342e62b4e1f71537f0f06974f2ba301bb6c6ffa",
      "new_mode": 33188,
      "new_path": "ssl/ssl_key_share.cc"
    },
    {
      "type": "modify",
      "old_id": "cbb5cbf84386c4ab336c9227a8041741236dec45",
      "old_mode": 33188,
      "old_path": "ssl/ssl_lib.cc",
      "new_id": "ef4b7d5dd7135e7573669f0592fbb19a07e4ade9",
      "new_mode": 33188,
      "new_path": "ssl/ssl_lib.cc"
    },
    {
      "type": "modify",
      "old_id": "76ba0849d064489c1261579def57b9fa1ddcd0e8",
      "old_mode": 33188,
      "old_path": "ssl/ssl_privkey.cc",
      "new_id": "14a8b67e98c13a45eb160d6349b6f9ebdfaf8407",
      "new_mode": 33188,
      "new_path": "ssl/ssl_privkey.cc"
    },
    {
      "type": "modify",
      "old_id": "a13629e68f128ddcb3937e08c53fb445fc6cee31",
      "old_mode": 33188,
      "old_path": "ssl/t1_enc.cc",
      "new_id": "fb9ae89b6b8199270b796f0ce19fbae176b0408a",
      "new_mode": 33188,
      "new_path": "ssl/t1_enc.cc"
    },
    {
      "type": "modify",
      "old_id": "24da90ab69f09fbd082537b18b8fc17013c989e2",
      "old_mode": 33188,
      "old_path": "ssl/tls13_client.cc",
      "new_id": "7082d16ee3690cbae3968be7f728d50bb117ecad",
      "new_mode": 33188,
      "new_path": "ssl/tls13_client.cc"
    },
    {
      "type": "modify",
      "old_id": "db59f71e4bdccf2b88f153723532098653b3e9a2",
      "old_mode": 33188,
      "old_path": "ssl/tls13_enc.cc",
      "new_id": "29f07ea497eab5ba26d25cb049554eb2f3783532",
      "new_mode": 33188,
      "new_path": "ssl/tls13_enc.cc"
    }
  ]
}
