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

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

Issue 1832173003: Remove FX_DWORD from core/ and delete definition (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 4 years, 9 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
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_FPDFAPI_FPDF_PAGE_PAGEINT_H_ 7 #ifndef CORE_FPDFAPI_FPDF_PAGE_PAGEINT_H_
8 #define CORE_FPDFAPI_FPDF_PAGE_PAGEINT_H_ 8 #define CORE_FPDFAPI_FPDF_PAGE_PAGEINT_H_
9 9
10 #include <map> 10 #include <map>
(...skipping 21 matching lines...) Expand all
32 class CPDF_StreamAcc; 32 class CPDF_StreamAcc;
33 class CPDF_TextObject; 33 class CPDF_TextObject;
34 class CPDF_Type3Char; 34 class CPDF_Type3Char;
35 35
36 #define PARSE_STEP_LIMIT 100 36 #define PARSE_STEP_LIMIT 100
37 37
38 class CPDF_StreamParser { 38 class CPDF_StreamParser {
39 public: 39 public:
40 enum SyntaxType { EndOfData, Number, Keyword, Name, Others }; 40 enum SyntaxType { EndOfData, Number, Keyword, Name, Others };
41 41
42 CPDF_StreamParser(const uint8_t* pData, FX_DWORD dwSize); 42 CPDF_StreamParser(const uint8_t* pData, uint32_t dwSize);
43 ~CPDF_StreamParser(); 43 ~CPDF_StreamParser();
44 44
45 CPDF_Stream* ReadInlineStream(CPDF_Document* pDoc, 45 CPDF_Stream* ReadInlineStream(CPDF_Document* pDoc,
46 CPDF_Dictionary* pDict, 46 CPDF_Dictionary* pDict,
47 CPDF_Object* pCSObj, 47 CPDF_Object* pCSObj,
48 FX_BOOL bDecode); 48 FX_BOOL bDecode);
49 SyntaxType ParseNextElement(); 49 SyntaxType ParseNextElement();
50 uint8_t* GetWordBuf() { return m_WordBuffer; } 50 uint8_t* GetWordBuf() { return m_WordBuffer; }
51 FX_DWORD GetWordSize() const { return m_WordSize; } 51 uint32_t GetWordSize() const { return m_WordSize; }
52 CPDF_Object* GetObject() { 52 CPDF_Object* GetObject() {
53 CPDF_Object* pObj = m_pLastObj; 53 CPDF_Object* pObj = m_pLastObj;
54 m_pLastObj = NULL; 54 m_pLastObj = NULL;
55 return pObj; 55 return pObj;
56 } 56 }
57 FX_DWORD GetPos() const { return m_Pos; } 57 uint32_t GetPos() const { return m_Pos; }
58 void SetPos(FX_DWORD pos) { m_Pos = pos; } 58 void SetPos(uint32_t pos) { m_Pos = pos; }
59 CPDF_Object* ReadNextObject(FX_BOOL bAllowNestedArray = FALSE, 59 CPDF_Object* ReadNextObject(FX_BOOL bAllowNestedArray = FALSE,
60 FX_BOOL bInArray = FALSE); 60 FX_BOOL bInArray = FALSE);
61 void SkipPathObject(); 61 void SkipPathObject();
62 62
63 protected: 63 protected:
64 friend class fpdf_page_parser_old_ReadHexString_Test; 64 friend class fpdf_page_parser_old_ReadHexString_Test;
65 65
66 void GetNextWord(FX_BOOL& bIsNumber); 66 void GetNextWord(FX_BOOL& bIsNumber);
67 CFX_ByteString ReadString(); 67 CFX_ByteString ReadString();
68 CFX_ByteString ReadHexString(); 68 CFX_ByteString ReadHexString();
69 const uint8_t* m_pBuf; 69 const uint8_t* m_pBuf;
70 70
71 // Length in bytes of m_pBuf. 71 // Length in bytes of m_pBuf.
72 FX_DWORD m_Size; 72 uint32_t m_Size;
73 73
74 // Current byte position within m_pBuf. 74 // Current byte position within m_pBuf.
75 FX_DWORD m_Pos; 75 uint32_t m_Pos;
76 76
77 uint8_t m_WordBuffer[256]; 77 uint8_t m_WordBuffer[256];
78 FX_DWORD m_WordSize; 78 uint32_t m_WordSize;
79 CPDF_Object* m_pLastObj; 79 CPDF_Object* m_pLastObj;
80 80
81 private: 81 private:
82 bool PositionIsInBounds() const; 82 bool PositionIsInBounds() const;
83 }; 83 };
84 84
85 #define PARAM_BUF_SIZE 16 85 #define PARAM_BUF_SIZE 16
86 struct ContentParam { 86 struct ContentParam {
87 enum Type { OBJECT = 0, NUMBER, NAME }; 87 enum Type { OBJECT = 0, NUMBER, NAME };
88 Type m_Type; 88 Type m_Type;
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 CPDF_PageObjectHolder* GetPageObjectHolder() const { return m_pObjectHolder; } 121 CPDF_PageObjectHolder* GetPageObjectHolder() const { return m_pObjectHolder; }
122 CPDF_AllStates* GetCurStates() const { return m_pCurStates.get(); } 122 CPDF_AllStates* GetCurStates() const { return m_pCurStates.get(); }
123 FX_BOOL IsColored() const { return m_bColored; } 123 FX_BOOL IsColored() const { return m_bColored; }
124 const FX_FLOAT* GetType3Data() const { return m_Type3Data; } 124 const FX_FLOAT* GetType3Data() const { return m_Type3Data; }
125 125
126 void AddNumberParam(const FX_CHAR* str, int len); 126 void AddNumberParam(const FX_CHAR* str, int len);
127 void AddObjectParam(CPDF_Object* pObj); 127 void AddObjectParam(CPDF_Object* pObj);
128 void AddNameParam(const FX_CHAR* name, int size); 128 void AddNameParam(const FX_CHAR* name, int size);
129 int GetNextParamPos(); 129 int GetNextParamPos();
130 void ClearAllParams(); 130 void ClearAllParams();
131 CPDF_Object* GetObject(FX_DWORD index); 131 CPDF_Object* GetObject(uint32_t index);
132 CFX_ByteString GetString(FX_DWORD index); 132 CFX_ByteString GetString(uint32_t index);
133 FX_FLOAT GetNumber(FX_DWORD index); 133 FX_FLOAT GetNumber(uint32_t index);
134 FX_FLOAT GetNumber16(FX_DWORD index); 134 FX_FLOAT GetNumber16(uint32_t index);
135 int GetInteger(FX_DWORD index) { return (int32_t)(GetNumber(index)); } 135 int GetInteger(uint32_t index) { return (int32_t)(GetNumber(index)); }
136 void OnOperator(const FX_CHAR* op); 136 void OnOperator(const FX_CHAR* op);
137 void BigCaseCaller(int index); 137 void BigCaseCaller(int index);
138 FX_DWORD GetParsePos() { return m_pSyntax->GetPos(); } 138 uint32_t GetParsePos() { return m_pSyntax->GetPos(); }
139 void AddTextObject(CFX_ByteString* pText, 139 void AddTextObject(CFX_ByteString* pText,
140 FX_FLOAT fInitKerning, 140 FX_FLOAT fInitKerning,
141 FX_FLOAT* pKerning, 141 FX_FLOAT* pKerning,
142 int count); 142 int count);
143 143
144 void ConvertUserSpace(FX_FLOAT& x, FX_FLOAT& y); 144 void ConvertUserSpace(FX_FLOAT& x, FX_FLOAT& y);
145 void ConvertTextSpace(FX_FLOAT& x, FX_FLOAT& y); 145 void ConvertTextSpace(FX_FLOAT& x, FX_FLOAT& y);
146 void OnChangeTextMatrix(); 146 void OnChangeTextMatrix();
147 FX_DWORD Parse(const uint8_t* pData, FX_DWORD dwSize, FX_DWORD max_cost); 147 uint32_t Parse(const uint8_t* pData, uint32_t dwSize, uint32_t max_cost);
148 void ParsePathObject(); 148 void ParsePathObject();
149 void AddPathPoint(FX_FLOAT x, FX_FLOAT y, int flag); 149 void AddPathPoint(FX_FLOAT x, FX_FLOAT y, int flag);
150 void AddPathRect(FX_FLOAT x, FX_FLOAT y, FX_FLOAT w, FX_FLOAT h); 150 void AddPathRect(FX_FLOAT x, FX_FLOAT y, FX_FLOAT w, FX_FLOAT h);
151 void AddPathObject(int FillType, FX_BOOL bStroke); 151 void AddPathObject(int FillType, FX_BOOL bStroke);
152 CPDF_ImageObject* AddImage(CPDF_Stream* pStream, 152 CPDF_ImageObject* AddImage(CPDF_Stream* pStream,
153 CPDF_Image* pImage, 153 CPDF_Image* pImage,
154 FX_BOOL bInline); 154 FX_BOOL bInline);
155 void AddDuplicateImage(); 155 void AddDuplicateImage();
156 void AddForm(CPDF_Stream* pStream); 156 void AddForm(CPDF_Stream* pStream);
157 void SetGraphicStates(CPDF_PageObject* pObj, 157 void SetGraphicStates(CPDF_PageObject* pObj,
158 FX_BOOL bColor, 158 FX_BOOL bColor,
159 FX_BOOL bText, 159 FX_BOOL bText,
160 FX_BOOL bGraph); 160 FX_BOOL bGraph);
161 void SaveStates(CPDF_AllStates* pState); 161 void SaveStates(CPDF_AllStates* pState);
162 void RestoreStates(CPDF_AllStates* pState); 162 void RestoreStates(CPDF_AllStates* pState);
163 CPDF_Font* FindFont(const CFX_ByteString& name); 163 CPDF_Font* FindFont(const CFX_ByteString& name);
164 CPDF_ColorSpace* FindColorSpace(const CFX_ByteString& name); 164 CPDF_ColorSpace* FindColorSpace(const CFX_ByteString& name);
165 CPDF_Pattern* FindPattern(const CFX_ByteString& name, FX_BOOL bShading); 165 CPDF_Pattern* FindPattern(const CFX_ByteString& name, FX_BOOL bShading);
166 CPDF_Object* FindResourceObj(const CFX_ByteStringC& type, 166 CPDF_Object* FindResourceObj(const CFX_ByteStringC& type,
167 const CFX_ByteString& name); 167 const CFX_ByteString& name);
168 168
169 protected: 169 protected:
170 using OpCodes = 170 using OpCodes =
171 std::unordered_map<FX_DWORD, void (CPDF_StreamContentParser::*)()>; 171 std::unordered_map<uint32_t, void (CPDF_StreamContentParser::*)()>;
172 static OpCodes InitializeOpCodes(); 172 static OpCodes InitializeOpCodes();
173 173
174 void Handle_CloseFillStrokePath(); 174 void Handle_CloseFillStrokePath();
175 void Handle_FillStrokePath(); 175 void Handle_FillStrokePath();
176 void Handle_CloseEOFillStrokePath(); 176 void Handle_CloseEOFillStrokePath();
177 void Handle_EOFillStrokePath(); 177 void Handle_EOFillStrokePath();
178 void Handle_BeginMarkedContent_Dictionary(); 178 void Handle_BeginMarkedContent_Dictionary();
179 void Handle_BeginImage(); 179 void Handle_BeginImage();
180 void Handle_BeginMarkedContent(); 180 void Handle_BeginMarkedContent();
181 void Handle_BeginText(); 181 void Handle_BeginText();
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
247 CPDF_Document* const m_pDocument; 247 CPDF_Document* const m_pDocument;
248 CPDF_Dictionary* m_pPageResources; 248 CPDF_Dictionary* m_pPageResources;
249 CPDF_Dictionary* m_pParentResources; 249 CPDF_Dictionary* m_pParentResources;
250 CPDF_Dictionary* m_pResources; 250 CPDF_Dictionary* m_pResources;
251 CPDF_PageObjectHolder* m_pObjectHolder; 251 CPDF_PageObjectHolder* m_pObjectHolder;
252 int m_Level; 252 int m_Level;
253 CFX_Matrix m_mtContentToUser; 253 CFX_Matrix m_mtContentToUser;
254 CFX_FloatRect m_BBox; 254 CFX_FloatRect m_BBox;
255 CPDF_ParseOptions m_Options; 255 CPDF_ParseOptions m_Options;
256 ContentParam m_ParamBuf[PARAM_BUF_SIZE]; 256 ContentParam m_ParamBuf[PARAM_BUF_SIZE];
257 FX_DWORD m_ParamStartPos; 257 uint32_t m_ParamStartPos;
258 FX_DWORD m_ParamCount; 258 uint32_t m_ParamCount;
259 CPDF_StreamParser* m_pSyntax; 259 CPDF_StreamParser* m_pSyntax;
260 std::unique_ptr<CPDF_AllStates> m_pCurStates; 260 std::unique_ptr<CPDF_AllStates> m_pCurStates;
261 CPDF_ContentMark m_CurContentMark; 261 CPDF_ContentMark m_CurContentMark;
262 CFX_ArrayTemplate<CPDF_TextObject*> m_ClipTextList; 262 CFX_ArrayTemplate<CPDF_TextObject*> m_ClipTextList;
263 CPDF_TextObject* m_pLastTextObject; 263 CPDF_TextObject* m_pLastTextObject;
264 FX_FLOAT m_DefFontSize; 264 FX_FLOAT m_DefFontSize;
265 FX_PATHPOINT* m_pPathPoints; 265 FX_PATHPOINT* m_pPathPoints;
266 int m_PathPointCount; 266 int m_PathPointCount;
267 int m_PathAllocSize; 267 int m_PathAllocSize;
268 FX_FLOAT m_PathStartX; 268 FX_FLOAT m_PathStartX;
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
306 STAGE_PARSE, 306 STAGE_PARSE,
307 STAGE_CHECKCLIP, 307 STAGE_CHECKCLIP,
308 }; 308 };
309 309
310 ParseStatus m_Status; 310 ParseStatus m_Status;
311 InternalStage m_InternalStage; 311 InternalStage m_InternalStage;
312 CPDF_PageObjectHolder* m_pObjectHolder; 312 CPDF_PageObjectHolder* m_pObjectHolder;
313 FX_BOOL m_bForm; 313 FX_BOOL m_bForm;
314 CPDF_ParseOptions m_Options; 314 CPDF_ParseOptions m_Options;
315 CPDF_Type3Char* m_pType3Char; 315 CPDF_Type3Char* m_pType3Char;
316 FX_DWORD m_nStreams; 316 uint32_t m_nStreams;
317 std::unique_ptr<CPDF_StreamAcc> m_pSingleStream; 317 std::unique_ptr<CPDF_StreamAcc> m_pSingleStream;
318 std::vector<std::unique_ptr<CPDF_StreamAcc>> m_StreamArray; 318 std::vector<std::unique_ptr<CPDF_StreamAcc>> m_StreamArray;
319 uint8_t* m_pData; 319 uint8_t* m_pData;
320 FX_DWORD m_Size; 320 uint32_t m_Size;
321 FX_DWORD m_CurrentOffset; 321 uint32_t m_CurrentOffset;
322 std::unique_ptr<CPDF_StreamContentParser> m_pParser; 322 std::unique_ptr<CPDF_StreamContentParser> m_pParser;
323 }; 323 };
324 324
325 class CPDF_DocPageData { 325 class CPDF_DocPageData {
326 public: 326 public:
327 explicit CPDF_DocPageData(CPDF_Document* pPDFDoc); 327 explicit CPDF_DocPageData(CPDF_Document* pPDFDoc);
328 ~CPDF_DocPageData(); 328 ~CPDF_DocPageData();
329 329
330 void Clear(FX_BOOL bRelease = FALSE); 330 void Clear(FX_BOOL bRelease = FALSE);
331 CPDF_Font* GetFont(CPDF_Dictionary* pFontDict, FX_BOOL findOnly); 331 CPDF_Font* GetFont(CPDF_Dictionary* pFontDict, FX_BOOL findOnly);
(...skipping 22 matching lines...) Expand all
354 private: 354 private:
355 using CPDF_CountedFont = CPDF_CountedObject<CPDF_Font>; 355 using CPDF_CountedFont = CPDF_CountedObject<CPDF_Font>;
356 using CPDF_CountedIccProfile = CPDF_CountedObject<CPDF_IccProfile>; 356 using CPDF_CountedIccProfile = CPDF_CountedObject<CPDF_IccProfile>;
357 using CPDF_CountedImage = CPDF_CountedObject<CPDF_Image>; 357 using CPDF_CountedImage = CPDF_CountedObject<CPDF_Image>;
358 using CPDF_CountedStreamAcc = CPDF_CountedObject<CPDF_StreamAcc>; 358 using CPDF_CountedStreamAcc = CPDF_CountedObject<CPDF_StreamAcc>;
359 359
360 using CPDF_ColorSpaceMap = std::map<CPDF_Object*, CPDF_CountedColorSpace*>; 360 using CPDF_ColorSpaceMap = std::map<CPDF_Object*, CPDF_CountedColorSpace*>;
361 using CPDF_FontFileMap = std::map<CPDF_Stream*, CPDF_CountedStreamAcc*>; 361 using CPDF_FontFileMap = std::map<CPDF_Stream*, CPDF_CountedStreamAcc*>;
362 using CPDF_FontMap = std::map<CPDF_Dictionary*, CPDF_CountedFont*>; 362 using CPDF_FontMap = std::map<CPDF_Dictionary*, CPDF_CountedFont*>;
363 using CPDF_IccProfileMap = std::map<CPDF_Stream*, CPDF_CountedIccProfile*>; 363 using CPDF_IccProfileMap = std::map<CPDF_Stream*, CPDF_CountedIccProfile*>;
364 using CPDF_ImageMap = std::map<FX_DWORD, CPDF_CountedImage*>; 364 using CPDF_ImageMap = std::map<uint32_t, CPDF_CountedImage*>;
365 using CPDF_PatternMap = std::map<CPDF_Object*, CPDF_CountedPattern*>; 365 using CPDF_PatternMap = std::map<CPDF_Object*, CPDF_CountedPattern*>;
366 366
367 CPDF_Document* const m_pPDFDoc; 367 CPDF_Document* const m_pPDFDoc;
368 FX_BOOL m_bForceClear; 368 FX_BOOL m_bForceClear;
369 std::map<CFX_ByteString, CPDF_Stream*> m_HashProfileMap; 369 std::map<CFX_ByteString, CPDF_Stream*> m_HashProfileMap;
370 CPDF_ColorSpaceMap m_ColorSpaceMap; 370 CPDF_ColorSpaceMap m_ColorSpaceMap;
371 CPDF_FontFileMap m_FontFileMap; 371 CPDF_FontFileMap m_FontFileMap;
372 CPDF_FontMap m_FontMap; 372 CPDF_FontMap m_FontMap;
373 CPDF_IccProfileMap m_IccProfileMap; 373 CPDF_IccProfileMap m_IccProfileMap;
374 CPDF_ImageMap m_ImageMap; 374 CPDF_ImageMap m_ImageMap;
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
434 434
435 std::vector<CPDF_Function*> m_pSubFunctions; 435 std::vector<CPDF_Function*> m_pSubFunctions;
436 FX_FLOAT* m_pBounds; 436 FX_FLOAT* m_pBounds;
437 FX_FLOAT* m_pEncode; 437 FX_FLOAT* m_pEncode;
438 438
439 static const int kRequiredNumInputs = 1; 439 static const int kRequiredNumInputs = 1;
440 }; 440 };
441 441
442 class CPDF_IccProfile { 442 class CPDF_IccProfile {
443 public: 443 public:
444 CPDF_IccProfile(const uint8_t* pData, FX_DWORD dwSize); 444 CPDF_IccProfile(const uint8_t* pData, uint32_t dwSize);
445 ~CPDF_IccProfile(); 445 ~CPDF_IccProfile();
446 FX_DWORD GetComponents() const { return m_nSrcComponents; } 446 uint32_t GetComponents() const { return m_nSrcComponents; }
447 FX_BOOL m_bsRGB; 447 FX_BOOL m_bsRGB;
448 void* m_pTransform; 448 void* m_pTransform;
449 449
450 private: 450 private:
451 FX_DWORD m_nSrcComponents; 451 uint32_t m_nSrcComponents;
452 }; 452 };
453 453
454 class CPDF_DeviceCS : public CPDF_ColorSpace { 454 class CPDF_DeviceCS : public CPDF_ColorSpace {
455 public: 455 public:
456 CPDF_DeviceCS(CPDF_Document* pDoc, int family); 456 CPDF_DeviceCS(CPDF_Document* pDoc, int family);
457 457
458 FX_BOOL GetRGB(FX_FLOAT* pBuf, 458 FX_BOOL GetRGB(FX_FLOAT* pBuf,
459 FX_FLOAT& R, 459 FX_FLOAT& R,
460 FX_FLOAT& G, 460 FX_FLOAT& G,
461 FX_FLOAT& B) const override; 461 FX_FLOAT& B) const override;
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
502 CPDF_Pattern* m_pPattern; 502 CPDF_Pattern* m_pPattern;
503 CPDF_CountedPattern* m_pCountedPattern; 503 CPDF_CountedPattern* m_pCountedPattern;
504 int m_nComps; 504 int m_nComps;
505 FX_FLOAT m_Comps[MAX_PATTERN_COLORCOMPS]; 505 FX_FLOAT m_Comps[MAX_PATTERN_COLORCOMPS];
506 }; 506 };
507 507
508 void PDF_ReplaceAbbr(CPDF_Object* pObj); 508 void PDF_ReplaceAbbr(CPDF_Object* pObj);
509 bool IsPathOperator(const uint8_t* buf, size_t len); 509 bool IsPathOperator(const uint8_t* buf, size_t len);
510 510
511 #endif // CORE_FPDFAPI_FPDF_PAGE_PAGEINT_H_ 511 #endif // CORE_FPDFAPI_FPDF_PAGE_PAGEINT_H_
OLDNEW
« no previous file with comments | « core/fpdfapi/fpdf_page/include/cpdf_textobject.h ('k') | core/fpdfapi/fpdf_parser/cfdf_document.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698