Index: core/src/fpdfapi/fpdf_parser/fpdf_parser_objects.cpp |
diff --git a/core/src/fpdfapi/fpdf_parser/fpdf_parser_objects.cpp b/core/src/fpdfapi/fpdf_parser/fpdf_parser_objects.cpp |
index 3f9f4ccc8285e709ad79fc4b9a15826621f3efca..5a66d11c9198bd67cbdc7cf3ad0dbf4576fd3698 100644 |
--- a/core/src/fpdfapi/fpdf_parser/fpdf_parser_objects.cpp |
+++ b/core/src/fpdfapi/fpdf_parser/fpdf_parser_objects.cpp |
@@ -39,31 +39,12 @@ void CPDF_Object::Destroy() |
delete this; |
} |
} |
+ |
CFX_ByteString CPDF_Object::GetString() const |
{ |
- switch (m_Type) { |
- case PDFOBJ_BOOLEAN: |
- return ((CPDF_Boolean*)this)->m_bValue ? "true" : "false"; |
- case PDFOBJ_NUMBER: |
- return ((CPDF_Number*)this)->GetString(); |
- case PDFOBJ_STRING: |
- return ((CPDF_String*)this)->m_String; |
- case PDFOBJ_NAME: |
- return ((CPDF_Name*)this)->m_Name; |
- case PDFOBJ_REFERENCE: { |
- CPDF_Reference* pRef = (CPDF_Reference*)(void*)this; |
- if (pRef->m_pObjList == NULL) { |
- break; |
- } |
- CPDF_Object* pObj = pRef->m_pObjList->GetIndirectObject(pRef->m_RefObjNum); |
- if (pObj == NULL) { |
- return CFX_ByteString(); |
- } |
- return pObj->GetString(); |
- } |
- } |
return CFX_ByteString(); |
} |
+ |
CFX_ByteStringC CPDF_Object::GetConstString() const |
{ |
switch (m_Type) { |
@@ -341,6 +322,11 @@ void CPDF_Object::SetUnicodeText(const FX_WCHAR* pUnicodes, int len) |
} |
} |
+CFX_ByteString CPDF_Boolean::GetString() const |
+{ |
+ return m_bValue ? "true" : "false"; |
+} |
+ |
CPDF_Number::CPDF_Number(int value) |
: CPDF_Object(PDFOBJ_NUMBER), m_bInteger(TRUE), m_Integer(value) { |
} |
@@ -377,6 +363,17 @@ void CPDF_Number::SetNumber(FX_FLOAT value) |
CPDF_String::CPDF_String(const CFX_WideString& str) : CPDF_Object(PDFOBJ_STRING), m_bHex(FALSE) { |
m_String = PDF_EncodeText(str); |
} |
+ |
+CFX_ByteString CPDF_String::GetString() const |
+{ |
+ return m_String; |
+} |
+ |
+CFX_ByteString CPDF_Name::GetString() const |
+{ |
+ return m_Name; |
+} |
+ |
CPDF_Array::~CPDF_Array() |
{ |
int size = m_Objects.GetSize(); |
@@ -421,14 +418,13 @@ CPDF_Object* CPDF_Array::GetElementValue(FX_DWORD i) const |
} |
return ((CPDF_Object*)m_Objects.GetAt(i))->GetDirect(); |
Tom Sepez
2015/07/16 20:24:46
Given that m_Objects is of type CFX_PtrArray, and
|
} |
-CFX_ByteString CPDF_Array::GetString(FX_DWORD i) const |
+CFX_ByteString CPDF_Array::GetStringAt(FX_DWORD i) const |
{ |
if (i < (FX_DWORD)m_Objects.GetSize()) { |
CPDF_Object* p = (CPDF_Object*)m_Objects.GetAt(i); |
Tom Sepez
2015/07/16 20:24:46
nit: I'd really like this block to be a one-liner,
|
return p->GetString(); |
} |
- else |
- return CFX_ByteString(); |
+ return CFX_ByteString(); |
} |
CFX_ByteStringC CPDF_Array::GetConstString(FX_DWORD i) const |
{ |
@@ -436,8 +432,7 @@ CFX_ByteStringC CPDF_Array::GetConstString(FX_DWORD i) const |
CPDF_Object* p = (CPDF_Object*)m_Objects.GetAt(i); |
return p->GetConstString(); |
} |
- else |
- return CFX_ByteStringC(); |
+ return CFX_ByteStringC(); |
} |
int CPDF_Array::GetInteger(FX_DWORD i) const |
{ |
@@ -566,6 +561,7 @@ FX_BOOL CPDF_Array::Identical(CPDF_Array* pOther) const |
} |
return TRUE; |
} |
+ |
CPDF_Dictionary::~CPDF_Dictionary() |
{ |
FX_POSITION pos = m_Map.GetStartPosition(); |
@@ -600,7 +596,7 @@ CPDF_Object* CPDF_Dictionary::GetElementValue(const CFX_ByteStringC& key) const |
m_Map.Lookup(key, (void*&)p); |
return p ? p->GetDirect() : NULL; |
} |
-CFX_ByteString CPDF_Dictionary::GetString(const CFX_ByteStringC& key) const |
+CFX_ByteString CPDF_Dictionary::GetStringAt(const CFX_ByteStringC& key) const |
{ |
CPDF_Object* p = NULL; |
m_Map.Lookup(key, (void*&)p); |
@@ -634,7 +630,8 @@ CFX_WideString CPDF_Dictionary::GetUnicodeText(const CFX_ByteStringC& key, CFX_C |
} |
return CFX_WideString(); |
} |
-CFX_ByteString CPDF_Dictionary::GetString(const CFX_ByteStringC& key, const CFX_ByteStringC& def) const |
+CFX_ByteString CPDF_Dictionary::GetStringAt(const CFX_ByteStringC& key, |
+ const CFX_ByteStringC& def) const |
{ |
CPDF_Object* p = NULL; |
m_Map.Lookup(key, (void*&)p); |
@@ -857,6 +854,7 @@ void CPDF_Dictionary::SetAtMatrix(const CFX_ByteStringC& key, const CFX_AffineMa |
pArray->AddNumber(matrix.f); |
SetAt(key, pArray); |
} |
+ |
CPDF_Stream::CPDF_Stream(uint8_t* pData, FX_DWORD size, CPDF_Dictionary* pDict) |
: CPDF_Object(PDFOBJ_STREAM) { |
m_pDict = pDict; |
@@ -1127,6 +1125,7 @@ void CPDF_StreamAcc::LoadAllData(const CPDF_Stream* pStream, FX_BOOL bRawAccess, |
m_pSrcData = NULL; |
m_bNewBuf = m_pData != pStream->m_pDataBuf; |
} |
+ |
CPDF_StreamAcc::~CPDF_StreamAcc() |
{ |
if (m_bNewBuf && m_pData) { |
@@ -1173,6 +1172,17 @@ void CPDF_Reference::SetRef(CPDF_IndirectObjects* pDoc, FX_DWORD objnum) |
m_pObjList = pDoc; |
m_RefObjNum = objnum; |
} |
+ |
+CFX_ByteString CPDF_Reference::GetString() const |
+{ |
+ if (m_pObjList) { |
+ CPDF_Object* pObj = m_pObjList->GetIndirectObject(m_RefObjNum); |
+ if (pObj) |
+ return pObj->GetString(); |
+ } |
+ return CFX_ByteString(); |
+} |
+ |
CPDF_IndirectObjects::CPDF_IndirectObjects(CPDF_Parser* pParser) |
{ |
m_pParser = pParser; |