)]}'
{
  "commit": "1fb29b891dccfcbf9a63b1b1f625211dcbc4a7ec",
  "tree": "ce0e5debefd2b948ee6d328bf7a62a12cd11eadf",
  "parents": [
    "131e154d3a14d2881a7c05ba3f1a5d019e1b6387"
  ],
  "author": {
    "name": "Wyatt Hepler",
    "email": "hepler@pigweed.infra.roller.google.com",
    "time": "Tue Aug 20 21:07:01 2024 +0000"
  },
  "committer": {
    "name": "CQ Bot Account",
    "email": "pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue Aug 20 21:07:01 2024 +0000"
  },
  "message": "roll: pigweed, pw_toolchain: pw_multibuf: Restructure ChunkIterable\n\nMultiBuf is a byte-oriented view of a list of chunks, and this change\nstructures MultiBuf accordingly. This replaces the ChunkIterable class\nwith a private MultiBufChunks base class that provides the\nChunk-oriented view for MultiBuf.\n\nRestructuring this way fixes an issue where MultiBuf data can be\nmodified from a const reference. MultiBuf originally returned a const\nChunkIterable, but since return values are copied, this becomes a\nnon-const ChunkIterable, giving mutable access to the multibuf.\n\n  const MultiBuf\u0026 const_mb \u003d mb;\n  auto chunk_iterable \u003d cmb.Chunks();  // chunk_iterable is non-const\n  iterable.front()[0] \u003d std::byte();  // uh oh, chunk data is mutable!\n\nOriginal-Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/230892\n\nhttps://pigweed.googlesource.com/pigweed/pigweed\npigweed, pw_toolchain Rolled-Commits: 03da4a376d12ab8..7e7c141c8808200\nRoller-URL: https://ci.chromium.org/b/8739051696451980865\nGitWatcher: ignore\nCQ-Do-Not-Cancel-Tryjobs: true\nChange-Id: I8af7a904b5cd447e9e4b483987c21f057851671f\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/quickstart/bazel/+/230736\nCommit-Queue: Pigweed Roller \u003cpigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com\u003e\nLint: Lint 🤖 \u003candroid-build-ayeaye@system.gserviceaccount.com\u003e\nBot-Commit: Pigweed Roller \u003cpigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a96f54671fc63b6f0d127519436c75fb4548e79d",
      "old_mode": 33188,
      "old_path": "MODULE.bazel",
      "new_id": "0df9a2b31d0b296cd90932ff5ab5bee12862e50c",
      "new_mode": 33188,
      "new_path": "MODULE.bazel"
    }
  ]
}
