From 987f3ee94c3cb8e4a6113ad05453a2948469386c Mon Sep 17 00:00:00 2001 From: tsepez Date: Fri, 26 Aug 2016 15:17:12 -0700 Subject: Make CFX_CountRef<>::m_pObject private, add accessors, fix const-ness. Hide the CountedObj class from the rest of the code. Rename GetModify() to GetPrivateCopy(), since it turns out there are places where we modify a potentially-shared copy. Add non-const version of GetObject() to permit these. Review-Url: https://codereview.chromium.org/2287633002 --- core/fpdfapi/fpdf_page/include/cpdf_generalstate.h | 10 +++++---- core/fpdfapi/fpdf_page/include/cpdf_path.h | 24 ++++++++++++---------- 2 files changed, 19 insertions(+), 15 deletions(-) (limited to 'core/fpdfapi/fpdf_page/include') diff --git a/core/fpdfapi/fpdf_page/include/cpdf_generalstate.h b/core/fpdfapi/fpdf_page/include/cpdf_generalstate.h index ab1e940089..dff8371119 100644 --- a/core/fpdfapi/fpdf_page/include/cpdf_generalstate.h +++ b/core/fpdfapi/fpdf_page/include/cpdf_generalstate.h @@ -15,14 +15,16 @@ class CPDF_GeneralState : public CFX_CountRef { void SetRenderIntent(const CFX_ByteString& ri); int GetBlendType() const { - return m_pObject ? m_pObject->m_BlendType : FXDIB_BLEND_NORMAL; + const CPDF_GeneralStateData* pData = GetObject(); + return pData ? pData->m_BlendType : FXDIB_BLEND_NORMAL; } int GetAlpha(FX_BOOL bStroke) const { - if (!m_pObject) + const CPDF_GeneralStateData* pData = GetObject(); + if (!pData) return 255; - return FXSYS_round( - (bStroke ? m_pObject->m_StrokeAlpha : m_pObject->m_FillAlpha) * 255); + return FXSYS_round((bStroke ? pData->m_StrokeAlpha : pData->m_FillAlpha) * + 255); } }; diff --git a/core/fpdfapi/fpdf_page/include/cpdf_path.h b/core/fpdfapi/fpdf_page/include/cpdf_path.h index 0e8c491f9e..98de696004 100644 --- a/core/fpdfapi/fpdf_page/include/cpdf_path.h +++ b/core/fpdfapi/fpdf_page/include/cpdf_path.h @@ -14,28 +14,30 @@ class CPDF_Path : public CFX_CountRef { public: - int GetPointCount() const { return m_pObject->GetPointCount(); } - int GetFlag(int index) const { return m_pObject->GetFlag(index); } - FX_FLOAT GetPointX(int index) const { return m_pObject->GetPointX(index); } - FX_FLOAT GetPointY(int index) const { return m_pObject->GetPointY(index); } - FX_PATHPOINT* GetPoints() const { return m_pObject->GetPoints(); } - CFX_FloatRect GetBoundingBox() const { return m_pObject->GetBoundingBox(); } + int GetPointCount() const { return GetObject()->GetPointCount(); } + int GetFlag(int index) const { return GetObject()->GetFlag(index); } + FX_FLOAT GetPointX(int index) const { return GetObject()->GetPointX(index); } + FX_FLOAT GetPointY(int index) const { return GetObject()->GetPointY(index); } + FX_PATHPOINT* GetPoints() const { return GetObject()->GetPoints(); } + CFX_FloatRect GetBoundingBox() const { return GetObject()->GetBoundingBox(); } CFX_FloatRect GetBoundingBox(FX_FLOAT line_width, FX_FLOAT miter_limit) const { - return m_pObject->GetBoundingBox(line_width, miter_limit); + return GetObject()->GetBoundingBox(line_width, miter_limit); } - FX_BOOL IsRect() const { return m_pObject->IsRect(); } - void Transform(const CFX_Matrix* pMatrix) { GetModify()->Transform(pMatrix); } + FX_BOOL IsRect() const { return GetObject()->IsRect(); } + void Transform(const CFX_Matrix* pMatrix) { + GetPrivateCopy()->Transform(pMatrix); + } void Append(const CPDF_Path& other, const CFX_Matrix* pMatrix) { - m_pObject->Append(other.GetObject(), pMatrix); + GetObject()->Append(other.GetObject(), pMatrix); } void AppendRect(FX_FLOAT left, FX_FLOAT bottom, FX_FLOAT right, FX_FLOAT top) { - m_pObject->AppendRect(left, bottom, right, top); + GetObject()->AppendRect(left, bottom, right, top); } }; -- cgit v1.2.3