)]}'
{
  "commit": "10f78d00991fdb54c7cedb823ff42e546d0af6c9",
  "tree": "958dbb94cc140dc4d972c560a6679e969113a19e",
  "parents": [
    "ee63f283122d75753dd923caa0fbfc52633b3e19"
  ],
  "author": {
    "name": "Rudolf Polzer",
    "email": "rpolzer@google.com",
    "time": "Thu Oct 16 00:29:30 2025 -0700"
  },
  "committer": {
    "name": "Boringssl LUCI CQ",
    "email": "boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Wed Oct 22 10:15:44 2025 -0700"
  },
  "message": "Make constant-sized calls to Span::first/last/subspan compile-time sized.\n\nThis uses the newly added first\u003cN\u003e, last\u003cN\u003e and subspan\u003cS, N\u003e methods.\n\nAlso, changed subspan\u003c0, N\u003e to first\u003cN\u003e when it could be shown that the\ninput span has at least N elements based on checks/asserts before it.\nThis makes the return type compile-time sized even if the input span is\nnot.\n\nNOT doing thsis however if:\n\n- The span is only used within the same function in a simple scope with\n  no chance for errors compile-time checks would catch\n- The span is only passed to other functions or returned in cases where\n  obviously the span has to be runtime sized (like if calling through a\n  function pointer or returning as a return value)\n- The span is runtime-sized based on a runtime-sized function argument\n  or other data source that can\u0027t feasibly be made statically sized\n\nTested: IDA/Diaphora and ghidriff find no differences in generated code\nother than type identifiers with the extra template argument.\n\nChange-Id: I0eb52abd88f9f55a6651ddc333767e4e9345c03f\nBug: 390229582\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/82887\nReviewed-by: David Benjamin \u003cdavidben@google.com\u003e\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1bce3749371526112ff305b0fab3b67550271e19",
      "old_mode": 33188,
      "old_path": "ssl/extensions.cc",
      "new_id": "51e8e371dfa14b5667010773d7b8f26324656d2c",
      "new_mode": 33188,
      "new_path": "ssl/extensions.cc"
    },
    {
      "type": "modify",
      "old_id": "769dcfcd37a79191407c8d69f27e5bc29f5ffb65",
      "old_mode": 33188,
      "old_path": "ssl/handshake_client.cc",
      "new_id": "c96dedc4dbdac4a33e7da844e6adcca3aa9153d7",
      "new_mode": 33188,
      "new_path": "ssl/handshake_client.cc"
    },
    {
      "type": "modify",
      "old_id": "e62202a9538146b713cf5e985c44ea0e4df14e46",
      "old_mode": 33188,
      "old_path": "ssl/internal.h",
      "new_id": "0bcc0830d38ad5945204c5e4308f580f73efd4d4",
      "new_mode": 33188,
      "new_path": "ssl/internal.h"
    },
    {
      "type": "modify",
      "old_id": "6a445be8c17be867e01b7fd8549507a1952f17ce",
      "old_mode": 33188,
      "old_path": "ssl/ssl_transcript.cc",
      "new_id": "101da70a83555b92cf575f9c23cf09cdf6d34922",
      "new_mode": 33188,
      "new_path": "ssl/ssl_transcript.cc"
    },
    {
      "type": "modify",
      "old_id": "f94aea7f2926943e147ebf620194ee8f737753cf",
      "old_mode": 33188,
      "old_path": "ssl/tls13_enc.cc",
      "new_id": "c5baa83b3ca0d1ebcd10fd14009086228e588d46",
      "new_mode": 33188,
      "new_path": "ssl/tls13_enc.cc"
    },
    {
      "type": "modify",
      "old_id": "3452ea3c6c4df9f7e3ea645327061cf1ba0b403a",
      "old_mode": 33188,
      "old_path": "ssl/tls13_server.cc",
      "new_id": "eade4bd66a84c879958adbe38c91fc42fabe5480",
      "new_mode": 33188,
      "new_path": "ssl/tls13_server.cc"
    },
    {
      "type": "modify",
      "old_id": "328a2dad4e57de78a9b7b316328cac0ed34a79f3",
      "old_mode": 33188,
      "old_path": "ssl/tls_record.cc",
      "new_id": "ba0c4c1fb9135c00af74cacad86cac3f84333afa",
      "new_mode": 33188,
      "new_path": "ssl/tls_record.cc"
    },
    {
      "type": "modify",
      "old_id": "f4bb4d76e4155b75c8404a4a0adcc802392fc2f8",
      "old_mode": 33188,
      "old_path": "util/fipstools/acvp/modulewrapper/modulewrapper.cc",
      "new_id": "762f3e9be9e5e5939f7097dc2015ec6a9e99f4bc",
      "new_mode": 33188,
      "new_path": "util/fipstools/acvp/modulewrapper/modulewrapper.cc"
    }
  ]
}
