More better const-ness in CFX_CountRef<>
There are a couple of places where code is calling GetObject()
that should be calling GetPrivateCopy(), but works because the
value may not be shared at the time. This just makes it safer.
Review-Url: https://codereview.chromium.org/2290863002
diff --git a/core/fpdfapi/fpdf_page/cpdf_textobject.cpp b/core/fpdfapi/fpdf_page/cpdf_textobject.cpp
index bd17dea..af6ae06 100644
--- a/core/fpdfapi/fpdf_page/cpdf_textobject.cpp
+++ b/core/fpdfapi/fpdf_page/cpdf_textobject.cpp
@@ -133,11 +133,11 @@
}
void CPDF_TextObject::Transform(const CFX_Matrix& matrix) {
- m_TextState.GetPrivateCopy();
CFX_Matrix text_matrix;
GetTextMatrix(&text_matrix);
text_matrix.Concat(matrix);
- FX_FLOAT* pTextMatrix = m_TextState.GetMatrix();
+
+ FX_FLOAT* pTextMatrix = m_TextState.GetMutableMatrix();
pTextMatrix[0] = text_matrix.GetA();
pTextMatrix[1] = text_matrix.GetC();
pTextMatrix[2] = text_matrix.GetB();
diff --git a/core/fpdfapi/fpdf_page/cpdf_textstate.h b/core/fpdfapi/fpdf_page/cpdf_textstate.h
index 59c988d..235bdf1 100644
--- a/core/fpdfapi/fpdf_page/cpdf_textstate.h
+++ b/core/fpdfapi/fpdf_page/cpdf_textstate.h
@@ -18,8 +18,8 @@
void SetFont(CPDF_Font* pFont);
FX_FLOAT GetFontSize() const { return GetObject()->m_FontSize; }
- FX_FLOAT* GetMatrix() { return GetObject()->m_Matrix; }
const FX_FLOAT* GetMatrix() const { return GetObject()->m_Matrix; }
+ FX_FLOAT* GetMutableMatrix() { return GetPrivateCopy()->m_Matrix; }
FX_FLOAT GetFontSizeV() const;
FX_FLOAT GetFontSizeH() const;
diff --git a/core/fpdfapi/fpdf_page/include/cpdf_path.h b/core/fpdfapi/fpdf_page/include/cpdf_path.h
index 98de696..e0ffa8c 100644
--- a/core/fpdfapi/fpdf_page/include/cpdf_path.h
+++ b/core/fpdfapi/fpdf_page/include/cpdf_path.h
@@ -30,14 +30,14 @@
GetPrivateCopy()->Transform(pMatrix);
}
void Append(const CPDF_Path& other, const CFX_Matrix* pMatrix) {
- GetObject()->Append(other.GetObject(), pMatrix);
+ GetPrivateCopy()->Append(other.GetObject(), pMatrix);
}
void AppendRect(FX_FLOAT left,
FX_FLOAT bottom,
FX_FLOAT right,
FX_FLOAT top) {
- GetObject()->AppendRect(left, bottom, right, top);
+ GetPrivateCopy()->AppendRect(left, bottom, right, top);
}
};
diff --git a/core/fxcrt/include/cfx_count_ref.h b/core/fxcrt/include/cfx_count_ref.h
index 817ce95..954b72b 100644
--- a/core/fxcrt/include/cfx_count_ref.h
+++ b/core/fxcrt/include/cfx_count_ref.h
@@ -30,7 +30,6 @@
}
void SetNull() { m_pObject.Reset(); }
- ObjClass* GetObject() { return m_pObject.Get(); }
const ObjClass* GetObject() const { return m_pObject.Get(); }
template <typename... Args>