diff options
author | tsepez <tsepez@chromium.org> | 2016-08-26 15:17:12 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-08-26 15:17:13 -0700 |
commit | 987f3ee94c3cb8e4a6113ad05453a2948469386c (patch) | |
tree | fbd1fdc800c2510c89ae043331a799a42c3251af /core/fpdfapi/fpdf_page/include | |
parent | 83d2351fd64128156c9abfb70266133d58a5e525 (diff) | |
download | pdfium-987f3ee94c3cb8e4a6113ad05453a2948469386c.tar.xz |
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
Diffstat (limited to 'core/fpdfapi/fpdf_page/include')
-rw-r--r-- | core/fpdfapi/fpdf_page/include/cpdf_generalstate.h | 10 | ||||
-rw-r--r-- | core/fpdfapi/fpdf_page/include/cpdf_path.h | 24 |
2 files changed, 19 insertions, 15 deletions
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<CPDF_GeneralStateData> { 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<CFX_PathData> { 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); } }; |