diff options
author | Tom Sepez <tsepez@chromium.org> | 2016-01-07 12:12:10 -0800 |
---|---|---|
committer | Tom Sepez <tsepez@chromium.org> | 2016-01-07 12:12:10 -0800 |
commit | 6a5f9662d1f36d1e67eb3431c0e628096e51aa15 (patch) | |
tree | b391fdbc20b9e6a72606d61885b82fa7702e3351 /core/src/fpdfapi/fpdf_font/font_int.h | |
parent | aa0f69ae645455e9a290f13572a03f4387ec758a (diff) | |
download | pdfium-6a5f9662d1f36d1e67eb3431c0e628096e51aa15.tar.xz |
Merge to XFA: Make m_pStockMap a real map.
Original Review URL: https://codereview.chromium.org/1564783003 .
(cherry picked from commit a462162a76b3f487e76d8cc1b1f917f0937ea040)
TBR=thestig@chromium.org
Review URL: https://codereview.chromium.org/1566233002 .
Diffstat (limited to 'core/src/fpdfapi/fpdf_font/font_int.h')
-rw-r--r-- | core/src/fpdfapi/fpdf_font/font_int.h | 29 |
1 files changed, 23 insertions, 6 deletions
diff --git a/core/src/fpdfapi/fpdf_font/font_int.h b/core/src/fpdfapi/fpdf_font/font_int.h index 5418ffd2c9..33fa926b2a 100644 --- a/core/src/fpdfapi/fpdf_font/font_int.h +++ b/core/src/fpdfapi/fpdf_font/font_int.h @@ -8,6 +8,7 @@ #define CORE_SRC_FPDFAPI_FPDF_FONT_FONT_INT_H_ #include <map> +#include <memory> #include "core/include/fpdfapi/fpdf_resource.h" #include "core/include/fxcrt/fx_basic.h" @@ -39,14 +40,31 @@ class CPDF_CMapManager { std::map<CFX_ByteString, CPDF_CMap*> m_CMaps; CPDF_CID2UnicodeMap* m_CID2UnicodeMaps[6]; }; + +class CFX_StockFontArray { + public: + CFX_StockFontArray(); + ~CFX_StockFontArray(); + + // Takes ownership of |pFont|. + void SetFont(int index, CPDF_Font* pFont); + CPDF_Font* GetFont(int index) const; + + private: + std::unique_ptr<CPDF_Font> m_StockFonts[14]; +}; + class CPDF_FontGlobals { public: CPDF_FontGlobals(); ~CPDF_FontGlobals(); - void ClearAll(); - void Clear(void* key); - CPDF_Font* Find(void* key, int index); - void Set(void* key, int index, CPDF_Font* pFont); + + void Clear(CPDF_Document* pDoc); + CPDF_Font* Find(CPDF_Document* pDoc, int index); + + // Takes ownership of |pFont|. + void Set(CPDF_Document* key, int index, CPDF_Font* pFont); + CPDF_CMapManager m_CMapManager; struct { const struct FXCMAP_CMap* m_pMapList; @@ -58,8 +76,7 @@ class CPDF_FontGlobals { } m_EmbeddedToUnicodes[CIDSET_NUM_SETS]; private: - CFX_MapPtrToPtr m_pStockMap; - uint8_t* m_pContrastRamps; + std::map<CPDF_Document*, std::unique_ptr<CFX_StockFontArray>> m_StockMap; }; struct CMap_CodeRange { |