| OLD | NEW |
| 1 // Copyright 2016 PDFium Authors. All rights reserved. | 1 // Copyright 2016 PDFium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
| 6 | 6 |
| 7 #ifndef CORE_FPDFAPI_PAGE_CPDF_STREAMCONTENTPARSER_H_ | 7 #ifndef CORE_FPDFAPI_PAGE_CPDF_STREAMCONTENTPARSER_H_ |
| 8 #define CORE_FPDFAPI_PAGE_CPDF_STREAMCONTENTPARSER_H_ | 8 #define CORE_FPDFAPI_PAGE_CPDF_STREAMCONTENTPARSER_H_ |
| 9 | 9 |
| 10 #include <memory> | 10 #include <memory> |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 45 uint32_t Parse(const uint8_t* pData, uint32_t dwSize, uint32_t max_cost); | 45 uint32_t Parse(const uint8_t* pData, uint32_t dwSize, uint32_t max_cost); |
| 46 CPDF_PageObjectHolder* GetPageObjectHolder() const { return m_pObjectHolder; } | 46 CPDF_PageObjectHolder* GetPageObjectHolder() const { return m_pObjectHolder; } |
| 47 CPDF_AllStates* GetCurStates() const { return m_pCurStates.get(); } | 47 CPDF_AllStates* GetCurStates() const { return m_pCurStates.get(); } |
| 48 bool IsColored() const { return m_bColored; } | 48 bool IsColored() const { return m_bColored; } |
| 49 const FX_FLOAT* GetType3Data() const { return m_Type3Data; } | 49 const FX_FLOAT* GetType3Data() const { return m_Type3Data; } |
| 50 CPDF_Font* FindFont(const CFX_ByteString& name); | 50 CPDF_Font* FindFont(const CFX_ByteString& name); |
| 51 | 51 |
| 52 private: | 52 private: |
| 53 struct ContentParam { | 53 struct ContentParam { |
| 54 enum Type { OBJECT = 0, NUMBER, NAME }; | 54 enum Type { OBJECT = 0, NUMBER, NAME }; |
| 55 |
| 56 ContentParam(); |
| 57 ~ContentParam(); |
| 58 |
| 55 Type m_Type; | 59 Type m_Type; |
| 56 union { | 60 std::unique_ptr<CPDF_Object> m_pObject; |
| 57 struct { | 61 struct { |
| 58 bool m_bInteger; | 62 bool m_bInteger; |
| 59 union { | 63 union { |
| 60 int m_Integer; | 64 int m_Integer; |
| 61 FX_FLOAT m_Float; | 65 FX_FLOAT m_Float; |
| 62 }; | 66 }; |
| 63 } m_Number; | 67 } m_Number; |
| 64 CPDF_Object* m_pObject; | 68 struct { |
| 65 struct { | 69 int m_Len; |
| 66 int m_Len; | 70 char m_Buffer[32]; |
| 67 char m_Buffer[32]; | 71 } m_Name; |
| 68 } m_Name; | |
| 69 }; | |
| 70 }; | 72 }; |
| 71 | 73 |
| 72 static const int kParamBufSize = 16; | 74 static const int kParamBufSize = 16; |
| 73 | 75 |
| 74 using OpCodes = | 76 using OpCodes = |
| 75 std::unordered_map<uint32_t, void (CPDF_StreamContentParser::*)()>; | 77 std::unordered_map<uint32_t, void (CPDF_StreamContentParser::*)()>; |
| 76 static OpCodes InitializeOpCodes(); | 78 static OpCodes InitializeOpCodes(); |
| 77 | 79 |
| 78 void AddNumberParam(const FX_CHAR* str, int len); | 80 void AddNumberParam(const FX_CHAR* str, int len); |
| 79 void AddObjectParam(CPDF_Object* pObj); | 81 void AddObjectParam(std::unique_ptr<CPDF_Object> pObj); |
| 80 void AddNameParam(const FX_CHAR* name, int size); | 82 void AddNameParam(const FX_CHAR* name, int size); |
| 81 int GetNextParamPos(); | 83 int GetNextParamPos(); |
| 82 void ClearAllParams(); | 84 void ClearAllParams(); |
| 83 CPDF_Object* GetObject(uint32_t index); | 85 CPDF_Object* GetObject(uint32_t index); |
| 84 CFX_ByteString GetString(uint32_t index); | 86 CFX_ByteString GetString(uint32_t index); |
| 85 FX_FLOAT GetNumber(uint32_t index); | 87 FX_FLOAT GetNumber(uint32_t index); |
| 86 int GetInteger(uint32_t index) { return (int32_t)(GetNumber(index)); } | 88 int GetInteger(uint32_t index) { return (int32_t)(GetNumber(index)); } |
| 87 void OnOperator(const FX_CHAR* op); | 89 void OnOperator(const FX_CHAR* op); |
| 88 void AddTextObject(CFX_ByteString* pText, | 90 void AddTextObject(CFX_ByteString* pText, |
| 89 FX_FLOAT fInitKerning, | 91 FX_FLOAT fInitKerning, |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 216 CPDF_Image* m_pLastImage; | 218 CPDF_Image* m_pLastImage; |
| 217 CPDF_Dictionary* m_pLastImageDict; | 219 CPDF_Dictionary* m_pLastImageDict; |
| 218 CPDF_Dictionary* m_pLastCloneImageDict; | 220 CPDF_Dictionary* m_pLastCloneImageDict; |
| 219 bool m_bColored; | 221 bool m_bColored; |
| 220 FX_FLOAT m_Type3Data[6]; | 222 FX_FLOAT m_Type3Data[6]; |
| 221 bool m_bResourceMissing; | 223 bool m_bResourceMissing; |
| 222 std::vector<std::unique_ptr<CPDF_AllStates>> m_StateStack; | 224 std::vector<std::unique_ptr<CPDF_AllStates>> m_StateStack; |
| 223 }; | 225 }; |
| 224 | 226 |
| 225 #endif // CORE_FPDFAPI_PAGE_CPDF_STREAMCONTENTPARSER_H_ | 227 #endif // CORE_FPDFAPI_PAGE_CPDF_STREAMCONTENTPARSER_H_ |
| OLD | NEW |