| Index: xfa/src/fgas/src/font/fx_gefont.cpp
|
| diff --git a/xfa/src/fgas/src/font/fx_gefont.cpp b/xfa/src/fgas/src/font/fx_gefont.cpp
|
| index 12c4f0ea39631d16743e44f6098a5111542a75ca..280e0fb8cd6820406a839ae2f512a60715bdbf7e 100644
|
| --- a/xfa/src/fgas/src/font/fx_gefont.cpp
|
| +++ b/xfa/src/fgas/src/font/fx_gefont.cpp
|
| @@ -132,16 +132,15 @@ CFX_GEFont::CFX_GEFont(const CFX_GEFont& src, FX_DWORD dwFontStyles)
|
| FXSYS_assert(m_pFont != NULL);
|
| FXSYS_assert(src.m_pFont != NULL);
|
| m_pFont->LoadClone(src.m_pFont);
|
| - CFX_SubstFont*& pSubst = m_pFont->m_pSubstFont;
|
| - if (pSubst == NULL) {
|
| + CFX_SubstFont* pSubst = m_pFont->GetSubstFont();
|
| + if (!pSubst) {
|
| pSubst = new CFX_SubstFont;
|
| + m_pFont->SetSubstFont(pSubst);
|
| }
|
| - if (pSubst) {
|
| - pSubst->m_Weight =
|
| - (dwFontStyles & FX_FONTSTYLE_Bold) ? FXFONT_FW_BOLD : FXFONT_FW_NORMAL;
|
| - if (dwFontStyles & FX_FONTSTYLE_Italic) {
|
| - pSubst->m_SubstFlags |= FXFONT_SUBST_ITALIC;
|
| - }
|
| + pSubst->m_Weight =
|
| + (dwFontStyles & FX_FONTSTYLE_Bold) ? FXFONT_FW_BOLD : FXFONT_FW_NORMAL;
|
| + if (dwFontStyles & FX_FONTSTYLE_Italic) {
|
| + pSubst->m_SubstFlags |= FXFONT_SUBST_ITALIC;
|
| }
|
| InitFont();
|
| }
|
| @@ -236,7 +235,7 @@ FX_BOOL CFX_GEFont::LoadFont(const FX_WCHAR* pszFontFamily,
|
| csFontFamily += ",Italic";
|
| }
|
| m_pFont->LoadSubst(csFontFamily, TRUE, dwFlags, iWeight, 0, wCodePage);
|
| - FX_BOOL bRet = m_pFont->m_Face != nullptr;
|
| + FX_BOOL bRet = m_pFont->GetFace() != nullptr;
|
| if (bRet) {
|
| InitFont();
|
| }
|
| @@ -355,22 +354,20 @@ IFX_Font* CFX_GEFont::Derive(FX_DWORD dwFontStyles, FX_WORD wCodePage) {
|
| return new CFX_GEFont(*this, dwFontStyles);
|
| }
|
| uint8_t CFX_GEFont::GetCharSet() const {
|
| - FXSYS_assert(m_pFont != NULL);
|
| if (m_wCharSet != 0xFFFF) {
|
| return (uint8_t)m_wCharSet;
|
| }
|
| - if (m_pFont->m_pSubstFont == NULL) {
|
| + if (!m_pFont->GetSubstFont()) {
|
| return FX_CHARSET_Default;
|
| }
|
| - return m_pFont->m_pSubstFont->m_Charset;
|
| + return m_pFont->GetSubstFont()->m_Charset;
|
| }
|
| void CFX_GEFont::GetFamilyName(CFX_WideString& wsFamily) const {
|
| - FXSYS_assert(m_pFont != NULL);
|
| - if (m_pFont->m_pSubstFont == NULL ||
|
| - m_pFont->m_pSubstFont->m_Family.GetLength() == 0) {
|
| + if (!m_pFont->GetSubstFont() ||
|
| + m_pFont->GetSubstFont()->m_Family.GetLength() == 0) {
|
| wsFamily = CFX_WideString::FromLocal(m_pFont->GetFamilyName());
|
| } else {
|
| - wsFamily = CFX_WideString::FromLocal(m_pFont->m_pSubstFont->m_Family);
|
| + wsFamily = CFX_WideString::FromLocal(m_pFont->GetSubstFont()->m_Family);
|
| }
|
| }
|
| void CFX_GEFont::GetPsName(CFX_WideString& wsName) const {
|
| @@ -384,7 +381,7 @@ FX_DWORD CFX_GEFont::GetFontStyles() const {
|
| }
|
| #endif
|
| FX_DWORD dwStyles = 0;
|
| - if (m_pFont->m_pSubstFont == NULL) {
|
| + if (!m_pFont->GetSubstFont()) {
|
| if (m_pFont->IsBold()) {
|
| dwStyles |= FX_FONTSTYLE_Bold;
|
| }
|
| @@ -392,10 +389,10 @@ FX_DWORD CFX_GEFont::GetFontStyles() const {
|
| dwStyles |= FX_FONTSTYLE_Italic;
|
| }
|
| } else {
|
| - if (m_pFont->m_pSubstFont->m_Weight == FXFONT_FW_BOLD) {
|
| + if (m_pFont->GetSubstFont()->m_Weight == FXFONT_FW_BOLD) {
|
| dwStyles |= FX_FONTSTYLE_Bold;
|
| }
|
| - if (m_pFont->m_pSubstFont->m_SubstFlags & FXFONT_SUBST_ITALIC) {
|
| + if (m_pFont->GetSubstFont()->m_SubstFlags & FXFONT_SUBST_ITALIC) {
|
| dwStyles |= FX_FONTSTYLE_Italic;
|
| }
|
| }
|
| @@ -490,10 +487,10 @@ FX_BOOL CFX_GEFont::GetBBox(CFX_Rect& bbox) {
|
| return bRet;
|
| }
|
| int32_t CFX_GEFont::GetItalicAngle() const {
|
| - if (m_pFont->m_pSubstFont == NULL) {
|
| + if (!m_pFont->GetSubstFont()) {
|
| return 0;
|
| }
|
| - return m_pFont->m_pSubstFont->m_ItalicAngle;
|
| + return m_pFont->GetSubstFont()->m_ItalicAngle;
|
| }
|
| int32_t CFX_GEFont::GetGlyphIndex(FX_WCHAR wUnicode, FX_BOOL bCharCode) {
|
| return GetGlyphIndex(wUnicode, TRUE, NULL, bCharCode);
|
|
|