Index: core/fpdfapi/fpdf_page/fpdf_page_parser.cpp |
diff --git a/core/fpdfapi/fpdf_page/fpdf_page_parser.cpp b/core/fpdfapi/fpdf_page/fpdf_page_parser.cpp |
index f1101034ae2c3ce7388829ae933fe111033dd0de..5560b9c20f50e391d9c52d7be84d90db05a407f8 100644 |
--- a/core/fpdfapi/fpdf_page/fpdf_page_parser.cpp |
+++ b/core/fpdfapi/fpdf_page/fpdf_page_parser.cpp |
@@ -235,10 +235,10 @@ CPDF_StreamContentParser::CPDF_StreamContentParser( |
if (pStates) { |
m_pCurStates->Copy(*pStates); |
} else { |
- m_pCurStates->m_GeneralState.New(); |
- m_pCurStates->m_GraphState.New(); |
- m_pCurStates->m_TextState.New(); |
- m_pCurStates->m_ColorState.New(); |
+ m_pCurStates->m_GeneralState.Emplace(); |
+ m_pCurStates->m_GraphState.Emplace(); |
+ m_pCurStates->m_TextState.Emplace(); |
+ m_pCurStates->m_ColorState.Emplace(); |
} |
for (size_t i = 0; i < FX_ArraySize(m_Type3Data); ++i) { |
m_Type3Data[i] = 0.0; |
@@ -823,10 +823,9 @@ void CPDF_StreamContentParser::Handle_EndText() { |
if (m_ClipTextList.empty()) |
return; |
- if (TextRenderingModeIsClipMode( |
- m_pCurStates->m_TextState.GetObject()->m_TextMode)) { |
+ if (TextRenderingModeIsClipMode(m_pCurStates->m_TextState.GetTextMode())) |
m_pCurStates->m_ClipPath.AppendTexts(&m_ClipTextList); |
- } |
+ |
m_ClipTextList.clear(); |
} |
@@ -1114,7 +1113,7 @@ void CPDF_StreamContentParser::Handle_ShadeFill() { |
} |
void CPDF_StreamContentParser::Handle_SetCharSpace() { |
- m_pCurStates->m_TextState.GetPrivateCopy()->m_CharSpace = GetNumber(0); |
+ m_pCurStates->m_TextState.SetCharSpace(GetNumber(0)); |
} |
void CPDF_StreamContentParser::Handle_MoveTextPoint() { |
@@ -1134,7 +1133,7 @@ void CPDF_StreamContentParser::Handle_SetFont() { |
if (fs == 0) { |
fs = m_DefFontSize; |
} |
- m_pCurStates->m_TextState.GetPrivateCopy()->m_FontSize = fs; |
+ m_pCurStates->m_TextState.SetFontSize(fs); |
CPDF_Font* pFont = FindFont(GetString(1)); |
if (pFont) { |
m_pCurStates->m_TextState.SetFont(pFont); |
@@ -1243,13 +1242,13 @@ void CPDF_StreamContentParser::AddTextObject(CFX_ByteString* pStrs, |
} |
const TextRenderingMode text_mode = |
pFont->IsType3Font() ? TextRenderingMode::MODE_FILL |
- : m_pCurStates->m_TextState.GetObject()->m_TextMode; |
+ : m_pCurStates->m_TextState.GetTextMode(); |
{ |
std::unique_ptr<CPDF_TextObject> pText(new CPDF_TextObject); |
m_pLastTextObject = pText.get(); |
SetGraphicStates(m_pLastTextObject, TRUE, TRUE, TRUE); |
if (TextRenderingModeIsStrokeMode(text_mode)) { |
- FX_FLOAT* pCTM = pText->m_TextState.GetPrivateCopy()->m_CTM; |
+ FX_FLOAT* pCTM = pText->m_TextState.GetMutableCTM(); |
pCTM[0] = m_pCurStates->m_CTM.a; |
pCTM[1] = m_pCurStates->m_CTM.c; |
pCTM[2] = m_pCurStates->m_CTM.b; |
@@ -1358,7 +1357,7 @@ void CPDF_StreamContentParser::OnChangeTextMatrix() { |
text_matrix.Concat(m_pCurStates->m_TextMatrix); |
text_matrix.Concat(m_pCurStates->m_CTM); |
text_matrix.Concat(m_mtContentToUser); |
- FX_FLOAT* pTextMatrix = m_pCurStates->m_TextState.GetPrivateCopy()->m_Matrix; |
+ FX_FLOAT* pTextMatrix = m_pCurStates->m_TextState.GetMutableMatrix(); |
pTextMatrix[0] = text_matrix.a; |
pTextMatrix[1] = text_matrix.c; |
pTextMatrix[2] = text_matrix.b; |
@@ -1366,9 +1365,9 @@ void CPDF_StreamContentParser::OnChangeTextMatrix() { |
} |
void CPDF_StreamContentParser::Handle_SetTextRenderMode() { |
- int mode = GetInteger(0); |
- SetTextRenderingModeFromInt( |
- mode, &m_pCurStates->m_TextState.GetPrivateCopy()->m_TextMode); |
+ TextRenderingMode mode; |
+ if (SetTextRenderingModeFromInt(GetInteger(0), &mode)) |
+ m_pCurStates->m_TextState.SetTextMode(mode); |
} |
void CPDF_StreamContentParser::Handle_SetTextRise() { |
@@ -1376,7 +1375,7 @@ void CPDF_StreamContentParser::Handle_SetTextRise() { |
} |
void CPDF_StreamContentParser::Handle_SetWordSpace() { |
- m_pCurStates->m_TextState.GetPrivateCopy()->m_WordSpace = GetNumber(0); |
+ m_pCurStates->m_TextState.SetWordSpace(GetNumber(0)); |
} |
void CPDF_StreamContentParser::Handle_SetHorzScale() { |
@@ -1424,8 +1423,8 @@ void CPDF_StreamContentParser::Handle_NextLineShowText() { |
} |
void CPDF_StreamContentParser::Handle_NextLineShowText_Space() { |
- m_pCurStates->m_TextState.GetPrivateCopy()->m_WordSpace = GetNumber(2); |
- m_pCurStates->m_TextState.GetPrivateCopy()->m_CharSpace = GetNumber(1); |
+ m_pCurStates->m_TextState.SetWordSpace(GetNumber(2)); |
+ m_pCurStates->m_TextState.SetCharSpace(GetNumber(1)); |
Handle_NextLineShowText(); |
} |
@@ -1471,7 +1470,7 @@ void CPDF_StreamContentParser::AddPathObject(int FillType, FX_BOOL bStroke) { |
if (PathPointCount <= 1) { |
if (PathPointCount && PathClipType) { |
CPDF_Path path; |
- path.New()->AppendRect(0, 0, 0, 0); |
+ path.Emplace()->AppendRect(0, 0, 0, 0); |
m_pCurStates->m_ClipPath.AppendPath(path, FXFILL_WINDING, TRUE); |
} |
return; |
@@ -1481,7 +1480,7 @@ void CPDF_StreamContentParser::AddPathObject(int FillType, FX_BOOL bStroke) { |
PathPointCount--; |
} |
CPDF_Path Path; |
- CFX_PathData* pPathData = Path.New(); |
+ CFX_PathData* pPathData = Path.Emplace(); |
pPathData->SetPointCount(PathPointCount); |
FXSYS_memcpy(pPathData->GetPoints(), m_pPathPoints, |
sizeof(FX_PATHPOINT) * PathPointCount); |