summaryrefslogtreecommitdiff
path: root/core/src/fpdfapi/fpdf_font/font_int.h
diff options
context:
space:
mode:
authorTom Sepez <tsepez@chromium.org>2016-01-07 12:12:10 -0800
committerTom Sepez <tsepez@chromium.org>2016-01-07 12:12:10 -0800
commit6a5f9662d1f36d1e67eb3431c0e628096e51aa15 (patch)
treeb391fdbc20b9e6a72606d61885b82fa7702e3351 /core/src/fpdfapi/fpdf_font/font_int.h
parentaa0f69ae645455e9a290f13572a03f4387ec758a (diff)
downloadpdfium-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.h29
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 {