Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1326)

Unified Diff: xfa/fgas/layout/fgas_rtfbreak.h

Issue 2650773003: Use std::vector for fx_ucd.h arrays. (Closed)
Patch Set: missed one Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « core/fxcrt/fx_ucd.h ('k') | xfa/fgas/layout/fgas_rtfbreak.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
« no previous file with comments | « core/fxcrt/fx_ucd.h ('k') | xfa/fgas/layout/fgas_rtfbreak.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698