Index: core/include/fpdfapi/fpdf_objects.h |
diff --git a/core/include/fpdfapi/fpdf_objects.h b/core/include/fpdfapi/fpdf_objects.h |
index 5e17685e65e3cfd08a8b1e9caddec8b4d0e94934..80d978ecd9ea7af17de958d0684cdb40aedc7a84 100644 |
--- a/core/include/fpdfapi/fpdf_objects.h |
+++ b/core/include/fpdfapi/fpdf_objects.h |
@@ -18,7 +18,7 @@ class CPDF_Boolean; |
class CPDF_CryptoHandler; |
class CPDF_Dictionary; |
class CPDF_Document; |
-class CPDF_IndirectObjects; |
+class CPDF_IndirectObjectHolder; |
class CPDF_Name; |
class CPDF_Null; |
class CPDF_Number; |
@@ -54,7 +54,7 @@ class CPDF_Object { |
CPDF_Object* Clone(FX_BOOL bDirect = FALSE) const; |
- CPDF_Object* CloneRef(CPDF_IndirectObjects* pObjs) const; |
+ CPDF_Object* CloneRef(CPDF_IndirectObjectHolder* pObjs) const; |
CPDF_Object* GetDirect() const; |
@@ -128,7 +128,7 @@ class CPDF_Object { |
FX_DWORD m_ObjNum; |
FX_DWORD m_GenNum; |
- friend class CPDF_IndirectObjects; |
+ friend class CPDF_IndirectObjectHolder; |
friend class CPDF_Parser; |
friend class CPDF_SyntaxParser; |
@@ -295,15 +295,15 @@ class CPDF_Array : public CPDF_Object { |
void SetAt(FX_DWORD index, |
CPDF_Object* pObj, |
- CPDF_IndirectObjects* pObjs = NULL); |
+ CPDF_IndirectObjectHolder* pObjs = NULL); |
void InsertAt(FX_DWORD index, |
CPDF_Object* pObj, |
- CPDF_IndirectObjects* pObjs = NULL); |
+ CPDF_IndirectObjectHolder* pObjs = NULL); |
void RemoveAt(FX_DWORD index, int nCount = 1); |
- void Add(CPDF_Object* pObj, CPDF_IndirectObjects* pObjs = NULL); |
+ void Add(CPDF_Object* pObj, CPDF_IndirectObjectHolder* pObjs = NULL); |
void AddNumber(FX_FLOAT f); |
@@ -313,9 +313,9 @@ class CPDF_Array : public CPDF_Object { |
void AddName(const CFX_ByteString& str); |
- void AddReference(CPDF_IndirectObjects* pDoc, FX_DWORD objnum); |
+ void AddReference(CPDF_IndirectObjectHolder* pDoc, FX_DWORD objnum); |
- void AddReference(CPDF_IndirectObjects* pDoc, CPDF_Object* obj) { |
+ void AddReference(CPDF_IndirectObjectHolder* pDoc, CPDF_Object* obj) { |
AddReference(pDoc, obj->GetObjNum()); |
} |
@@ -396,17 +396,17 @@ class CPDF_Dictionary : public CPDF_Object { |
void SetAtNumber(const CFX_ByteStringC& key, FX_FLOAT f); |
void SetAtReference(const CFX_ByteStringC& key, |
- CPDF_IndirectObjects* pDoc, |
+ CPDF_IndirectObjectHolder* pDoc, |
FX_DWORD objnum); |
void SetAtReference(const CFX_ByteStringC& key, |
- CPDF_IndirectObjects* pDoc, |
+ CPDF_IndirectObjectHolder* pDoc, |
CPDF_Object* obj) { |
SetAtReference(key, pDoc, obj->GetObjNum()); |
} |
void AddReference(const CFX_ByteStringC& key, |
- CPDF_IndirectObjects* pDoc, |
+ CPDF_IndirectObjectHolder* pDoc, |
FX_DWORD objnum); |
void SetAtRect(const CFX_ByteStringC& key, const CFX_FloatRect& rect); |
@@ -548,21 +548,21 @@ class CPDF_Null : public CPDF_Object { |
class CPDF_Reference : public CPDF_Object { |
public: |
- CPDF_Reference(CPDF_IndirectObjects* pDoc, int objnum) |
+ CPDF_Reference(CPDF_IndirectObjectHolder* pDoc, int objnum) |
: CPDF_Object(PDFOBJ_REFERENCE), m_pObjList(pDoc), m_RefObjNum(objnum) {} |
- CPDF_IndirectObjects* GetObjList() const { return m_pObjList; } |
+ CPDF_IndirectObjectHolder* GetObjList() const { return m_pObjList; } |
FX_DWORD GetRefObjNum() const { return m_RefObjNum; } |
- void SetRef(CPDF_IndirectObjects* pDoc, FX_DWORD objnum); |
+ void SetRef(CPDF_IndirectObjectHolder* pDoc, FX_DWORD objnum); |
FX_BOOL Identical(CPDF_Reference* pOther) const { |
return m_RefObjNum == pOther->m_RefObjNum; |
} |
protected: |
- CPDF_IndirectObjects* m_pObjList; |
+ CPDF_IndirectObjectHolder* m_pObjList; |
FX_DWORD m_RefObjNum; |
friend class CPDF_Object; |
@@ -574,40 +574,32 @@ inline const CPDF_Reference* ToReference(const CPDF_Object* obj) { |
return obj ? obj->AsReference() : nullptr; |
} |
-class CPDF_IndirectObjects { |
+class CPDF_IndirectObjectHolder { |
public: |
- explicit CPDF_IndirectObjects(CPDF_Parser* pParser); |
+ using iterator = std::map<FX_DWORD, CPDF_Object*>::iterator; |
+ using const_iterator = std::map<FX_DWORD, CPDF_Object*>::const_iterator; |
- ~CPDF_IndirectObjects(); |
- |
- CPDF_Object* GetIndirectObject(FX_DWORD objnum, PARSE_CONTEXT* pContext); |
+ explicit CPDF_IndirectObjectHolder(CPDF_Parser* pParser); |
+ ~CPDF_IndirectObjectHolder(); |
int GetIndirectType(FX_DWORD objnum); |
- |
+ CPDF_Object* GetIndirectObject(FX_DWORD objnum, PARSE_CONTEXT* pContext); |
FX_DWORD AddIndirectObject(CPDF_Object* pObj); |
- |
void ReleaseIndirectObject(FX_DWORD objnum); |
+ |
// Takes ownership of |pObj|. |
FX_BOOL InsertIndirectObject(FX_DWORD objnum, CPDF_Object* pObj); |
- FX_DWORD GetLastObjNum() const; |
- |
- FX_POSITION GetStartPosition() const { |
- return m_IndirectObjs.GetStartPosition(); |
- } |
- |
- void GetNextAssoc(FX_POSITION& rPos, |
- FX_DWORD& objnum, |
- CPDF_Object*& pObject) const { |
- m_IndirectObjs.GetNextAssoc(rPos, (void*&)objnum, (void*&)pObject); |
- } |
+ FX_DWORD GetLastObjNum() const { return m_LastObjNum; } |
+ iterator begin() { return m_IndirectObjs.begin(); } |
+ const_iterator begin() const { return m_IndirectObjs.cbegin(); } |
+ iterator end() { return m_IndirectObjs.end(); } |
+ const_iterator end() const { return m_IndirectObjs.end(); } |
protected: |
- CFX_MapPtrToPtr m_IndirectObjs; |
- |
CPDF_Parser* m_pParser; |
- |
FX_DWORD m_LastObjNum; |
+ std::map<FX_DWORD, CPDF_Object*> m_IndirectObjs; |
}; |
#endif // CORE_INCLUDE_FPDFAPI_FPDF_OBJECTS_H_ |