Make CFX_DIBBase::IsAlphaMask() consistent with related functions. Make IsAlphaMask(), which reads from |m_AlphaFlag|, consistent with HasAlpha() and IsCmykImage(). This fulfills part of a TODO comment. The other part of the TODO comment regarding IsOpaqueImage() is wrong, so delete it. Along the way, reimplement IsOpaqueImage() using IsAlphaMask() and HasAlpha(). Change-Id: I5bc5a363f94f6d9e3b64995d2cd103ab0ea24e53 Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/65052 Commit-Queue: Lei Zhang <thestig@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org>
diff --git a/core/fxge/dib/cfx_dibbase.h b/core/fxge/dib/cfx_dibbase.h index bffe7dd..cbde6f9 100644 --- a/core/fxge/dib/cfx_dibbase.h +++ b/core/fxge/dib/cfx_dibbase.h
@@ -29,7 +29,7 @@ class CFX_DIBitmap; class PauseIndicatorIface; -// Base class for all Device-Indepenent Bitmaps. +// Base class for all Device-Independent Bitmaps. class CFX_DIBBase : public Retainable { public: ~CFX_DIBBase() override; @@ -58,13 +58,10 @@ uint32_t* GetPalette() const { return m_pPalette.get(); } int GetBPP() const { return m_bpp; } - // TODO(thestig): Investigate this. Given the possible values of FXDIB_Format, - // it feels as though this should be implemented as !!(m_AlphaFlag & 1) and - // IsOpaqueImage() below should never be able to return true. - bool IsAlphaMask() const { return m_AlphaFlag == 1; } + bool IsAlphaMask() const { return !!(m_AlphaFlag & 1); } bool HasAlpha() const { return !!(m_AlphaFlag & 2); } - bool IsOpaqueImage() const { return !(m_AlphaFlag & 3); } bool IsCmykImage() const { return !!(m_AlphaFlag & 4); } + bool IsOpaqueImage() const { return !IsAlphaMask() && !HasAlpha(); } int GetPaletteSize() const { return IsAlphaMask() ? 0 : (m_bpp == 1 ? 2 : (m_bpp == 8 ? 256 : 0));