summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--xfa/fgas/layout/cfx_break.cpp5
-rw-r--r--xfa/fgas/layout/cfx_breakline.cpp4
-rw-r--r--xfa/fgas/layout/cfx_breakline.h1
-rw-r--r--xfa/fgas/layout/cfx_rtfbreak.cpp29
-rw-r--r--xfa/fgas/layout/cfx_txtbreak.cpp30
5 files changed, 26 insertions, 43 deletions
diff --git a/xfa/fgas/layout/cfx_break.cpp b/xfa/fgas/layout/cfx_break.cpp
index b9996b3141..889c043ec2 100644
--- a/xfa/fgas/layout/cfx_break.cpp
+++ b/xfa/fgas/layout/cfx_break.cpp
@@ -95,11 +95,10 @@ void CFX_Break::SetFontSize(float fFontSize) {
void CFX_Break::SetBreakStatus() {
++m_dwIdentity;
- int32_t iCount = m_pCurLine->CountChars();
- if (iCount < 1)
+ if (m_pCurLine->m_LineChars.empty())
return;
- CFX_Char* tc = m_pCurLine->GetChar(iCount - 1);
+ CFX_Char* tc = m_pCurLine->GetChar(m_pCurLine->m_LineChars.size() - 1);
if (tc->m_dwStatus == CFX_BreakType::None)
tc->m_dwStatus = CFX_BreakType::Piece;
}
diff --git a/xfa/fgas/layout/cfx_breakline.cpp b/xfa/fgas/layout/cfx_breakline.cpp
index 0788603ad0..90bf7a08da 100644
--- a/xfa/fgas/layout/cfx_breakline.cpp
+++ b/xfa/fgas/layout/cfx_breakline.cpp
@@ -12,10 +12,6 @@ CFX_BreakLine::CFX_BreakLine() : m_iStart(0), m_iWidth(0), m_iArabicChars(0) {}
CFX_BreakLine::~CFX_BreakLine() {}
-int32_t CFX_BreakLine::CountChars() const {
- return pdfium::CollectionSize<int32_t>(m_LineChars);
-}
-
CFX_Char* CFX_BreakLine::GetChar(int32_t index) {
ASSERT(pdfium::IndexInBounds(m_LineChars, index));
return &m_LineChars[index];
diff --git a/xfa/fgas/layout/cfx_breakline.h b/xfa/fgas/layout/cfx_breakline.h
index 0b83ee6baa..267f276eeb 100644
--- a/xfa/fgas/layout/cfx_breakline.h
+++ b/xfa/fgas/layout/cfx_breakline.h
@@ -17,7 +17,6 @@ class CFX_BreakLine {
CFX_BreakLine();
~CFX_BreakLine();
- int32_t CountChars() const;
CFX_Char* GetChar(int32_t index);
const CFX_Char* GetChar(int32_t index) const;
diff --git a/xfa/fgas/layout/cfx_rtfbreak.cpp b/xfa/fgas/layout/cfx_rtfbreak.cpp
index 576d2d4533..0eb7d63a3a 100644
--- a/xfa/fgas/layout/cfx_rtfbreak.cpp
+++ b/xfa/fgas/layout/cfx_rtfbreak.cpp
@@ -83,9 +83,8 @@ CFX_BreakType CFX_RTFBreak::AppendChar(wchar_t wch) {
m_pCurLine->GetLineEnd() > m_iLineWidth + m_iTolerance &&
(m_eCharType != FX_CHARTYPE_Space || chartype != FX_CHARTYPE_Control)) {
dwRet1 = EndBreak(CFX_BreakType::Line);
- int32_t iCount = m_pCurLine->CountChars();
- if (iCount > 0)
- pCurChar = &m_pCurLine->m_LineChars[iCount - 1];
+ if (!m_pCurLine->m_LineChars.empty())
+ pCurChar = &m_pCurLine->m_LineChars.back();
}
CFX_BreakType dwRet2 = CFX_BreakType::None;
@@ -282,11 +281,10 @@ CFX_BreakType CFX_RTFBreak::EndBreak(CFX_BreakType dwStatus) {
return CFX_BreakType::None;
}
- int32_t iCount = m_pCurLine->CountChars();
- if (iCount < 1)
+ if (m_pCurLine->m_LineChars.empty())
return CFX_BreakType::None;
- CFX_Char* tc = m_pCurLine->GetChar(iCount - 1);
+ CFX_Char* tc = m_pCurLine->GetChar(m_pCurLine->m_LineChars.size() - 1);
tc->m_dwStatus = dwStatus;
if (dwStatus == CFX_BreakType::Piece)
return dwStatus;
@@ -315,7 +313,8 @@ bool CFX_RTFBreak::EndBreak_SplitLine(CFX_BreakLine* pNextLine,
CFX_BreakType dwStatus) {
bool bDone = false;
if (m_pCurLine->GetLineEnd() > m_iLineWidth + m_iTolerance) {
- const CFX_Char* tc = m_pCurLine->GetChar(m_pCurLine->CountChars() - 1);
+ const CFX_Char* tc =
+ m_pCurLine->GetChar(m_pCurLine->m_LineChars.size() - 1);
switch (tc->GetCharType()) {
case FX_CHARTYPE_Tab:
case FX_CHARTYPE_Control:
@@ -341,7 +340,7 @@ bool CFX_RTFBreak::EndBreak_SplitLine(CFX_BreakLine* pNextLine,
tp.m_pChars = &m_pCurLine->m_LineChars;
bool bNew = true;
uint32_t dwIdentity = static_cast<uint32_t>(-1);
- int32_t iLast = m_pCurLine->CountChars() - 1;
+ int32_t iLast = pdfium::CollectionSize<int32_t>(m_pCurLine->m_LineChars) - 1;
int32_t j = 0;
for (int32_t i = 0; i <= iLast;) {
const CFX_Char* pTC = pCurChars + i;
@@ -383,12 +382,9 @@ void CFX_RTFBreak::EndBreak_BidiLine(std::deque<FX_TPO>* tpos,
CFX_BreakType dwStatus) {
CFX_Char* pTC;
std::vector<CFX_Char>& chars = m_pCurLine->m_LineChars;
- int32_t iCount = m_pCurLine->CountChars();
if (!m_bPagination && m_pCurLine->m_iArabicChars > 0) {
- ASSERT(iCount >= 0);
-
size_t iBidiNum = 0;
- for (size_t i = 0; i < static_cast<size_t>(iCount); ++i) {
+ for (size_t i = 0; i < m_pCurLine->m_LineChars.size(); ++i) {
pTC = &chars[i];
pTC->m_iBidiPos = static_cast<int32_t>(i);
if (pTC->GetCharType() != FX_CHARTYPE_Control)
@@ -398,7 +394,7 @@ void CFX_RTFBreak::EndBreak_BidiLine(std::deque<FX_TPO>* tpos,
}
FX_BidiLine(&chars, iBidiNum + 1);
} else {
- for (int32_t i = 0; i < iCount; ++i) {
+ for (size_t i = 0; i < m_pCurLine->m_LineChars.size(); ++i) {
pTC = &chars[i];
pTC->m_iBidiLevel = 0;
pTC->m_iBidiPos = 0;
@@ -417,6 +413,7 @@ void CFX_RTFBreak::EndBreak_BidiLine(std::deque<FX_TPO>* tpos,
uint32_t dwIdentity = static_cast<uint32_t>(-1);
int32_t i = 0;
int32_t j = 0;
+ int32_t iCount = pdfium::CollectionSize<int32_t>(m_pCurLine->m_LineChars);
while (i < iCount) {
pTC = &chars[i];
if (iBidiLevel < 0) {
@@ -649,8 +646,8 @@ void CFX_RTFBreak::SplitTextLine(CFX_BreakLine* pCurLine,
CFX_BreakLine* pNextLine,
bool bAllChars) {
ASSERT(pCurLine && pNextLine);
- int32_t iCount = pCurLine->CountChars();
- if (iCount < 2)
+
+ if (pCurLine->m_LineChars.size() < 2)
return;
int32_t iEndPos = pCurLine->GetLineEnd();
@@ -660,7 +657,7 @@ void CFX_RTFBreak::SplitTextLine(CFX_BreakLine* pCurLine,
iCharPos = 0;
++iCharPos;
- if (iCharPos >= iCount) {
+ if (iCharPos >= pdfium::CollectionSize<int32_t>(pCurLine->m_LineChars)) {
pNextLine->Clear();
curChars[iCharPos - 1].m_nBreakType = FX_LBT_UNKNOWN;
return;
diff --git a/xfa/fgas/layout/cfx_txtbreak.cpp b/xfa/fgas/layout/cfx_txtbreak.cpp
index 526fd64c96..76a36c90da 100644
--- a/xfa/fgas/layout/cfx_txtbreak.cpp
+++ b/xfa/fgas/layout/cfx_txtbreak.cpp
@@ -239,9 +239,8 @@ CFX_BreakType CFX_TxtBreak::AppendChar(wchar_t wch) {
m_pCurLine->m_iWidth > m_iLineWidth + m_iTolerance && !m_bSingleLine &&
(m_eCharType != FX_CHARTYPE_Space || chartype != FX_CHARTYPE_Control)) {
dwRet1 = EndBreak(CFX_BreakType::Line);
- int32_t iCount = m_pCurLine->CountChars();
- if (iCount > 0)
- pCurChar = &m_pCurLine->m_LineChars[iCount - 1];
+ if (!m_pCurLine->m_LineChars.empty())
+ pCurChar = &m_pCurLine->m_LineChars.back();
}
CFX_BreakType dwRet2 = CFX_BreakType::None;
@@ -284,11 +283,10 @@ CFX_BreakType CFX_TxtBreak::AppendChar(wchar_t wch) {
bool CFX_TxtBreak::EndBreak_SplitLine(CFX_BreakLine* pNextLine,
bool bAllChars) {
- int32_t iCount = m_pCurLine->CountChars();
bool bDone = false;
CFX_Char* pTC;
if (!m_bSingleLine && m_pCurLine->m_iWidth > m_iLineWidth + m_iTolerance) {
- pTC = m_pCurLine->GetChar(iCount - 1);
+ pTC = m_pCurLine->GetChar(m_pCurLine->m_LineChars.size() - 1);
switch (pTC->GetCharType()) {
case FX_CHARTYPE_Tab:
case FX_CHARTYPE_Control:
@@ -301,7 +299,6 @@ bool CFX_TxtBreak::EndBreak_SplitLine(CFX_BreakLine* pNextLine,
}
}
- iCount = m_pCurLine->CountChars();
CFX_BreakPiece tp;
if (bAllChars && !bDone) {
int32_t iEndPos = m_pCurLine->m_iWidth;
@@ -316,13 +313,10 @@ void CFX_TxtBreak::EndBreak_BidiLine(std::deque<FX_TPO>* tpos,
FX_TPO tpo;
CFX_Char* pTC;
std::vector<CFX_Char>& chars = m_pCurLine->m_LineChars;
- int32_t iCount = m_pCurLine->CountChars();
bool bDone = m_pCurLine->m_iArabicChars > 0;
if (bDone) {
- ASSERT(iCount >= 0);
-
size_t iBidiNum = 0;
- for (size_t i = 0; i < static_cast<size_t>(iCount); ++i) {
+ for (size_t i = 0; i < m_pCurLine->m_LineChars.size(); ++i) {
pTC = &chars[i];
pTC->m_iBidiPos = static_cast<int32_t>(i);
if (pTC->GetCharType() != FX_CHARTYPE_Control)
@@ -341,6 +335,7 @@ void CFX_TxtBreak::EndBreak_BidiLine(std::deque<FX_TPO>* tpos,
int32_t iCharWidth;
int32_t i = 0;
int32_t j = -1;
+ int32_t iCount = pdfium::CollectionSize<int32_t>(m_pCurLine->m_LineChars);
while (i < iCount) {
pTC = &chars[i];
if (iBidiLevel < 0) {
@@ -405,7 +400,7 @@ void CFX_TxtBreak::EndBreak_BidiLine(std::deque<FX_TPO>* tpos,
tp.m_iStartPos = m_pCurLine->m_iStart;
tp.m_iWidth = m_pCurLine->m_iWidth;
tp.m_iStartChar = 0;
- tp.m_iChars = iCount;
+ tp.m_iChars = m_pCurLine->m_LineChars.size();
tp.m_pChars = &m_pCurLine->m_LineChars;
pTC = &chars[0];
tp.m_dwCharStyles = pTC->m_dwCharStyles;
@@ -507,11 +502,10 @@ CFX_BreakType CFX_TxtBreak::EndBreak(CFX_BreakType dwStatus) {
return CFX_BreakType::None;
}
- int32_t iCount = m_pCurLine->CountChars();
- if (iCount < 1)
+ if (m_pCurLine->m_LineChars.empty())
return CFX_BreakType::None;
- m_pCurLine->GetChar(iCount - 1)->m_dwStatus = dwStatus;
+ m_pCurLine->m_LineChars.back().m_dwStatus = dwStatus;
if (dwStatus == CFX_BreakType::Piece)
return dwStatus;
@@ -623,8 +617,7 @@ void CFX_TxtBreak::SplitTextLine(CFX_BreakLine* pCurLine,
CFX_BreakLine* pNextLine,
bool bAllChars) {
ASSERT(pCurLine && pNextLine);
- int32_t iCount = pCurLine->CountChars();
- if (iCount < 2)
+ if (pCurLine->m_LineChars.size() < 2)
return;
int32_t iEndPos = pCurLine->m_iWidth;
@@ -634,7 +627,7 @@ void CFX_TxtBreak::SplitTextLine(CFX_BreakLine* pCurLine,
iCharPos = 0;
iCharPos++;
- if (iCharPos >= iCount) {
+ if (iCharPos >= pdfium::CollectionSize<int32_t>(pCurLine->m_LineChars)) {
pNextLine->Clear();
CFX_Char* pTC = &curChars[iCharPos - 1];
pTC->m_nBreakType = FX_LBT_UNKNOWN;
@@ -647,9 +640,8 @@ void CFX_TxtBreak::SplitTextLine(CFX_BreakLine* pCurLine,
pCurLine->m_iWidth = iEndPos;
CFX_Char* pTC = &curChars[iCharPos - 1];
pTC->m_nBreakType = FX_LBT_UNKNOWN;
- iCount = pdfium::CollectionSize<int>(pNextLine->m_LineChars);
int32_t iWidth = 0;
- for (int32_t i = 0; i < iCount; i++) {
+ for (size_t i = 0; i < pNextLine->m_LineChars.size(); ++i) {
if (pNextLine->m_LineChars[i].GetCharType() >= FX_CHARTYPE_ArabicAlef) {
pCurLine->m_iArabicChars--;
pNextLine->m_iArabicChars++;