)]}'
{
  "commit": "59e5ffd2c81c85f4e58a6812cd2aab982e5bbbce",
  "tree": "ba45d41381ed06a714956e870f43c6300c777288",
  "parents": [
    "2a9bb984e11334c3f13f4dc7d331b109a7099884"
  ],
  "author": {
    "name": "Andy Phan",
    "email": "andyphan@chromium.org",
    "time": "Mon Jul 27 15:36:56 2026 -0700"
  },
  "committer": {
    "name": "pdfium-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "pdfium-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Mon Jul 27 15:36:56 2026 -0700"
  },
  "message": "Improve memory and type safety in CPDF_DIB::GetScanline()\n\nRefactor CPDF_DIB::GetScanline() to improve safety and readability:\n- Use fxcrt::Zip() and structured spans instead of raw index\n  calculations. This removes several UNSAFE_TODO blocks. Using Zip()\n  allows the compiler to prove loop accesses are in-bounds and optimize\n  away the runtime checks, avoiding bounds checking performance\n  regressions.\n- Cache `GetWidth()` as a `const size_t width` at the function scope\n  to avoid redundant calls and ensure type-safe loop comparisons.\n\nTAG\u003dagy\nCONV\u003d40e28386-4f52-4db6-a72f-2fbe86431c92\n\nBug: 536543461\nChange-Id: Ia98f187dda798e63f8b898376053dafce0a867cc\nReviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/152691\nCommit-Queue: Andy Phan \u003candyphan@chromium.org\u003e\nReviewed-by: Tom Sepez \u003ctsepez@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5869e30afa2dc20baed76f6c14fb7c405b7d99cf",
      "old_mode": 33188,
      "old_path": "core/fpdfapi/page/cpdf_dib.cpp",
      "new_id": "c89f1f8598748dff1f632324848fba53d621bde7",
      "new_mode": 33188,
      "new_path": "core/fpdfapi/page/cpdf_dib.cpp"
    }
  ]
}
