summaryrefslogtreecommitdiff
path: root/core/fxge/win32
diff options
context:
space:
mode:
authorNicolas Pena <npm@chromium.org>2017-11-07 16:32:20 +0000
committerChromium commit bot <commit-bot@chromium.org>2017-11-07 16:32:20 +0000
commit979e916fde750e47f262c59dc75f4ca2dc19ed39 (patch)
tree5e767486014c58e384f827f3fd7dc11efe658865 /core/fxge/win32
parentf2f12b32b601f022b5c10fddd8c4d19d00072630 (diff)
downloadpdfium-979e916fde750e47f262c59dc75f4ca2dc19ed39.tar.xz
Remove m_bFlagExact from CFX_SubstFont
This CL removes the single use case from |m_bFlagExact|. This flag allows the PDF viewer to treat a substitute font with a matching name as if it was actually an embedded font, which is wrong. For all substitute fonts, it is important to follow the longer process of first obtaining the unicode from the charcode to then obtain the glyph in the substitute font that corresponds to that unicode. Bug: chromium:781785 Change-Id: Ie5958b43914e0e46334b89b7c2c55c02d0da0c11 Reviewed-on: https://pdfium-review.googlesource.com/17859 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Nicolás Peña Moreno <npm@chromium.org>
Diffstat (limited to 'core/fxge/win32')
-rw-r--r--core/fxge/win32/fx_win32_device.cpp21
1 files changed, 8 insertions, 13 deletions
diff --git a/core/fxge/win32/fx_win32_device.cpp b/core/fxge/win32/fx_win32_device.cpp
index 35f9a5fce5..77e988cc42 100644
--- a/core/fxge/win32/fx_win32_device.cpp
+++ b/core/fxge/win32/fx_win32_device.cpp
@@ -325,8 +325,7 @@ class CFX_Win32FallbackFontInfo final : public CFX_FolderFontInfo {
bool bItalic,
int charset,
int pitch_family,
- const char* family,
- int& iExact) override;
+ const char* family) override;
};
class CFX_Win32FontInfo final : public IFX_SystemFontInfo {
@@ -340,8 +339,7 @@ class CFX_Win32FontInfo final : public IFX_SystemFontInfo {
bool bItalic,
int charset,
int pitch_family,
- const char* face,
- int& iExact) override;
+ const char* face) override;
void* GetFont(const char* face) override { return nullptr; }
uint32_t GetFontData(void* hFont,
uint32_t table,
@@ -475,13 +473,11 @@ void* CFX_Win32FallbackFontInfo::MapFont(int weight,
bool bItalic,
int charset,
int pitch_family,
- const char* cstr_face,
- int& iExact) {
+ const char* cstr_face) {
void* font = GetSubstFont(cstr_face);
- if (font) {
- iExact = 1;
+ if (font)
return font;
- }
+
bool bCJK = true;
switch (charset) {
case FX_CHARSET_ShiftJIS:
@@ -567,18 +563,17 @@ void* CFX_Win32FontInfo::MapFont(int weight,
bool bItalic,
int charset,
int pitch_family,
- const char* cstr_face,
- int& iExact) {
+ const char* cstr_face) {
ByteString face = cstr_face;
int iBaseFont;
- for (iBaseFont = 0; iBaseFont < 12; iBaseFont++)
+ for (iBaseFont = 0; iBaseFont < 12; iBaseFont++) {
if (face == ByteStringView(g_Base14Substs[iBaseFont].m_pName)) {
face = g_Base14Substs[iBaseFont].m_pWinName;
weight = g_Base14Substs[iBaseFont].m_bBold ? FW_BOLD : FW_NORMAL;
bItalic = g_Base14Substs[iBaseFont].m_bItalic;
- iExact = true;
break;
}
+ }
if (charset == FX_CHARSET_ANSI || charset == FX_CHARSET_Symbol)
charset = FX_CHARSET_Default;