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

Unified Diff: core/include/fpdfapi/fpdf_objects.h

Issue 1194933003: Make CPDF_Object::GetString() a virtual method. (Closed) Base URL: https://pdfium.googlesource.com/pdfium@master
Patch Set: rebase Created 5 years, 5 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 side-by-side diff with in-line comments
Download patch
Index: core/include/fpdfapi/fpdf_objects.h
diff --git a/core/include/fpdfapi/fpdf_objects.h b/core/include/fpdfapi/fpdf_objects.h
index 570dc410c208c0a14559a6602286498b54f5eadc..81bb3ff3ecc65ab0a12761ea2af8ee0e66503a63 100644
--- a/core/include/fpdfapi/fpdf_objects.h
+++ b/core/include/fpdfapi/fpdf_objects.h
@@ -41,7 +41,6 @@ typedef IFX_FileStream* (*FPDF_LPFCloneStreamCallback)(CPDF_Stream *pStream, voi
class CPDF_Object
{
public:
-
int GetType() const
{
return m_Type;
@@ -67,7 +66,7 @@ public:
void Release();
- CFX_ByteString GetString() const;
+ virtual CFX_ByteString GetString() const;
CFX_ByteStringC GetConstString() const;
@@ -94,7 +93,7 @@ public:
}
protected:
CPDF_Object(FX_DWORD type) : m_Type(type), m_ObjNum(0), m_GenNum(0) { }
- ~CPDF_Object() { }
+ virtual ~CPDF_Object() {}
Tom Sepez 2015/07/16 20:24:46 Right, now that we are paying the price for a vtab
void Destroy();
Tom Sepez 2015/07/16 20:24:46 Remove Destroy() now that we have virtual destruct
static const int OBJECT_REF_MAX_DEPTH = 128;
@@ -110,6 +109,7 @@ private:
CPDF_Object(const CPDF_Object& src) {}
CPDF_Object* CloneInternal(FX_BOOL bDirect, CFX_MapPtrToPtr* visited) const;
};
+
class CPDF_Boolean : public CPDF_Object
{
public:
@@ -121,16 +121,19 @@ public:
CPDF_Boolean() : CPDF_Object(PDFOBJ_BOOLEAN), m_bValue(false) { }
CPDF_Boolean(FX_BOOL value) : CPDF_Object(PDFOBJ_BOOLEAN), m_bValue(value) { }
+ ~CPDF_Boolean() override {}
FX_BOOL Identical(CPDF_Boolean* pOther) const
{
return m_bValue == pOther->m_bValue;
}
protected:
+ CFX_ByteString GetString() const override;
FX_BOOL m_bValue;
friend class CPDF_Object;
};
+
class CPDF_Number : public CPDF_Object
{
public:
@@ -165,9 +168,9 @@ public:
CPDF_Number(const CFX_ByteStringC& str);
- FX_BOOL Identical(CPDF_Number* pOther) const;
+ ~CPDF_Number() override {}
- CFX_ByteString GetString() const;
+ FX_BOOL Identical(CPDF_Number* pOther) const;
void SetString(const CFX_ByteStringC& str);
@@ -198,6 +201,7 @@ public:
return m_bInteger ? (FX_FLOAT)m_Integer : m_Float;
}
protected:
+ CFX_ByteString GetString() const override;
Tom Sepez 2015/07/16 20:24:46 not sure why this needs to be protected, either.
FX_BOOL m_bInteger;
@@ -209,6 +213,7 @@ protected:
};
friend class CPDF_Object;
};
+
class CPDF_String : public CPDF_Object
{
public:
@@ -231,10 +236,7 @@ public:
CPDF_String(const CFX_WideString& str);
- CFX_ByteString& GetString()
- {
- return m_String;
- }
+ ~CPDF_String() override {}
FX_BOOL Identical(CPDF_String* pOther) const
{
@@ -246,12 +248,14 @@ public:
return m_bHex;
}
protected:
+ CFX_ByteString GetString() const override;
Tom Sepez 2015/07/16 20:24:46 ditto
CFX_ByteString m_String;
FX_BOOL m_bHex;
friend class CPDF_Object;
};
+
class CPDF_Name : public CPDF_Object
{
public:
@@ -274,6 +278,7 @@ public:
CPDF_Name(const CFX_ByteString& str) : CPDF_Object(PDFOBJ_NAME), m_Name(str) { }
CPDF_Name(const CFX_ByteStringC& str) : CPDF_Object(PDFOBJ_NAME), m_Name(str) { }
CPDF_Name(const FX_CHAR* str) : CPDF_Object(PDFOBJ_NAME), m_Name(str) { }
+ ~CPDF_Name() override {}
CFX_ByteString& GetString()
{
@@ -285,10 +290,12 @@ public:
return m_Name == pOther->m_Name;
}
protected:
+ CFX_ByteString GetString() const override;
Tom Sepez 2015/07/16 20:24:46 ditto
CFX_ByteString m_Name;
friend class CPDF_Object;
};
+
class CPDF_Array : public CPDF_Object
{
public:
@@ -318,7 +325,7 @@ public:
- CFX_ByteString GetString(FX_DWORD index) const;
+ CFX_ByteString GetStringAt(FX_DWORD index) const;
Tom Sepez 2015/07/16 20:24:46 I presume this is the overriding overloaded method
CFX_ByteStringC GetConstString(FX_DWORD index) const;
@@ -380,12 +387,12 @@ public:
FX_BOOL Identical(CPDF_Array* pOther) const;
protected:
-
- ~CPDF_Array();
+ ~CPDF_Array() override;
CFX_PtrArray m_Objects;
friend class CPDF_Object;
};
+
class CPDF_Dictionary : public CPDF_Object
{
public:
@@ -401,15 +408,12 @@ public:
CPDF_Object* GetElementValue(const CFX_ByteStringC& key) const;
-
-
-
-
- CFX_ByteString GetString(const CFX_ByteStringC& key) const;
+ CFX_ByteString GetStringAt(const CFX_ByteStringC& key) const;
CFX_ByteStringC GetConstString(const CFX_ByteStringC& key) const;
- CFX_ByteString GetString(const CFX_ByteStringC& key, const CFX_ByteStringC& default_str) const;
+ CFX_ByteString GetStringAt(const CFX_ByteStringC& key,
+ const CFX_ByteStringC& default_str) const;
CFX_ByteStringC GetConstString(const CFX_ByteStringC& key, const CFX_ByteStringC& default_str) const;
@@ -496,13 +500,13 @@ public:
void AddValue(const CFX_ByteStringC& key, CPDF_Object* pObj);
protected:
-
- ~CPDF_Dictionary();
+ ~CPDF_Dictionary() override;
CFX_CMapByteStringToPtr m_Map;
friend class CPDF_Object;
};
+
class CPDF_Stream : public CPDF_Object
{
public:
@@ -546,8 +550,7 @@ public:
CPDF_Stream* Clone(FX_BOOL bDirect, FPDF_LPFCloneStreamCallback lpfCallback, void* pUserData) const;
protected:
-
- ~CPDF_Stream();
+ ~CPDF_Stream() override;
CPDF_Dictionary* m_pDict;
@@ -571,6 +574,7 @@ protected:
friend class CPDF_StreamAcc;
friend class CPDF_AttachmentAcc;
};
+
class CPDF_StreamAcc
{
public:
@@ -623,6 +627,7 @@ protected:
uint8_t* m_pSrcData;
};
+
CFX_DataFilter* FPDF_CreateFilter(const CFX_ByteStringC& name, const CPDF_Dictionary* pParam, int width = 0, int height = 0);
#define FPDF_FILTER_BUFFER_SIZE 20480
class CPDF_StreamFilter
@@ -661,6 +666,7 @@ protected:
uint8_t m_SrcBuffer[FPDF_FILTER_BUFFER_SIZE];
friend class CPDF_Stream;
};
+
class CPDF_Null : public CPDF_Object
{
public:
@@ -671,7 +677,9 @@ public:
}
CPDF_Null() : CPDF_Object(PDFOBJ_NULL) { }
+ ~CPDF_Null() override {}
};
+
class CPDF_Reference : public CPDF_Object
{
public:
@@ -684,6 +692,7 @@ public:
CPDF_Reference(CPDF_IndirectObjects* pDoc, int objnum)
: CPDF_Object(PDFOBJ_REFERENCE), m_pObjList(pDoc), m_RefObjNum(objnum) {
}
+ ~CPDF_Reference() override {}
CPDF_IndirectObjects* GetObjList() const
{
@@ -702,12 +711,14 @@ public:
return m_RefObjNum == pOther->m_RefObjNum;
}
protected:
+ CFX_ByteString GetString() const override;
CPDF_IndirectObjects* m_pObjList;
FX_DWORD m_RefObjNum;
friend class CPDF_Object;
};
+
class CPDF_IndirectObjects
{
public:
« no previous file with comments | « no previous file | core/include/fpdfdoc/fpdf_doc.h » ('j') | core/src/fpdfapi/fpdf_parser/fpdf_parser_objects.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698