Index: core/src/fpdfapi/fpdf_font/fpdf_font.cpp |
diff --git a/core/src/fpdfapi/fpdf_font/fpdf_font.cpp b/core/src/fpdfapi/fpdf_font/fpdf_font.cpp |
index eee2a12bb3ab5eceb8b191d6ea3d29513550b1a2..66d7d4f0268418cbef3c8f5642cb152c637bba4e 100644 |
--- a/core/src/fpdfapi/fpdf_font/fpdf_font.cpp |
+++ b/core/src/fpdfapi/fpdf_font/fpdf_font.cpp |
@@ -113,21 +113,15 @@ void CPDF_FontGlobals::ClearAll() |
m_pStockMap.RemoveKey(key); |
} |
} |
-CPDF_Font::CPDF_Font() |
+CPDF_Font::CPDF_Font(int fonttype) : m_FontType(fonttype) |
{ |
- m_FontType = 0; |
m_FontBBox.left = m_FontBBox.right = m_FontBBox.top = m_FontBBox.bottom = 0; |
m_StemV = m_Ascent = m_Descent = m_ItalicAngle = 0; |
m_pFontFile = NULL; |
m_Flags = 0; |
m_pToUnicodeMap = NULL; |
m_bToUnicodeLoaded = FALSE; |
- m_pCharMap = NULL; |
-} |
-FX_BOOL CPDF_Font::Initialize() |
-{ |
m_pCharMap = new CPDF_FontCharMap(this); |
- return TRUE; |
} |
CPDF_Font::~CPDF_Font() |
{ |
@@ -445,8 +439,6 @@ CPDF_Font* CPDF_Font::CreateFontF(CPDF_Document* pDoc, CPDF_Dictionary* pFontDic |
CPDF_Dictionary* pFontDesc = pFontDict->GetDict(FX_BSTRC("FontDescriptor")); |
if (pFontDesc == NULL || !pFontDesc->KeyExist(FX_BSTRC("FontFile2"))) { |
pFont = new CPDF_CIDFont; |
- pFont->Initialize(); |
- pFont->m_FontType = PDFFONT_CIDFONT; |
pFont->m_pFontDict = pFontDict; |
pFont->m_pDocument = pDoc; |
if (!pFont->Load()) { |
@@ -459,20 +451,12 @@ CPDF_Font* CPDF_Font::CreateFontF(CPDF_Document* pDoc, CPDF_Dictionary* pFontDic |
#endif |
} |
pFont = new CPDF_TrueTypeFont; |
- pFont->Initialize(); |
- pFont->m_FontType = PDFFONT_TRUETYPE; |
} else if (type == FX_BSTRC("Type3")) { |
pFont = new CPDF_Type3Font; |
- pFont->Initialize(); |
- pFont->m_FontType = PDFFONT_TYPE3; |
} else if (type == FX_BSTRC("Type0")) { |
pFont = new CPDF_CIDFont; |
- pFont->Initialize(); |
- pFont->m_FontType = PDFFONT_CIDFONT; |
} else { |
pFont = new CPDF_Type1Font; |
- pFont->Initialize(); |
- pFont->m_FontType = PDFFONT_TYPE1; |
} |
pFont->m_pFontDict = pFontDict; |
pFont->m_pDocument = pDoc; |
@@ -833,7 +817,7 @@ FX_BOOL CPDF_Font::IsStandardFont() const |
return TRUE; |
} |
extern FX_LPCSTR PDF_CharNameFromPredefinedCharSet(int encoding, FX_BYTE charcode); |
-CPDF_SimpleFont::CPDF_SimpleFont() |
+CPDF_SimpleFont::CPDF_SimpleFont(int fonttype) : CPDF_Font(fonttype) |
{ |
FXSYS_memset8(m_CharBBox, 0xff, sizeof m_CharBBox); |
FXSYS_memset8(m_CharWidth, 0xff, sizeof m_CharWidth); |
@@ -1031,7 +1015,7 @@ void CPDF_SimpleFont::LoadSubstFont() |
} |
} |
int weight = m_StemV < 140 ? m_StemV * 5 : (m_StemV * 4 + 140); |
- m_Font.LoadSubst(m_BaseFont, m_FontType == PDFFONT_TRUETYPE, m_Flags, weight, m_ItalicAngle, 0); |
+ m_Font.LoadSubst(m_BaseFont, IsFontType(PDFFONT_TRUETYPE), m_Flags, weight, m_ItalicAngle, 0); |
if (m_Font.m_pSubstFont->m_SubstFlags & FXFONT_SUBST_NONSYMBOL) { |
} |
} |
@@ -1040,7 +1024,7 @@ FX_BOOL CPDF_SimpleFont::IsUnicodeCompatible() const |
return m_BaseEncoding != PDFFONT_ENCODING_BUILTIN && m_BaseEncoding != PDFFONT_ENCODING_ADOBE_SYMBOL && |
m_BaseEncoding != PDFFONT_ENCODING_ZAPFDINGBATS; |
} |
-CPDF_Type1Font::CPDF_Type1Font() |
+CPDF_Type1Font::CPDF_Type1Font() : CPDF_SimpleFont(PDFFONT_TYPE1) |
{ |
m_Base14Font = -1; |
} |
@@ -1432,7 +1416,7 @@ CPDF_Object* CPDF_FontEncoding::Realize() |
pDict->SetAt(FX_BSTRC("Differences"), pDiff); |
return pDict; |
} |
-CPDF_TrueTypeFont::CPDF_TrueTypeFont() |
+CPDF_TrueTypeFont::CPDF_TrueTypeFont() : CPDF_SimpleFont(PDFFONT_TRUETYPE) |
{ |
} |
FX_BOOL CPDF_TrueTypeFont::_Load() |
@@ -1614,7 +1598,7 @@ void CPDF_TrueTypeFont::LoadGlyphMap() |
m_GlyphIndex[charcode] = charcode; |
} |
} |
-CPDF_Type3Font::CPDF_Type3Font() |
+CPDF_Type3Font::CPDF_Type3Font() : CPDF_SimpleFont(PDFFONT_TYPE3) |
{ |
m_pPageResources = NULL; |
FXSYS_memset32(m_CharWidthL, 0, sizeof m_CharWidthL); |