From f66cfd7369b3c12cd0ed4c47c49377ed01727abd Mon Sep 17 00:00:00 2001 From: JUN FANG Date: Thu, 16 Apr 2015 15:19:04 -0700 Subject: Fix heap use after free in FT_Stream_ReleaseFrame Adjust the release order of resource to fix this issue. BUG=452793 R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1082023002 --- core/src/fxge/ge/fx_ge_font.cpp | 426 +++++++++++++------------- core/src/fxge/ge/fx_ge_fontmap.cpp | 5 + fpdfsdk/src/fpdfview.cpp | 40 +-- xfa/src/fgas/src/localization/fx_datetime.cpp | 2 +- xfa/src/fwl/src/core/fwl_noteimp.cpp | 2 +- xfa/src/fwl/src/core/fwl_widgetmgrimp.cpp | 2 +- 6 files changed, 222 insertions(+), 255 deletions(-) diff --git a/core/src/fxge/ge/fx_ge_font.cpp b/core/src/fxge/ge/fx_ge_font.cpp index aeaebe8f26..57580f4799 100644 --- a/core/src/fxge/ge/fx_ge_font.cpp +++ b/core/src/fxge/ge/fx_ge_font.cpp @@ -25,42 +25,42 @@ CFX_Font::CFX_Font() m_pDwFont = NULL; m_hHandle = NULL; m_bDwLoaded = FALSE; - m_bLogic = FALSE; -} -FX_BOOL CFX_Font::LoadClone(const CFX_Font* pFont) -{ - if (pFont == NULL) { - return FALSE; - } - m_bLogic = TRUE; - if (pFont->m_pSubstFont) { - m_pSubstFont = FX_NEW CFX_SubstFont; - if (!m_pSubstFont) { - return FALSE; - } - m_pSubstFont->m_Charset = pFont->m_pSubstFont->m_Charset; - m_pSubstFont->m_ExtHandle = pFont->m_pSubstFont->m_ExtHandle; - m_pSubstFont->m_SubstFlags = pFont->m_pSubstFont->m_SubstFlags; - m_pSubstFont->m_Weight = pFont->m_pSubstFont->m_Weight; - m_pSubstFont->m_Family = pFont->m_pSubstFont->m_Family; - m_pSubstFont->m_ItalicAngle = pFont->m_pSubstFont->m_ItalicAngle; - } - if (pFont->m_OtfFontData.GetSize()) { - m_OtfFontData.AttachData(pFont->m_OtfFontData.GetBuffer(), pFont->m_OtfFontData.GetSize()); - } - m_Face = pFont->m_Face; - m_bEmbedded = pFont->m_bEmbedded; - m_bVertical = pFont->m_bVertical; - m_dwSize = pFont->m_dwSize; - m_pFontData = pFont->m_pFontData; - m_pGsubData = pFont->m_pGsubData; - m_pPlatformFont = pFont->m_pPlatformFont; - m_pPlatformFontCollection = pFont->m_pPlatformFontCollection; - m_pDwFont = pFont->m_pDwFont; - m_hHandle = pFont->m_hHandle; - m_bDwLoaded = pFont->m_bDwLoaded; - m_pOwnedStream = pFont->m_pOwnedStream; - return TRUE; + m_bLogic = FALSE; +} +FX_BOOL CFX_Font::LoadClone(const CFX_Font* pFont) +{ + if (pFont == NULL) { + return FALSE; + } + m_bLogic = TRUE; + if (pFont->m_pSubstFont) { + m_pSubstFont = FX_NEW CFX_SubstFont; + if (!m_pSubstFont) { + return FALSE; + } + m_pSubstFont->m_Charset = pFont->m_pSubstFont->m_Charset; + m_pSubstFont->m_ExtHandle = pFont->m_pSubstFont->m_ExtHandle; + m_pSubstFont->m_SubstFlags = pFont->m_pSubstFont->m_SubstFlags; + m_pSubstFont->m_Weight = pFont->m_pSubstFont->m_Weight; + m_pSubstFont->m_Family = pFont->m_pSubstFont->m_Family; + m_pSubstFont->m_ItalicAngle = pFont->m_pSubstFont->m_ItalicAngle; + } + if (pFont->m_OtfFontData.GetSize()) { + m_OtfFontData.AttachData(pFont->m_OtfFontData.GetBuffer(), pFont->m_OtfFontData.GetSize()); + } + m_Face = pFont->m_Face; + m_bEmbedded = pFont->m_bEmbedded; + m_bVertical = pFont->m_bVertical; + m_dwSize = pFont->m_dwSize; + m_pFontData = pFont->m_pFontData; + m_pGsubData = pFont->m_pGsubData; + m_pPlatformFont = pFont->m_pPlatformFont; + m_pPlatformFontCollection = pFont->m_pPlatformFontCollection; + m_pDwFont = pFont->m_pDwFont; + m_hHandle = pFont->m_hHandle; + m_bDwLoaded = pFont->m_bDwLoaded; + m_pOwnedStream = pFont->m_pOwnedStream; + return TRUE; } CFX_Font::~CFX_Font() { @@ -68,10 +68,10 @@ CFX_Font::~CFX_Font() delete m_pSubstFont; m_pSubstFont = NULL; } - if (m_bLogic) { - m_OtfFontData.DetachBuffer(); - return; - } + if (m_bLogic) { + m_OtfFontData.DetachBuffer(); + return; + } if (m_Face) { if(m_bEmbedded) { DeleteFace(); @@ -80,7 +80,7 @@ CFX_Font::~CFX_Font() } } if (m_pOwnedStream) { - FX_Free(m_pOwnedStream); + FX_Free(m_pOwnedStream); m_pOwnedStream = NULL; } if (m_pGsubData) { @@ -137,7 +137,7 @@ extern "C" { { } }; -FX_BOOL _LoadFile(FXFT_Library library, FXFT_Face* Face, IFX_FileRead* pFile, FXFT_Stream* stream, FX_INT32 faceIndex = 0) +FX_BOOL _LoadFile(FXFT_Library library, FXFT_Face* Face, IFX_FileRead* pFile, FXFT_Stream* stream, FX_INT32 faceIndex = 0) { FXFT_Stream stream1 = (FXFT_Stream)FX_Alloc(FX_BYTE, sizeof (FXFT_StreamRec)); if (!stream1) { @@ -152,7 +152,7 @@ FX_BOOL _LoadFile(FXFT_Library library, FXFT_Face* Face, IFX_FileRead* pFile, FX FXFT_Open_Args args; args.flags = FT_OPEN_STREAM; args.stream = stream1; - if (FXFT_Open_Face(library, &args, faceIndex, Face)) { + if (FXFT_Open_Face(library, &args, faceIndex, Face)) { FX_Free(stream1); return FALSE; } @@ -161,18 +161,18 @@ FX_BOOL _LoadFile(FXFT_Library library, FXFT_Face* Face, IFX_FileRead* pFile, FX } return TRUE; } -FX_BOOL CFX_Font::LoadFile(IFX_FileRead* pFile, int nFaceIndex, int* pFaceCount) +FX_BOOL CFX_Font::LoadFile(IFX_FileRead* pFile, int nFaceIndex, int* pFaceCount) { m_bEmbedded = FALSE; FXFT_Library library; - if (CFX_GEModule::Get()->GetFontMgr()->m_FTLibrary == NULL) + if (CFX_GEModule::Get()->GetFontMgr()->m_FTLibrary == NULL) FXFT_Init_FreeType(&CFX_GEModule::Get()->GetFontMgr()->m_FTLibrary); library = CFX_GEModule::Get()->GetFontMgr()->m_FTLibrary; FXFT_Stream stream = NULL; - if (!_LoadFile(library, &m_Face, pFile, &stream, nFaceIndex)) + if (!_LoadFile(library, &m_Face, pFile, &stream, nFaceIndex)) return FALSE; - if (pFaceCount) - *pFaceCount = (int)m_Face->num_faces; + if (pFaceCount) + *pFaceCount = (int)m_Face->num_faces; m_pOwnedStream = stream; FXFT_Set_Pixel_Sizes(m_Face, 0, 64); return TRUE; @@ -479,168 +479,168 @@ IFX_FontEncoding* FXGE_CreateUnicodeEncoding(CFX_Font* pFont) pEncoding = FX_NEW CFX_UnicodeEncoding(pFont); return pEncoding; } -CFX_FontEncodingEX::CFX_FontEncodingEX() -{ - m_pFont = NULL; - m_nEncodingID = FXFM_ENCODING_NONE; -} -FX_BOOL CFX_FontEncodingEX::Init(CFX_Font* pFont, FX_DWORD EncodingID) -{ - if (!pFont) { - return FALSE; - } - m_pFont = pFont; - m_nEncodingID = EncodingID; - return TRUE; -} -FX_DWORD CFX_FontEncodingEX::GlyphFromCharCode(FX_DWORD charcode) -{ - FXFT_Face face = m_pFont->m_Face; - FT_UInt nIndex = FXFT_Get_Char_Index(face, charcode); - if (nIndex > 0) { - return nIndex; - } - int nmaps = FXFT_Get_Face_CharmapCount(face); - int m = 0; - while (m < nmaps) { - int nEncodingID = FXFT_Get_Charmap_Encoding(FXFT_Get_Face_Charmaps(face)[m++]); - if (m_nEncodingID == nEncodingID) { - continue; - } - int error = FXFT_Select_Charmap(face, nEncodingID); - if (error) { - continue; - } - nIndex = FXFT_Get_Char_Index(face, charcode); - if (nIndex > 0) { - m_nEncodingID = nEncodingID; - return nIndex; - } - } - FXFT_Select_Charmap(face, m_nEncodingID); - return 0; -} -CFX_WideString CFX_FontEncodingEX::UnicodeFromCharCode(FX_DWORD charcode) const -{ - if (m_nEncodingID == FXFM_ENCODING_UNICODE) { - return CFX_WideString((FX_WCHAR)charcode); - } - return CFX_WideString((FX_WCHAR)0); -} -FX_DWORD CFX_FontEncodingEX::CharCodeFromUnicode(FX_WCHAR Unicode) const -{ - if (m_nEncodingID == FXFM_ENCODING_UNICODE || m_nEncodingID == FXFM_ENCODING_MS_SYMBOL) { - return Unicode; - } - FXFT_Face face = m_pFont->m_Face; - int nmaps = FXFT_Get_Face_CharmapCount(face); - for (int i = 0; i < nmaps; i++) { - int nEncodingID = FXFT_Get_Charmap_Encoding(FXFT_Get_Face_Charmaps(face)[i]); - if (nEncodingID == FXFM_ENCODING_UNICODE || nEncodingID == FXFM_ENCODING_MS_SYMBOL) { - return Unicode; - } - } - return -1; -} -FX_BOOL CFX_FontEncodingEX::IsUnicodeCompatible() const -{ - return m_nEncodingID == FXFM_ENCODING_UNICODE; -} -FX_DWORD CFX_FontEncodingEX::GlyphIndexFromName(FX_LPCSTR pStrName) -{ - FXFT_Face face = m_pFont->m_Face; - return FT_Get_Name_Index(face, (FT_String*)pStrName); -} -CFX_ByteString CFX_FontEncodingEX::NameFromGlyphIndex(FX_DWORD dwGlyphIndex) -{ - FXFT_Face face = m_pFont->m_Face; - CFX_ByteString glyphName(" "); - if (FT_HAS_GLYPH_NAMES(((FT_Face)face))) { - if (FT_Get_Glyph_Name((FT_Face)face, dwGlyphIndex, (FT_Pointer)(FX_LPCSTR)glyphName, 16)) { - glyphName.Empty(); - return glyphName; - } - return glyphName; - } else { - return glyphName; - } -} -FX_DWORD CFX_FontEncodingEX::CharCodeFromGlyphIndex(FX_DWORD dwGlyphIndex) -{ - FXFT_Face face = m_pFont->GetFace(); - FX_DWORD charcode; - FT_UInt gid; - charcode = FT_Get_First_Char((FT_Face)face, &gid); - while (gid != 0) { - if (dwGlyphIndex == gid) { - return charcode; - } - charcode = FT_Get_Next_Char((FT_Face)face, charcode, &gid); - } - int nmaps = FXFT_Get_Face_CharmapCount(face); - int m = 0; - while (m < nmaps) { - int nEncodingID = FXFT_Get_Charmap_Encoding(FXFT_Get_Face_Charmaps(face)[m++]); - if (m_nEncodingID == nEncodingID) { - continue; - } - int error = FXFT_Select_Charmap(face, nEncodingID); - if (error) { - continue; - } - charcode = FT_Get_First_Char((FT_Face)face, &gid); - while (gid != 0) { - if (dwGlyphIndex == gid) { - m_nEncodingID = nEncodingID; - return charcode; - } - charcode = FT_Get_Next_Char((FT_Face)face, charcode, &gid); - } - } - return (FX_DWORD) - 1; -} -static const FX_DWORD gs_EncodingID[] = { - FXFM_ENCODING_MS_SYMBOL, - FXFM_ENCODING_UNICODE, - FXFM_ENCODING_MS_SJIS, - FXFM_ENCODING_MS_GB2312, - FXFM_ENCODING_MS_BIG5, - FXFM_ENCODING_MS_WANSUNG, - FXFM_ENCODING_MS_JOHAB, - FXFM_ENCODING_ADOBE_STANDARD, - FXFM_ENCODING_ADOBE_EXPERT, - FXFM_ENCODING_ADOBE_CUSTOM, - FXFM_ENCODING_ADOBE_LATIN_1, - FXFM_ENCODING_OLD_LATIN_2, - FXFM_ENCODING_APPLE_ROMAN -}; -static IFX_FontEncodingEx* _FXFM_CreateFontEncoding(CFX_Font* pFont, FX_DWORD nEncodingID) -{ - int error = FXFT_Select_Charmap(pFont->m_Face, nEncodingID); - if (error) { - return NULL; - } - CFX_FontEncodingEX* pFontEncoding = FX_NEW CFX_FontEncodingEX; - if (pFontEncoding && !pFontEncoding->Init(pFont, nEncodingID)) { - delete pFontEncoding; - pFontEncoding = NULL; - } - return pFontEncoding; -} -IFX_FontEncodingEx* FX_CreateFontEncodingEx(CFX_Font* pFont, FX_DWORD nEncodingID) -{ - if (!pFont || !pFont->m_Face) { - return NULL; - } - if (nEncodingID != FXFM_ENCODING_NONE) { - return _FXFM_CreateFontEncoding(pFont, nEncodingID); - } - static int s_count = sizeof(gs_EncodingID) / sizeof(FX_DWORD); - for (int i = 0; i < s_count; i++) { - IFX_FontEncodingEx* pFontEncoding = _FXFM_CreateFontEncoding(pFont, gs_EncodingID[i]); - if (pFontEncoding) { - return pFontEncoding; - } - } - return NULL; -} +CFX_FontEncodingEX::CFX_FontEncodingEX() +{ + m_pFont = NULL; + m_nEncodingID = FXFM_ENCODING_NONE; +} +FX_BOOL CFX_FontEncodingEX::Init(CFX_Font* pFont, FX_DWORD EncodingID) +{ + if (!pFont) { + return FALSE; + } + m_pFont = pFont; + m_nEncodingID = EncodingID; + return TRUE; +} +FX_DWORD CFX_FontEncodingEX::GlyphFromCharCode(FX_DWORD charcode) +{ + FXFT_Face face = m_pFont->m_Face; + FT_UInt nIndex = FXFT_Get_Char_Index(face, charcode); + if (nIndex > 0) { + return nIndex; + } + int nmaps = FXFT_Get_Face_CharmapCount(face); + int m = 0; + while (m < nmaps) { + int nEncodingID = FXFT_Get_Charmap_Encoding(FXFT_Get_Face_Charmaps(face)[m++]); + if (m_nEncodingID == nEncodingID) { + continue; + } + int error = FXFT_Select_Charmap(face, nEncodingID); + if (error) { + continue; + } + nIndex = FXFT_Get_Char_Index(face, charcode); + if (nIndex > 0) { + m_nEncodingID = nEncodingID; + return nIndex; + } + } + FXFT_Select_Charmap(face, m_nEncodingID); + return 0; +} +CFX_WideString CFX_FontEncodingEX::UnicodeFromCharCode(FX_DWORD charcode) const +{ + if (m_nEncodingID == FXFM_ENCODING_UNICODE) { + return CFX_WideString((FX_WCHAR)charcode); + } + return CFX_WideString((FX_WCHAR)0); +} +FX_DWORD CFX_FontEncodingEX::CharCodeFromUnicode(FX_WCHAR Unicode) const +{ + if (m_nEncodingID == FXFM_ENCODING_UNICODE || m_nEncodingID == FXFM_ENCODING_MS_SYMBOL) { + return Unicode; + } + FXFT_Face face = m_pFont->m_Face; + int nmaps = FXFT_Get_Face_CharmapCount(face); + for (int i = 0; i < nmaps; i++) { + int nEncodingID = FXFT_Get_Charmap_Encoding(FXFT_Get_Face_Charmaps(face)[i]); + if (nEncodingID == FXFM_ENCODING_UNICODE || nEncodingID == FXFM_ENCODING_MS_SYMBOL) { + return Unicode; + } + } + return -1; +} +FX_BOOL CFX_FontEncodingEX::IsUnicodeCompatible() const +{ + return m_nEncodingID == FXFM_ENCODING_UNICODE; +} +FX_DWORD CFX_FontEncodingEX::GlyphIndexFromName(FX_LPCSTR pStrName) +{ + FXFT_Face face = m_pFont->m_Face; + return FT_Get_Name_Index(face, (FT_String*)pStrName); +} +CFX_ByteString CFX_FontEncodingEX::NameFromGlyphIndex(FX_DWORD dwGlyphIndex) +{ + FXFT_Face face = m_pFont->m_Face; + CFX_ByteString glyphName(" "); + if (FT_HAS_GLYPH_NAMES(((FT_Face)face))) { + if (FT_Get_Glyph_Name((FT_Face)face, dwGlyphIndex, (FT_Pointer)(FX_LPCSTR)glyphName, 16)) { + glyphName.Empty(); + return glyphName; + } + return glyphName; + } else { + return glyphName; + } +} +FX_DWORD CFX_FontEncodingEX::CharCodeFromGlyphIndex(FX_DWORD dwGlyphIndex) +{ + FXFT_Face face = m_pFont->GetFace(); + FX_DWORD charcode; + FT_UInt gid; + charcode = FT_Get_First_Char((FT_Face)face, &gid); + while (gid != 0) { + if (dwGlyphIndex == gid) { + return charcode; + } + charcode = FT_Get_Next_Char((FT_Face)face, charcode, &gid); + } + int nmaps = FXFT_Get_Face_CharmapCount(face); + int m = 0; + while (m < nmaps) { + int nEncodingID = FXFT_Get_Charmap_Encoding(FXFT_Get_Face_Charmaps(face)[m++]); + if (m_nEncodingID == nEncodingID) { + continue; + } + int error = FXFT_Select_Charmap(face, nEncodingID); + if (error) { + continue; + } + charcode = FT_Get_First_Char((FT_Face)face, &gid); + while (gid != 0) { + if (dwGlyphIndex == gid) { + m_nEncodingID = nEncodingID; + return charcode; + } + charcode = FT_Get_Next_Char((FT_Face)face, charcode, &gid); + } + } + return (FX_DWORD) - 1; +} +static const FX_DWORD gs_EncodingID[] = { + FXFM_ENCODING_MS_SYMBOL, + FXFM_ENCODING_UNICODE, + FXFM_ENCODING_MS_SJIS, + FXFM_ENCODING_MS_GB2312, + FXFM_ENCODING_MS_BIG5, + FXFM_ENCODING_MS_WANSUNG, + FXFM_ENCODING_MS_JOHAB, + FXFM_ENCODING_ADOBE_STANDARD, + FXFM_ENCODING_ADOBE_EXPERT, + FXFM_ENCODING_ADOBE_CUSTOM, + FXFM_ENCODING_ADOBE_LATIN_1, + FXFM_ENCODING_OLD_LATIN_2, + FXFM_ENCODING_APPLE_ROMAN +}; +static IFX_FontEncodingEx* _FXFM_CreateFontEncoding(CFX_Font* pFont, FX_DWORD nEncodingID) +{ + int error = FXFT_Select_Charmap(pFont->m_Face, nEncodingID); + if (error) { + return NULL; + } + CFX_FontEncodingEX* pFontEncoding = FX_NEW CFX_FontEncodingEX; + if (pFontEncoding && !pFontEncoding->Init(pFont, nEncodingID)) { + delete pFontEncoding; + pFontEncoding = NULL; + } + return pFontEncoding; +} +IFX_FontEncodingEx* FX_CreateFontEncodingEx(CFX_Font* pFont, FX_DWORD nEncodingID) +{ + if (!pFont || !pFont->m_Face) { + return NULL; + } + if (nEncodingID != FXFM_ENCODING_NONE) { + return _FXFM_CreateFontEncoding(pFont, nEncodingID); + } + static int s_count = sizeof(gs_EncodingID) / sizeof(FX_DWORD); + for (int i = 0; i < s_count; i++) { + IFX_FontEncodingEx* pFontEncoding = _FXFM_CreateFontEncoding(pFont, gs_EncodingID[i]); + if (pFontEncoding) { + return pFontEncoding; + } + } + return NULL; +} diff --git a/core/src/fxge/ge/fx_ge_fontmap.cpp b/core/src/fxge/ge/fx_ge_fontmap.cpp index fce535cea8..3230ea0ce1 100644 --- a/core/src/fxge/ge/fx_ge_fontmap.cpp +++ b/core/src/fxge/ge/fx_ge_fontmap.cpp @@ -394,6 +394,7 @@ void CFX_FontMgr::ReleaseFace(FXFT_Face face) if (face == NULL) { return; } + FX_BOOL bFaceDone = FALSE; FX_POSITION pos = m_FaceMap.GetStartPosition(); while(pos) { CFX_ByteString Key; @@ -401,8 +402,12 @@ void CFX_FontMgr::ReleaseFace(FXFT_Face face) m_FaceMap.GetNextAssoc(pos, Key, (void*&)ttface); if (ttface->ReleaseFace(face)) { m_FaceMap.RemoveKey(Key); + bFaceDone = TRUE; } } + if (!bFaceDone) { + FXFT_Done_Face(face); + } } extern "C" { extern const unsigned char g_FoxitFixedItalicFontData [18746]; diff --git a/fpdfsdk/src/fpdfview.cpp b/fpdfsdk/src/fpdfview.cpp index 2430324f30..c9d9a25580 100644 --- a/fpdfsdk/src/fpdfview.cpp +++ b/fpdfsdk/src/fpdfview.cpp @@ -180,37 +180,7 @@ FPDF_BOOL FSDK_IsSandBoxPolicyEnabled(FPDF_DWORD policy) #define _T(x) x #endif -#ifdef API5 - CPDF_ModuleMgr* g_pModuleMgr = NULL; -#else - CCodec_ModuleMgr* g_pCodecModule = NULL; -#endif - -//extern CPDFSDK_FormFillApp* g_pFormFillApp; - -#if _FX_OS_ == _FX_LINUX_EMBEDDED_ -class CFontMapper : public IPDF_FontMapper -{ -public: - CFontMapper(); - virtual ~CFontMapper(); - - virtual FT_Face FindSubstFont( - CPDF_Document* pDoc, // [IN] The PDF document - const CFX_ByteString& face_name, // [IN] Original name - FX_BOOL bTrueType, // [IN] TrueType or Type1 - FX_DWORD flags, // [IN] PDF font flags (see PDF Reference section 5.7.1) - int font_weight, // [IN] original font weight. 0 for not specified - int CharsetCP, // [IN] code page for charset (see Win32 GetACP()) - FX_BOOL bVertical, - CPDF_SubstFont* pSubstFont // [OUT] Subst font data - ); - - FT_Face m_SysFace; -}; - -CFontMapper* g_pFontMapper = NULL; -#endif // #if _FX_OS_ == _FX_LINUX_EMBEDDED_ +CCodec_ModuleMgr* g_pCodecModule = NULL; DLLEXPORT void STDCALL FPDF_InitLibrary() { @@ -232,17 +202,9 @@ DLLEXPORT void STDCALL FPDF_InitLibrary() DLLEXPORT void STDCALL FPDF_DestroyLibrary() { FPDFXFA_ReleaseApp(); - -#if _FX_OS_ == _FX_LINUX_EMBEDDED_ - if (g_pFontMapper) delete g_pFontMapper; -#endif -#ifdef API5 - g_pModuleMgr->Destroy(); -#else CPDF_ModuleMgr::Destroy(); CFX_GEModule::Destroy(); g_pCodecModule->Destroy(); -#endif } #ifndef _WIN32 diff --git a/xfa/src/fgas/src/localization/fx_datetime.cpp b/xfa/src/fgas/src/localization/fx_datetime.cpp index 03ecb5bf48..7c2b3d3540 100644 --- a/xfa/src/fgas/src/localization/fx_datetime.cpp +++ b/xfa/src/fgas/src/localization/fx_datetime.cpp @@ -115,7 +115,7 @@ static void FX_DaysToDate(FX_INT64 iDays, FX_INT32 &iYear, FX_BYTE &iMonth, FX_B } iDay += (FX_BYTE)iDays; } -#if _FX_OS_ == _FX_LINUX_DESKTOP_ || _FX_OS_ == _FX_LINUX_EMBEDDED_ || _FX_OS_ == _FX_ANDROID_ || _FX_OS_ == _FX_MACOSX_ || _FX_OS_ == _FX_IOS_ +#if _FX_OS_ == _FX_LINUX_DESKTOP_ || _FX_OS_ == _FX_ANDROID_ || _FX_OS_ == _FX_MACOSX_ || _FX_OS_ == _FX_IOS_ #include #include #endif diff --git a/xfa/src/fwl/src/core/fwl_noteimp.cpp b/xfa/src/fwl/src/core/fwl_noteimp.cpp index 51041dba5b..101516fcac 100644 --- a/xfa/src/fwl/src/core/fwl_noteimp.cpp +++ b/xfa/src/fwl/src/core/fwl_noteimp.cpp @@ -307,7 +307,7 @@ FWL_ERR CFWL_NoteDriver::Run() } } while (pWidgetMgr->CheckMessage_Native()); } -#elif (_FX_OS_==_FX_LINUX_DESKTOP_ || _FX_OS_ == _FX_LINUX_EMBEDDED_) +#elif (_FX_OS_==_FX_LINUX_DESKTOP_) CFWL_NoteLoop *pTopLoop = NULL; for (;;) { pTopLoop = GetTopLoop(); diff --git a/xfa/src/fwl/src/core/fwl_widgetmgrimp.cpp b/xfa/src/fwl/src/core/fwl_widgetmgrimp.cpp index b5e2547722..283c328008 100644 --- a/xfa/src/fwl/src/core/fwl_widgetmgrimp.cpp +++ b/xfa/src/fwl/src/core/fwl_widgetmgrimp.cpp @@ -738,7 +738,7 @@ FWL_ERR CFWL_WidgetMgrDelegate::OnDrawWidget(IFWL_Widget * pWidget, return FWL_ERR_Succeeded; } CFX_RectF clipBounds; -#if (_FX_OS_==_FX_WIN32_DESKTOP_) || (_FX_OS_==_FX_WIN64_) || (_FX_OS_ == _FX_LINUX_DESKTOP_) || (_FX_OS_ == _FX_LINUX_EMBEDDED_) || (_FX_OS_ == _FX_ANDROID_) +#if (_FX_OS_==_FX_WIN32_DESKTOP_) || (_FX_OS_==_FX_WIN64_) || (_FX_OS_ == _FX_LINUX_DESKTOP_) || (_FX_OS_ == _FX_ANDROID_) IFWL_WidgetDelegate *pDelegate = pWidget->SetDelegate(NULL); pDelegate->OnDrawWidget(pTemp, pMatrix); pGraphics->GetClipRect(clipBounds); -- cgit v1.2.3