Index: xfa/fgas/layout/fgas_rtfbreak.h |
diff --git a/xfa/fgas/layout/fgas_rtfbreak.h b/xfa/fgas/layout/fgas_rtfbreak.h |
index f3d2311a2c49171f9672988f73f4694b7cca4c1f..613156a3e035531aa49029f0fd7a58d01eead178 100644 |
--- a/xfa/fgas/layout/fgas_rtfbreak.h |
+++ b/xfa/fgas/layout/fgas_rtfbreak.h |
@@ -89,7 +89,7 @@ class CFX_RTFPiece { |
void AppendChar(const CFX_RTFChar& tc) { |
ASSERT(m_pChars); |
- m_pChars->Add(tc); |
+ m_pChars->push_back(tc); |
if (m_iWidth < 0) { |
m_iWidth = tc.m_iCharWidth; |
} else { |
@@ -97,42 +97,44 @@ class CFX_RTFPiece { |
} |
m_iChars++; |
} |
+ |
int32_t GetEndPos() const { |
return m_iWidth < 0 ? m_iStartPos : m_iStartPos + m_iWidth; |
} |
+ |
int32_t GetLength() const { return m_iChars; } |
int32_t GetEndChar() const { return m_iStartChar + m_iChars; } |
+ |
CFX_RTFChar& GetChar(int32_t index) { |
ASSERT(index > -1 && index < m_iChars && m_pChars); |
- return *m_pChars->GetDataPtr(m_iStartChar + index); |
+ return (*m_pChars)[m_iStartChar + index]; |
} |
+ |
CFX_RTFChar* GetCharPtr(int32_t index) const { |
ASSERT(index > -1 && index < m_iChars && m_pChars); |
- return m_pChars->GetDataPtr(m_iStartChar + index); |
+ return &(*m_pChars)[m_iStartChar + index]; |
} |
+ |
void GetString(FX_WCHAR* pText) const { |
ASSERT(pText); |
int32_t iEndChar = m_iStartChar + m_iChars; |
- CFX_RTFChar* pChar; |
- for (int32_t i = m_iStartChar; i < iEndChar; i++) { |
- pChar = m_pChars->GetDataPtr(i); |
- *pText++ = (FX_WCHAR)pChar->m_wCharCode; |
- } |
+ for (int32_t i = m_iStartChar; i < iEndChar; i++) |
+ *pText++ = static_cast<FX_WCHAR>((*m_pChars)[i].m_wCharCode); |
} |
+ |
void GetString(CFX_WideString& wsText) const { |
FX_WCHAR* pText = wsText.GetBuffer(m_iChars); |
GetString(pText); |
wsText.ReleaseBuffer(m_iChars); |
} |
+ |
void GetWidths(int32_t* pWidths) const { |
ASSERT(pWidths); |
int32_t iEndChar = m_iStartChar + m_iChars; |
- CFX_RTFChar* pChar; |
- for (int32_t i = m_iStartChar; i < iEndChar; i++) { |
- pChar = m_pChars->GetDataPtr(i); |
- *pWidths++ = pChar->m_iCharWidth; |
- } |
+ for (int32_t i = m_iStartChar; i < iEndChar; i++) |
+ *pWidths++ = (*m_pChars)[i].m_iCharWidth; |
} |
+ |
void Reset() { |
m_dwStatus = FX_RTFBREAK_PieceBreak; |
if (m_iWidth > -1) { |
@@ -160,7 +162,7 @@ class CFX_RTFPiece { |
int32_t m_iVerticalScale; |
uint32_t m_dwLayoutStyles; |
uint32_t m_dwIdentity; |
- CFX_RTFCharArray* m_pChars; |
+ std::vector<CFX_RTFChar>* m_pChars; // not owned. |
IFX_Retainable* m_pUserData; |
}; |
@@ -171,14 +173,16 @@ class CFX_RTFLine { |
CFX_RTFLine(); |
~CFX_RTFLine(); |
- int32_t CountChars() const { return m_LineChars.GetSize(); } |
+ int32_t CountChars() const { |
+ return pdfium::CollectionSize<int32_t>(m_LineChars); |
+ } |
CFX_RTFChar& GetChar(int32_t index) { |
- ASSERT(index > -1 && index < m_LineChars.GetSize()); |
- return *m_LineChars.GetDataPtr(index); |
+ ASSERT(index >= 0 && index < pdfium::CollectionSize<int32_t>(m_LineChars)); |
+ return m_LineChars[index]; |
} |
CFX_RTFChar* GetCharPtr(int32_t index) { |
- ASSERT(index > -1 && index < m_LineChars.GetSize()); |
- return m_LineChars.GetDataPtr(index); |
+ ASSERT(index > -1 && index < pdfium::CollectionSize<int32_t>(m_LineChars)); |
+ return &m_LineChars[index]; |
} |
int32_t CountPieces() const { return m_LinePieces.GetSize(); } |
CFX_RTFPiece& GetPiece(int32_t index) const { |
@@ -191,21 +195,20 @@ class CFX_RTFLine { |
} |
int32_t GetLineEnd() const { return m_iStart + m_iWidth; } |
void RemoveAll(bool bLeaveMemory = false) { |
- CFX_RTFChar* pChar; |
- int32_t iCount = m_LineChars.GetSize(); |
+ int32_t iCount = pdfium::CollectionSize<int32_t>(m_LineChars); |
for (int32_t i = 0; i < iCount; i++) { |
- pChar = m_LineChars.GetDataPtr(i); |
+ CFX_RTFChar* pChar = &m_LineChars[i]; |
if (pChar->m_pUserData) |
pChar->m_pUserData->Release(); |
} |
- m_LineChars.RemoveAll(); |
+ m_LineChars.clear(); |
m_LinePieces.RemoveAll(bLeaveMemory); |
m_iWidth = 0; |
m_iArabicChars = 0; |
m_iMBCSChars = 0; |
} |
- CFX_RTFCharArray m_LineChars; |
+ std::vector<CFX_RTFChar> m_LineChars; |
CFX_RTFPieceArray m_LinePieces; |
int32_t m_iStart; |
int32_t m_iWidth; |
@@ -271,7 +274,7 @@ class CFX_RTFBreak { |
int32_t GetLastPositionedTab() const; |
bool GetPositionedTab(int32_t& iTabPos) const; |
- int32_t GetBreakPos(CFX_RTFCharArray& tca, |
+ int32_t GetBreakPos(std::vector<CFX_RTFChar>& tca, |
int32_t& iEndPos, |
bool bAllChars = false, |
bool bOnlyBrk = false); |