)]}'
{
  "commit": "190fe4d3e0ec53e928c5589f03c7affc12600aa4",
  "tree": "8846458d8f71d3b46648bcfcff0850a9c81915b4",
  "parents": [
    "f16c9fa83f3e9ae6d67d8543b4db07acdd04caa2"
  ],
  "author": {
    "name": "Nico Weber",
    "email": "thakis@chromium.org",
    "time": "Fri May 30 15:54:07 2025 -0700"
  },
  "committer": {
    "name": "Pdfium LUCI CQ",
    "email": "pdfium-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Fri May 30 15:54:07 2025 -0700"
  },
  "message": "Correctly handle component bounds for shadings 4-7\n\nFollow-up to https://pdfium-review.googlesource.com/c/pdfium/+/132471\n\nAs that CL description says, CPDF_MeshStream::ReadColor() returns a\nvalue in Decode[4]..Decode[5]. We used to multiply that value by 255 to\nget an index into the 1D texture. In practice, this range is 0..1, but\nfor e.g. fuzz inputs it isn\u0027t. So add the actual mapping that I had\nforgotten to put in.\n\n(Since the 1D texture exists in cpdf_rendershading.cpp, I felt that the\nmapping code should be there too, instead of modifying ReadColor().)\n\nTweak the test to use 1..2 instead of 0..1 for the functions in the 2nd\ncolumn. Without the code change, that is enough to also assert on that\ntest file.\n\nSince we now multiply with 255 before instead of after interpolation\nin DrawGouraud(), drawing for shadings 4-5 changes a tiny bit,\nrequiring new baselines.\n\nBug: 421329279\nChange-Id: Id92d90d645503d14e295a24c8083641011acafc3\nReviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/132630\nReviewed-by: Lei Zhang \u003cthestig@chromium.org\u003e\nAuto-Submit: Nico Weber \u003cthakis@chromium.org\u003e\nCommit-Queue: Nico Weber \u003cthakis@chromium.org\u003e\nReviewed-by: Nico Weber \u003cthakis@google.com\u003e\nCommit-Queue: Lei Zhang \u003cthestig@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4a3f43429e5e2c1454d2a1d4c3ce8448b15c5511",
      "old_mode": 33188,
      "old_path": "core/fpdfapi/render/cpdf_rendershading.cpp",
      "new_id": "d98e8f9c7a866bac6ac2b64ab14b40a2099428c2",
      "new_mode": 33188,
      "new_path": "core/fpdfapi/render/cpdf_rendershading.cpp"
    },
    {
      "type": "modify",
      "old_id": "8f6a0e0bda80f9000064425b30f7a17f762e0a4f",
      "old_mode": 33188,
      "old_path": "testing/resources/pixel/bug_1546_expected.pdf.0.png",
      "new_id": "03a58b574e05e90ea91c93775d8e6cca8d3aa5f6",
      "new_mode": 33188,
      "new_path": "testing/resources/pixel/bug_1546_expected.pdf.0.png"
    },
    {
      "type": "modify",
      "old_id": "2702f82116ca250acda006188606e076615da7b3",
      "old_mode": 33188,
      "old_path": "testing/resources/pixel/shade.in",
      "new_id": "f006a44839e00201d048d20a2b79e140089b79a6",
      "new_mode": 33188,
      "new_path": "testing/resources/pixel/shade.in"
    },
    {
      "type": "modify",
      "old_id": "b8814031caa164bff08275121c0dd7d32d0d4e27",
      "old_mode": 33188,
      "old_path": "testing/resources/pixel/shade_expected.pdf.0.png",
      "new_id": "287381eff4994f549e17d7b98ed0b3d5d005b013",
      "new_mode": 33188,
      "new_path": "testing/resources/pixel/shade_expected.pdf.0.png"
    },
    {
      "type": "modify",
      "old_id": "3dd71cd536c16ac68e5242608c9744ce74cef06e",
      "old_mode": 33188,
      "old_path": "testing/resources/pixel/shade_expected_gdi_skia.pdf.0.png",
      "new_id": "745be5ca7be81aece04ac62216efa6b9fdfa0d83",
      "new_mode": 33188,
      "new_path": "testing/resources/pixel/shade_expected_gdi_skia.pdf.0.png"
    },
    {
      "type": "modify",
      "old_id": "b5b2d5d6c1a8ef6d5abde6aa96c90c1ce31484d1",
      "old_mode": 33188,
      "old_path": "testing/resources/pixel/shade_expected_skia.pdf.0.png",
      "new_id": "94909533c9815857cc40db40dc423094179906f4",
      "new_mode": 33188,
      "new_path": "testing/resources/pixel/shade_expected_skia.pdf.0.png"
    }
  ]
}
