Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1292)

Side by Side Diff: core/src/fpdfapi/fpdf_page/pageint.h

Issue 1570133004: Endless tidying in pageint.h (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « core/src/fpdfapi/fpdf_page/fpdf_page_parser.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 PDFium Authors. All rights reserved. 1 // Copyright 2014 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_SRC_FPDFAPI_FPDF_PAGE_PAGEINT_H_ 7 #ifndef CORE_SRC_FPDFAPI_FPDF_PAGE_PAGEINT_H_
8 #define CORE_SRC_FPDFAPI_FPDF_PAGE_PAGEINT_H_ 8 #define CORE_SRC_FPDFAPI_FPDF_PAGE_PAGEINT_H_
9 9
10 #include <map> 10 #include <map>
11 #include <memory> 11 #include <memory>
12 12
13 #include "core/include/fpdfapi/fpdf_page.h" 13 #include "core/include/fpdfapi/fpdf_page.h"
14 #include "core/include/fpdfapi/fpdf_pageobj.h" 14 #include "core/include/fpdfapi/fpdf_pageobj.h"
15 15
16 class CPDF_AllStates; 16 class CPDF_AllStates;
17 class CPDF_ParseOptions; 17 class CPDF_ParseOptions;
18 18
19 #define PARSE_STEP_LIMIT 100 19 #define PARSE_STEP_LIMIT 100
20 20
21 class CPDF_StreamParser { 21 class CPDF_StreamParser {
22 public: 22 public:
23 enum SyntaxType { EndOfData, Number, Keyword, Name, Others };
24
23 CPDF_StreamParser(const uint8_t* pData, FX_DWORD dwSize); 25 CPDF_StreamParser(const uint8_t* pData, FX_DWORD dwSize);
24 ~CPDF_StreamParser(); 26 ~CPDF_StreamParser();
25 27
26 CPDF_Stream* ReadInlineStream(CPDF_Document* pDoc, 28 CPDF_Stream* ReadInlineStream(CPDF_Document* pDoc,
27 CPDF_Dictionary* pDict, 29 CPDF_Dictionary* pDict,
28 CPDF_Object* pCSObj, 30 CPDF_Object* pCSObj,
29 FX_BOOL bDecode); 31 FX_BOOL bDecode);
30 typedef enum { EndOfData, Number, Keyword, Name, Others } SyntaxType;
31
32 SyntaxType ParseNextElement(); 32 SyntaxType ParseNextElement();
33 uint8_t* GetWordBuf() { return m_WordBuffer; } 33 uint8_t* GetWordBuf() { return m_WordBuffer; }
34 FX_DWORD GetWordSize() { return m_WordSize; } 34 FX_DWORD GetWordSize() const { return m_WordSize; }
35 CPDF_Object* GetObject() { 35 CPDF_Object* GetObject() {
36 CPDF_Object* pObj = m_pLastObj; 36 CPDF_Object* pObj = m_pLastObj;
37 m_pLastObj = NULL; 37 m_pLastObj = NULL;
38 return pObj; 38 return pObj;
39 } 39 }
40 FX_DWORD GetPos() { return m_Pos; } 40 FX_DWORD GetPos() const { return m_Pos; }
41 void SetPos(FX_DWORD pos) { m_Pos = pos; } 41 void SetPos(FX_DWORD pos) { m_Pos = pos; }
42
43 CPDF_Object* ReadNextObject(FX_BOOL bAllowNestedArray = FALSE, 42 CPDF_Object* ReadNextObject(FX_BOOL bAllowNestedArray = FALSE,
44 FX_BOOL bInArray = FALSE); 43 FX_BOOL bInArray = FALSE);
45 void SkipPathObject(); 44 void SkipPathObject();
46 45
47 protected: 46 protected:
48 friend class fpdf_page_parser_old_ReadHexString_Test; 47 friend class fpdf_page_parser_old_ReadHexString_Test;
49 48
50 void GetNextWord(FX_BOOL& bIsNumber); 49 void GetNextWord(FX_BOOL& bIsNumber);
51 CFX_ByteString ReadString(); 50 CFX_ByteString ReadString();
52 CFX_ByteString ReadHexString(); 51 CFX_ByteString ReadHexString();
53 const uint8_t* m_pBuf; 52 const uint8_t* m_pBuf;
54 53
55 // Length in bytes of m_pBuf. 54 // Length in bytes of m_pBuf.
56 FX_DWORD m_Size; 55 FX_DWORD m_Size;
57 56
58 // Current byte position within m_pBuf. 57 // Current byte position within m_pBuf.
59 FX_DWORD m_Pos; 58 FX_DWORD m_Pos;
60 59
61 uint8_t m_WordBuffer[256]; 60 uint8_t m_WordBuffer[256];
62 FX_DWORD m_WordSize; 61 FX_DWORD m_WordSize;
63 CPDF_Object* m_pLastObj; 62 CPDF_Object* m_pLastObj;
64 63
65 private: 64 private:
66 bool PositionIsInBounds() const; 65 bool PositionIsInBounds() const;
67 }; 66 };
68 typedef enum { 67
69 PDFOP_CloseFillStrokePath = 0,
70 PDFOP_FillStrokePath,
71 PDFOP_CloseEOFillStrokePath,
72 PDFOP_EOFillStrokePath,
73 PDFOP_BeginMarkedContent_Dictionary,
74 PDFOP_BeginImage,
75 PDFOP_BeginMarkedContent,
76 PDFOP_BeginText,
77 PDFOP_BeginSectionUndefined,
78 PDFOP_CurveTo_123,
79 PDFOP_ConcatMatrix,
80 PDFOP_SetColorSpace_Fill,
81 PDFOP_SetColorSpace_Stroke,
82 PDFOP_SetDash,
83 PDFOP_SetCharWidth,
84 PDFOP_SetCachedDevice,
85 PDFOP_ExecuteXObject,
86 PDFOP_MarkPlace_Dictionary,
87 PDFOP_EndImage,
88 PDFOP_EndMarkedContent,
89 PDFOP_EndText,
90 PDFOP_EndSectionUndefined,
91 PDFOP_FillPath,
92 PDFOP_FillPathOld,
93 PDFOP_EOFillPath,
94 PDFOP_SetGray_Fill,
95 PDFOP_SetGray_Stroke,
96 PDFOP_SetExtendGraphState,
97 PDFOP_ClosePath,
98 PDFOP_SetFlat,
99 PDFOP_BeginImageData,
100 PDFOP_SetLineJoin,
101 PDFOP_SetLineCap,
102 PDFOP_SetCMYKColor_Fill,
103 PDFOP_SetCMYKColor_Stroke,
104 PDFOP_LineTo,
105 PDFOP_MoveTo,
106 PDFOP_SetMiterLimit,
107 PDFOP_MarkPlace,
108 PDFOP_EndPath,
109 PDFOP_SaveGraphState,
110 PDFOP_RestoreGraphState,
111 PDFOP_Rectangle,
112 PDFOP_SetRGBColor_Fill,
113 PDFOP_SetRGBColor_Stroke,
114 PDFOP_SetRenderIntent,
115 PDFOP_CloseStrokePath,
116 PDFOP_StrokePath,
117 PDFOP_SetColor_Fill,
118 PDFOP_SetColor_Stroke,
119 PDFOP_SetColorPS_Fill,
120 PDFOP_SetColorPS_Stroke,
121 PDFOP_ShadeFill,
122 PDFOP_SetCharSpace,
123 PDFOP_MoveTextPoint,
124 PDFOP_MoveTextPoint_SetLeading,
125 PDFOP_SetFont,
126 PDFOP_ShowText,
127 PDFOP_ShowText_Positioning,
128 PDFOP_SetTextLeading,
129 PDFOP_SetTextMatrix,
130 PDFOP_SetTextRenderMode,
131 PDFOP_SetTextRise,
132 PDFOP_SetWordSpace,
133 PDFOP_SetHorzScale,
134 PDFOP_MoveToNextLine,
135 PDFOP_CurveTo_23,
136 PDFOP_SetLineWidth,
137 PDFOP_Clip,
138 PDFOP_EOClip,
139 PDFOP_CurveTo_13,
140 PDFOP_NextLineShowText,
141 PDFOP_NextLineShowText_Space,
142 PDFOP_Invalid
143 } PDFOP;
144 #define PARAM_BUF_SIZE 16 68 #define PARAM_BUF_SIZE 16
145 typedef struct { 69 struct ContentParam {
146 int m_Type; 70 int m_Type;
147 union { 71 union {
148 struct { 72 struct {
149 FX_BOOL m_bInteger; 73 FX_BOOL m_bInteger;
150 union { 74 union {
151 int m_Integer; 75 int m_Integer;
152 FX_FLOAT m_Float; 76 FX_FLOAT m_Float;
153 }; 77 };
154 } m_Number; 78 } m_Number;
155 CPDF_Object* m_pObject; 79 CPDF_Object* m_pObject;
156 struct { 80 struct {
157 int m_Len; 81 int m_Len;
158 char m_Buffer[32]; 82 char m_Buffer[32];
159 } m_Name; 83 } m_Name;
160 }; 84 };
161 } _ContentParam; 85 };
162 #define _FPDF_MAX_FORM_LEVEL_ 30 86 #define _FPDF_MAX_FORM_LEVEL_ 30
163 #define _FPDF_MAX_TYPE3_FORM_LEVEL_ 4 87 #define _FPDF_MAX_TYPE3_FORM_LEVEL_ 4
164 #define _FPDF_MAX_OBJECT_STACK_SIZE_ 512 88 #define _FPDF_MAX_OBJECT_STACK_SIZE_ 512
165 class CPDF_StreamContentParser { 89 class CPDF_StreamContentParser {
166 public: 90 public:
167 CPDF_StreamContentParser(CPDF_Document* pDoc, 91 CPDF_StreamContentParser(CPDF_Document* pDoc,
168 CPDF_Dictionary* pPageResources, 92 CPDF_Dictionary* pPageResources,
169 CPDF_Dictionary* pParentResources, 93 CPDF_Dictionary* pParentResources,
170 CFX_Matrix* pmtContentToUser, 94 CFX_Matrix* pmtContentToUser,
171 CPDF_PageObjects* pObjList, 95 CPDF_PageObjects* pObjList,
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
308 232
309 CPDF_Document* const m_pDocument; 233 CPDF_Document* const m_pDocument;
310 CPDF_Dictionary* m_pPageResources; 234 CPDF_Dictionary* m_pPageResources;
311 CPDF_Dictionary* m_pParentResources; 235 CPDF_Dictionary* m_pParentResources;
312 CPDF_Dictionary* m_pResources; 236 CPDF_Dictionary* m_pResources;
313 CPDF_PageObjects* m_pObjectList; 237 CPDF_PageObjects* m_pObjectList;
314 int m_Level; 238 int m_Level;
315 CFX_Matrix m_mtContentToUser; 239 CFX_Matrix m_mtContentToUser;
316 CFX_FloatRect m_BBox; 240 CFX_FloatRect m_BBox;
317 CPDF_ParseOptions m_Options; 241 CPDF_ParseOptions m_Options;
318 _ContentParam m_ParamBuf1[PARAM_BUF_SIZE]; 242 ContentParam m_ParamBuf1[PARAM_BUF_SIZE];
319 FX_DWORD m_ParamStartPos; 243 FX_DWORD m_ParamStartPos;
320 FX_DWORD m_ParamCount; 244 FX_DWORD m_ParamCount;
321 CPDF_StreamParser* m_pSyntax; 245 CPDF_StreamParser* m_pSyntax;
322 std::unique_ptr<CPDF_AllStates> m_pCurStates; 246 std::unique_ptr<CPDF_AllStates> m_pCurStates;
323 CPDF_ContentMark m_CurContentMark; 247 CPDF_ContentMark m_CurContentMark;
324 CFX_ArrayTemplate<CPDF_TextObject*> m_ClipTextList; 248 CFX_ArrayTemplate<CPDF_TextObject*> m_ClipTextList;
325 CPDF_TextObject* m_pLastTextObject; 249 CPDF_TextObject* m_pLastTextObject;
326 FX_FLOAT m_DefFontSize; 250 FX_FLOAT m_DefFontSize;
327 int m_CompatCount; 251 int m_CompatCount;
328 FX_PATHPOINT* m_pPathPoints; 252 FX_PATHPOINT* m_pPathPoints;
(...skipping 17 matching lines...) Expand all
346 FX_BOOL m_bResourceMissing; 270 FX_BOOL m_bResourceMissing;
347 CFX_ArrayTemplate<CPDF_AllStates*> m_StateStack; 271 CFX_ArrayTemplate<CPDF_AllStates*> m_StateStack;
348 }; 272 };
349 class CPDF_ContentParser { 273 class CPDF_ContentParser {
350 public: 274 public:
351 enum ParseStatus { Ready, ToBeContinued, Done }; 275 enum ParseStatus { Ready, ToBeContinued, Done };
352 276
353 CPDF_ContentParser(); 277 CPDF_ContentParser();
354 ~CPDF_ContentParser(); 278 ~CPDF_ContentParser();
355 279
356 ParseStatus GetStatus() { return m_Status; } 280 ParseStatus GetStatus() const { return m_Status; }
357 void Start(CPDF_Page* pPage, CPDF_ParseOptions* pOptions); 281 void Start(CPDF_Page* pPage, CPDF_ParseOptions* pOptions);
358 void Start(CPDF_Form* pForm, 282 void Start(CPDF_Form* pForm,
359 CPDF_AllStates* pGraphicStates, 283 CPDF_AllStates* pGraphicStates,
360 CFX_Matrix* pParentMatrix, 284 CFX_Matrix* pParentMatrix,
361 CPDF_Type3Char* pType3Char, 285 CPDF_Type3Char* pType3Char,
362 CPDF_ParseOptions* pOptions, 286 CPDF_ParseOptions* pOptions,
363 int level); 287 int level);
364 void Continue(IFX_Pause* pPause); 288 void Continue(IFX_Pause* pPause);
365 289
366 protected: 290 protected:
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
519 FX_FLOAT& G, 443 FX_FLOAT& G,
520 FX_FLOAT& B) const override; 444 FX_FLOAT& B) const override;
521 CPDF_ColorSpace* GetBaseCS() const override; 445 CPDF_ColorSpace* GetBaseCS() const override;
522 446
523 private: 447 private:
524 CPDF_ColorSpace* m_pBaseCS; 448 CPDF_ColorSpace* m_pBaseCS;
525 CPDF_CountedColorSpace* m_pCountedBaseCS; 449 CPDF_CountedColorSpace* m_pCountedBaseCS;
526 }; 450 };
527 451
528 #endif // CORE_SRC_FPDFAPI_FPDF_PAGE_PAGEINT_H_ 452 #endif // CORE_SRC_FPDFAPI_FPDF_PAGE_PAGEINT_H_
OLDNEW
« no previous file with comments | « core/src/fpdfapi/fpdf_page/fpdf_page_parser.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698