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

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

Issue 656753002: Store the address of the page data map's value for proper referencing. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: typedef Created 6 years, 2 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 _PAGEINT_H_ 7 #ifndef _PAGEINT_H_
8 #define _PAGEINT_H_ 8 #define _PAGEINT_H_
9 9
10 #include "../../../include/fpdfapi/fpdf_pageobj.h" 10 #include "../../../include/fpdfapi/fpdf_pageobj.h"
(...skipping 346 matching lines...) Expand 10 before | Expand all | Expand 10 after
357 public: 357 public:
358 CPDF_AllStates(); 358 CPDF_AllStates();
359 ~CPDF_AllStates(); 359 ~CPDF_AllStates();
360 void Copy(const CPDF_AllStates& src); 360 void Copy(const CPDF_AllStates& src);
361 void ProcessExtGS(CPDF_Dictionary* pGS, CPDF_StreamContentParser* pPa rser); 361 void ProcessExtGS(CPDF_Dictionary* pGS, CPDF_StreamContentParser* pPa rser);
362 void SetLineDash(CPDF_Array*, FX_FLOAT, FX_FLOAT scale); 362 void SetLineDash(CPDF_Array*, FX_FLOAT, FX_FLOAT scale);
363 CFX_AffineMatrix m_TextMatrix, m_CTM, m_ParentMatrix; 363 CFX_AffineMatrix m_TextMatrix, m_CTM, m_ParentMatrix;
364 FX_FLOAT m_TextX, m_TextY, m_TextLineX, m_TextLin eY; 364 FX_FLOAT m_TextX, m_TextY, m_TextLineX, m_TextLin eY;
365 FX_FLOAT m_TextLeading, m_TextRise, m_TextHorzSca le; 365 FX_FLOAT m_TextLeading, m_TextRise, m_TextHorzSca le;
366 }; 366 };
367 template <class ObjClass> class CPDF_CountedObject : public CFX_Object 367
368 {
369 public:
370 ObjClass» m_Obj;
371 FX_DWORD» m_nCount;
372 };
373 typedef CFX_MapPtrTemplate<CPDF_Dictionary*, CPDF_CountedObject<CPDF_Font*>*>» » CPDF_FontMap;
374 typedef CFX_MapPtrTemplate<CPDF_Object*, CPDF_CountedObject<CPDF_ColorSpace*>*>» » CPDF_ColorSpaceMap;
375 typedef CFX_MapPtrTemplate<CPDF_Object*, CPDF_CountedObject<CPDF_Pattern*>*>» » CPDF_PatternMap;
376 typedef CFX_MapPtrTemplate<FX_DWORD, CPDF_CountedObject<CPDF_Image*>*>» » » » CPDF_ImageMap;
377 typedef CFX_MapPtrTemplate<CPDF_Stream*, CPDF_CountedObject<CPDF_IccProfile*>*>» » CPDF_IccProfileMap;
378 typedef CFX_MapPtrTemplate<CPDF_Stream*, CPDF_CountedObject<CPDF_StreamAcc*>*>» » CPDF_FontFileMap;
379 template <class KeyType, class ValueType> 368 template <class KeyType, class ValueType>
380 KeyType PDF_DocPageData_FindValue(const CFX_MapPtrTemplate<KeyType, CPDF_Counted Object<ValueType>*> &map, ValueType findValue, CPDF_CountedObject<ValueType>*& f indData) 369 KeyType PDF_DocPageData_FindValue(const CFX_MapPtrTemplate<KeyType, CPDF_Counted Object<ValueType>*> &map, ValueType findValue, CPDF_CountedObject<ValueType>*& f indData)
381 { 370 {
382 FX_POSITION pos = map.GetStartPosition(); 371 FX_POSITION pos = map.GetStartPosition();
383 while (pos) { 372 while (pos) {
384 KeyType findKey; 373 KeyType findKey;
385 map.GetNextAssoc(pos, findKey, findData); 374 map.GetNextAssoc(pos, findKey, findData);
386 if (findData->m_Obj == findValue) { 375 if (findData->m_Obj == findValue) {
387 return findKey; 376 return findKey;
388 } 377 }
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
424 void ReleaseColorSpace(CPDF_Object* pColorSpace); 413 void ReleaseColorSpace(CPDF_Object* pColorSpace);
425 CPDF_Pattern* GetPattern(CPDF_Object* pPatternObj, FX_BOOL bSh ading, const CFX_AffineMatrix* matrix); 414 CPDF_Pattern* GetPattern(CPDF_Object* pPatternObj, FX_BOOL bSh ading, const CFX_AffineMatrix* matrix);
426 void ReleasePattern(CPDF_Object* pPatternObj); 415 void ReleasePattern(CPDF_Object* pPatternObj);
427 CPDF_Image* GetImage(CPDF_Object* pImageStream); 416 CPDF_Image* GetImage(CPDF_Object* pImageStream);
428 void ReleaseImage(CPDF_Object* pImageStream); 417 void ReleaseImage(CPDF_Object* pImageStream);
429 CPDF_IccProfile* GetIccProfile(CPDF_Stream* pIccProfileStream); 418 CPDF_IccProfile* GetIccProfile(CPDF_Stream* pIccProfileStream);
430 void ReleaseIccProfile(CPDF_Stream* pIccProfileStream , CPDF_IccProfile* pIccProfile); 419 void ReleaseIccProfile(CPDF_Stream* pIccProfileStream , CPDF_IccProfile* pIccProfile);
431 CPDF_StreamAcc* GetFontFileStreamAcc(CPDF_Stream* pFontStream); 420 CPDF_StreamAcc* GetFontFileStreamAcc(CPDF_Stream* pFontStream);
432 void ReleaseFontFileStreamAcc(CPDF_Stream* pFontStrea m, FX_BOOL bForce = FALSE); 421 void ReleaseFontFileStreamAcc(CPDF_Stream* pFontStrea m, FX_BOOL bForce = FALSE);
433 FX_BOOL IsForceClear() const {return m_bForceClear;} 422 FX_BOOL IsForceClear() const {return m_bForceClear;}
423 CPDF_CountedColorSpace* FindColorSpacePtr(CPDF_Object* pCSObj) const;
424 CPDF_CountedPattern* FindPatternPtr(CPDF_Object* pPatternObj) const;
434 425
435 CPDF_Document* m_pPDFDoc; 426 CPDF_Document* m_pPDFDoc;
436 CPDF_FontMap m_FontMap; 427 CPDF_FontMap m_FontMap;
437 CPDF_ColorSpaceMap m_ColorSpaceMap; 428 CPDF_ColorSpaceMap m_ColorSpaceMap;
438 CPDF_PatternMap m_PatternMap; 429 CPDF_PatternMap m_PatternMap;
439 CPDF_ImageMap m_ImageMap; 430 CPDF_ImageMap m_ImageMap;
440 CPDF_IccProfileMap m_IccProfileMap; 431 CPDF_IccProfileMap m_IccProfileMap;
441 CFX_MapByteStringToPtr m_HashProfileMap; 432 CFX_MapByteStringToPtr m_HashProfileMap;
442 CPDF_FontFileMap m_FontFileMap; 433 CPDF_FontFileMap m_FontFileMap;
443 FX_BOOL m_bForceClear; 434 FX_BOOL m_bForceClear;
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
490 public: 481 public:
491 CPDF_PatternCS(); 482 CPDF_PatternCS();
492 ~CPDF_PatternCS(); 483 ~CPDF_PatternCS();
493 virtual FX_BOOL v_Load(CPDF_Document* pDoc, CPDF_Array* pArray); 484 virtual FX_BOOL v_Load(CPDF_Document* pDoc, CPDF_Array* pArray);
494 virtual FX_BOOL GetRGB(FX_FLOAT* pBuf, FX_FLOAT& R, FX_FLOAT& G, FX_FLOAT& B) const; 485 virtual FX_BOOL GetRGB(FX_FLOAT* pBuf, FX_FLOAT& R, FX_FLOAT& G, FX_FLOAT& B) const;
495 virtual CPDF_ColorSpace* GetBaseCS() const 486 virtual CPDF_ColorSpace* GetBaseCS() const
496 { 487 {
497 return m_pBaseCS; 488 return m_pBaseCS;
498 } 489 }
499 CPDF_ColorSpace* m_pBaseCS; 490 CPDF_ColorSpace* m_pBaseCS;
491 CPDF_CountedColorSpace* m_pCountedBaseCS;
500 }; 492 };
501 #define MAX_PAGE_OBJECTS_UNIFY_NAMING 4096 493 #define MAX_PAGE_OBJECTS_UNIFY_NAMING 4096
502 class CPDF_ResourceNaming : public CFX_Object 494 class CPDF_ResourceNaming : public CFX_Object
503 { 495 {
504 public: 496 public:
505 struct _NamingState : public CFX_Object { 497 struct _NamingState : public CFX_Object {
506 CFX_ByteString m_Prefix; 498 CFX_ByteString m_Prefix;
507 int m_nIndex; 499 int m_nIndex;
508 }; 500 };
509 ~CPDF_ResourceNaming(); 501 ~CPDF_ResourceNaming();
510 CFX_ByteString GetName(const CPDF_Dictionary* pResList, FX_LPCS TR szType); 502 CFX_ByteString GetName(const CPDF_Dictionary* pResList, FX_LPCS TR szType);
511 protected: 503 protected:
512 CFX_MapByteStringToPtr m_NamingCache; 504 CFX_MapByteStringToPtr m_NamingCache;
513 }; 505 };
514 506
515 #endif // _PAGEINT_H_ 507 #endif // _PAGEINT_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698