tree 715836552cc5787625435cd9335a1a125de2c481
parent 26046f36c61c5b3a083965c5ceb03d2576f08f33
author Lei Zhang <thestig@chromium.org> 1709583162 +0000
committer Pdfium LUCI CQ <pdfium-scoped@luci-project-accounts.iam.gserviceaccount.com> 1709583162 +0000

Add CPDF_ColorSpace::GetColorRef()

GetColorRef() is a wrapper around GetRGB() that returns a
std::optional<FX_COLORREF>. For it to work correctly, the GetRGB()
results are clamped before being rounded to become integer color
components. PDF 32000-1:2008 section 8.6.5.6 says to adjust to the
nearest valid value when the value is out of range, so this is trying
to implement that. With this change, update the associated pixel test
result now that a large positive value clamps down to 1.

Change CPDF_Color::GetRGB() to use GetColorRef(), so the FX_COLORREF
values just pass straight through. Now GetRGB() no longer needs to do
manual rounding and FX_COLORREF construction. As a result, it cannot
cause undefined behavior if the GetRGB() values are outside of the range
[0, 1].

Also change CPDF_PatternCS::GetPatternRGB() to call GetColorRef().
Change the GetPatternRGB() return type to match GetColorRef() to avoid
extra conversions. This finally gets rid of dead code where
GetPatternRGB() writes to the out-parameters and then returns false so
the out-parameters do not get used.

Bug: b/324312389
Change-Id: I10852794803c7c9b9881ac3d835e9545b5dabab5
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/117094
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Thomas Sepez <tsepez@google.com>
