Change out parameter of CFGAS_GEFont::GetCharWidth to pointer.
Change-Id: I1e04c7645b2238d292a6a8eb5fb5fa365fa958f5
Reviewed-on: https://pdfium-review.googlesource.com/31752
Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
diff --git a/xfa/fgas/font/cfgas_gefont.cpp b/xfa/fgas/font/cfgas_gefont.cpp
index 35d3480..b6ec23a 100644
--- a/xfa/fgas/font/cfgas_gefont.cpp
+++ b/xfa/fgas/font/cfgas_gefont.cpp
@@ -155,34 +155,34 @@
return dwStyles;
}
-bool CFGAS_GEFont::GetCharWidth(wchar_t wUnicode, int32_t& iWidth) {
+bool CFGAS_GEFont::GetCharWidth(wchar_t wUnicode, int32_t* pWidth) {
auto it = m_CharWidthMap.find(wUnicode);
- iWidth = it != m_CharWidthMap.end() ? it->second : 0;
- if (iWidth == 65535)
+ *pWidth = it != m_CharWidthMap.end() ? it->second : 0;
+ if (*pWidth == 65535)
return false;
- if (iWidth > 0)
+ if (*pWidth > 0)
return true;
if (!m_pProvider || !m_pProvider->GetCharWidth(RetainPtr<CFGAS_GEFont>(this),
- wUnicode, &iWidth)) {
+ wUnicode, pWidth)) {
RetainPtr<CFGAS_GEFont> pFont;
int32_t iGlyph;
std::tie(iGlyph, pFont) = GetGlyphIndexAndFont(wUnicode, true);
if (iGlyph != 0xFFFF && pFont) {
if (pFont.Get() == this) {
- iWidth = m_pFont->GetGlyphWidth(iGlyph);
- if (iWidth < 0)
- iWidth = -1;
- } else if (pFont->GetCharWidth(wUnicode, iWidth)) {
+ *pWidth = m_pFont->GetGlyphWidth(iGlyph);
+ if (*pWidth < 0)
+ *pWidth = -1;
+ } else if (pFont->GetCharWidth(wUnicode, pWidth)) {
return true;
}
} else {
- iWidth = -1;
+ *pWidth = -1;
}
}
- m_CharWidthMap[wUnicode] = iWidth;
- return iWidth > 0;
+ m_CharWidthMap[wUnicode] = *pWidth;
+ return *pWidth > 0;
}
bool CFGAS_GEFont::GetCharBBox(wchar_t wUnicode, FX_RECT* bbox) {
diff --git a/xfa/fgas/font/cfgas_gefont.h b/xfa/fgas/font/cfgas_gefont.h
index b1d3a0e..ab72f13 100644
--- a/xfa/fgas/font/cfgas_gefont.h
+++ b/xfa/fgas/font/cfgas_gefont.h
@@ -38,7 +38,7 @@
CFGAS_FontMgr* pFontMgr);
uint32_t GetFontStyles() const;
- bool GetCharWidth(wchar_t wUnicode, int32_t& iWidth);
+ bool GetCharWidth(wchar_t wUnicode, int32_t* pWidth);
int32_t GetGlyphIndex(wchar_t wUnicode);
int32_t GetAscent() const;
int32_t GetDescent() const;
diff --git a/xfa/fgas/layout/cfx_break.cpp b/xfa/fgas/layout/cfx_break.cpp
index 0f52a2d..b9996b3 100644
--- a/xfa/fgas/layout/cfx_break.cpp
+++ b/xfa/fgas/layout/cfx_break.cpp
@@ -113,7 +113,7 @@
if (!m_pFont || m_wDefChar == 0xFEFF)
return;
- m_pFont->GetCharWidth(m_wDefChar, m_iDefChar);
+ m_pFont->GetCharWidth(m_wDefChar, &m_iDefChar);
m_iDefChar *= m_iFontSize;
}
@@ -130,7 +130,7 @@
if (m_wDefChar == 0xFEFF || !m_pFont)
return;
- m_pFont->GetCharWidth(m_wDefChar, m_iDefChar);
+ m_pFont->GetCharWidth(m_wDefChar, &m_iDefChar);
if (m_iDefChar < 0)
m_iDefChar = 0;
else
diff --git a/xfa/fgas/layout/cfx_rtfbreak.cpp b/xfa/fgas/layout/cfx_rtfbreak.cpp
index 9497e5f..1e7587a 100644
--- a/xfa/fgas/layout/cfx_rtfbreak.cpp
+++ b/xfa/fgas/layout/cfx_rtfbreak.cpp
@@ -122,7 +122,7 @@
void CFX_RTFBreak::AppendChar_Combination(CFX_Char* pCurChar) {
int32_t iCharWidth = 0;
- if (!m_pFont->GetCharWidth(pCurChar->char_code(), iCharWidth))
+ if (!m_pFont->GetCharWidth(pCurChar->char_code(), &iCharWidth))
iCharWidth = 0;
iCharWidth *= m_iFontSize;
@@ -191,8 +191,8 @@
wForm = pdfium::arabic::GetFormChar(pLastChar, pPrevChar, pCurChar);
bAlef = (wForm == 0xFEFF &&
pLastChar->GetCharType() == FX_CHARTYPE_ArabicAlef);
- if (!m_pFont->GetCharWidth(wForm, iCharWidth) &&
- !m_pFont->GetCharWidth(pLastChar->char_code(), iCharWidth)) {
+ if (!m_pFont->GetCharWidth(wForm, &iCharWidth) &&
+ !m_pFont->GetCharWidth(pLastChar->char_code(), &iCharWidth)) {
iCharWidth = m_iDefChar;
}
@@ -206,8 +206,8 @@
wForm = pdfium::arabic::GetFormChar(pCurChar, bAlef ? nullptr : pLastChar,
nullptr);
- if (!m_pFont->GetCharWidth(wForm, iCharWidth) &&
- !m_pFont->GetCharWidth(pCurChar->char_code(), iCharWidth)) {
+ if (!m_pFont->GetCharWidth(wForm, &iCharWidth) &&
+ !m_pFont->GetCharWidth(pCurChar->char_code(), &iCharWidth)) {
iCharWidth = m_iDefChar;
}
@@ -226,7 +226,7 @@
FX_CHARTYPE chartype = pCurChar->GetCharType();
wchar_t wForm = pCurChar->char_code();
int32_t iCharWidth = 0;
- if (!m_pFont->GetCharWidth(wForm, iCharWidth))
+ if (!m_pFont->GetCharWidth(wForm, &iCharWidth))
iCharWidth = m_iDefChar;
iCharWidth *= m_iFontSize;
diff --git a/xfa/fgas/layout/cfx_txtbreak.cpp b/xfa/fgas/layout/cfx_txtbreak.cpp
index 3c7039d..67140c47 100644
--- a/xfa/fgas/layout/cfx_txtbreak.cpp
+++ b/xfa/fgas/layout/cfx_txtbreak.cpp
@@ -79,7 +79,7 @@
}
}
int32_t iCharWidthOut;
- if (m_pFont->GetCharWidth(wForm, iCharWidthOut))
+ if (m_pFont->GetCharWidth(wForm, &iCharWidthOut))
iCharWidth = iCharWidthOut;
else
iCharWidth = 0;
@@ -144,7 +144,7 @@
bAlef = (wForm == 0xFEFF &&
pLastChar->GetCharType() == FX_CHARTYPE_ArabicAlef);
int32_t iCharWidthOut;
- m_pFont->GetCharWidth(wForm, iCharWidthOut);
+ m_pFont->GetCharWidth(wForm, &iCharWidthOut);
iCharWidth = iCharWidthOut;
if (wForm == 0xFEFF)
@@ -169,7 +169,7 @@
iCharWidth = m_iCombWidth;
} else {
int32_t iCharWidthOut;
- m_pFont->GetCharWidth(wForm, iCharWidthOut);
+ m_pFont->GetCharWidth(wForm, &iCharWidthOut);
iCharWidth = iCharWidthOut;
if (wForm == 0xFEFF)
@@ -201,7 +201,7 @@
iCharWidth = m_iCombWidth;
} else {
int32_t iCharWidthOut;
- if (m_pFont->GetCharWidth(wForm, iCharWidthOut))
+ if (m_pFont->GetCharWidth(wForm, &iCharWidthOut))
iCharWidth = iCharWidthOut;
else
iCharWidth = m_iDefChar;
@@ -838,11 +838,11 @@
if (bLam) {
formChars[1].wForm = 0x0651;
iCharWidth = 0;
- pFont->GetCharWidth(0x0651, iCharWidth);
+ pFont->GetCharWidth(0x0651, &iCharWidth);
formChars[1].iWidth = iCharWidth;
formChars[2].wForm = 0x0670;
iCharWidth = 0;
- pFont->GetCharWidth(0x0670, iCharWidth);
+ pFont->GetCharWidth(0x0670, &iCharWidth);
formChars[2].iWidth = iCharWidth;
}
@@ -873,7 +873,7 @@
if ((dwStyles & FX_LAYOUTSTYLE_CombText) != 0) {
int32_t iFormWidth = iCharWidth;
- pFont->GetCharWidth(wForm, iFormWidth);
+ pFont->GetCharWidth(wForm, &iFormWidth);
float fOffset = fFontSize * (iCharWidth - iFormWidth) / 2000.0f;
pCharPos->m_Origin.x += fOffset;
}
@@ -987,7 +987,7 @@
if (bCharBBox && !bRet) {
int32_t iCharWidth = 1000;
- pFont->GetCharWidth(wch, iCharWidth);
+ pFont->GetCharWidth(wch, &iCharWidth);
float fRTLeft = 0, fCharWidth = 0;
if (iCharWidth > 0) {
fCharWidth = iCharWidth * fScale;