summaryrefslogtreecommitdiff
path: root/core/src/fpdfapi
diff options
context:
space:
mode:
authorLei Zhang <thestig@chromium.org>2015-12-22 14:37:03 -0800
committerLei Zhang <thestig@chromium.org>2015-12-22 14:37:03 -0800
commitbe9095d0b2819cdc88785b0b4fdfccf837eb96a9 (patch)
tree8c81760b66d1e8da186bddc52d38f350f4e85bf1 /core/src/fpdfapi
parent2d63eaaa39bb3d402c658b2a6e0eae50a30f1d89 (diff)
downloadpdfium-be9095d0b2819cdc88785b0b4fdfccf837eb96a9.tar.xz
Revert "Cleanup: Remove unused CFX_PSRenderer and various encoders it used."
This reverts commit 2d63eaaa39bb3d402c658b2a6e0eae50a30f1d89. Broke the Windows build, though it is likely the code is unused on Windows too. Review URL: https://codereview.chromium.org/1540993004 .
Diffstat (limited to 'core/src/fpdfapi')
-rw-r--r--core/src/fpdfapi/fpdf_edit/fpdf_edit_create.cpp95
-rw-r--r--core/src/fpdfapi/fpdf_edit/fpdf_edit_image.cpp7
-rw-r--r--core/src/fpdfapi/fpdf_parser/fpdf_parser_decode.cpp35
-rw-r--r--core/src/fpdfapi/fpdf_parser/fpdf_parser_decode_embeddertest.cpp12
-rw-r--r--core/src/fpdfapi/fpdf_render/fpdf_render_loadimage.cpp6
5 files changed, 70 insertions, 85 deletions
diff --git a/core/src/fpdfapi/fpdf_edit/fpdf_edit_create.cpp b/core/src/fpdfapi/fpdf_edit/fpdf_edit_create.cpp
index 1151c6390e..49ec0bae92 100644
--- a/core/src/fpdfapi/fpdf_edit/fpdf_edit_create.cpp
+++ b/core/src/fpdfapi/fpdf_edit/fpdf_edit_create.cpp
@@ -307,11 +307,11 @@ class CPDF_FlateEncoder {
public:
CPDF_FlateEncoder();
~CPDF_FlateEncoder();
- bool Initialize(CPDF_Stream* pStream, FX_BOOL bFlateEncode);
- bool Initialize(const uint8_t* pBuffer,
- FX_DWORD size,
- bool bFlateEncode,
- bool bXRefStream);
+ FX_BOOL Initialize(CPDF_Stream* pStream, FX_BOOL bFlateEncode);
+ FX_BOOL Initialize(const uint8_t* pBuffer,
+ FX_DWORD size,
+ FX_BOOL bFlateEncode,
+ FX_BOOL bXRefStream = FALSE);
void CloneDict();
uint8_t* m_pData;
FX_DWORD m_dwSize;
@@ -334,7 +334,8 @@ void CPDF_FlateEncoder::CloneDict() {
m_bCloned = TRUE;
}
}
-bool CPDF_FlateEncoder::Initialize(CPDF_Stream* pStream, FX_BOOL bFlateEncode) {
+FX_BOOL CPDF_FlateEncoder::Initialize(CPDF_Stream* pStream,
+ FX_BOOL bFlateEncode) {
m_Acc.LoadAllData(pStream, TRUE);
if ((pStream && pStream->GetDict() &&
pStream->GetDict()->KeyExist("Filter")) ||
@@ -353,41 +354,36 @@ bool CPDF_FlateEncoder::Initialize(CPDF_Stream* pStream, FX_BOOL bFlateEncode) {
m_dwSize = m_Acc.GetSize();
m_pDict = pStream->GetDict();
}
- return true;
+ return TRUE;
}
- m_pData = nullptr;
+ m_pData = NULL;
m_dwSize = 0;
m_bNewData = TRUE;
m_bCloned = TRUE;
- if (!::FlateEncode(m_Acc.GetData(), m_Acc.GetSize(), &m_pData, &m_dwSize))
- return false;
-
+ ::FlateEncode(m_Acc.GetData(), m_Acc.GetSize(), m_pData, m_dwSize);
m_pDict = ToDictionary(pStream->GetDict()->Clone());
m_pDict->SetAtInteger("Length", m_dwSize);
m_pDict->SetAtName("Filter", "FlateDecode");
m_pDict->RemoveAt("DecodeParms");
- return true;
+ return TRUE;
}
-
-bool CPDF_FlateEncoder::Initialize(const uint8_t* pBuffer,
- FX_DWORD size,
- bool bFlateEncode,
- bool bXRefStream) {
+FX_BOOL CPDF_FlateEncoder::Initialize(const uint8_t* pBuffer,
+ FX_DWORD size,
+ FX_BOOL bFlateEncode,
+ FX_BOOL bXRefStream) {
if (!bFlateEncode) {
m_pData = (uint8_t*)pBuffer;
m_dwSize = size;
- return true;
+ return TRUE;
}
m_bNewData = TRUE;
- bool ret;
if (bXRefStream) {
- ret = ::PngEncode(pBuffer, size, &m_pData, &m_dwSize);
+ ::FlateEncode(pBuffer, size, 12, 1, 8, 7, m_pData, m_dwSize);
} else {
- ret = ::FlateEncode(pBuffer, size, &m_pData, &m_dwSize);
+ ::FlateEncode(pBuffer, size, m_pData, m_dwSize);
}
- return ret;
+ return TRUE;
}
-
CPDF_FlateEncoder::~CPDF_FlateEncoder() {
if (m_bCloned && m_pDict) {
m_pDict->Release();
@@ -522,15 +518,11 @@ FX_FILESIZE CPDF_ObjectStream::End(CPDF_Creator* pCreator) {
} else {
tempBuffer << m_Buffer;
CPDF_FlateEncoder encoder;
- if (!encoder.Initialize(tempBuffer.GetBuffer(), tempBuffer.GetLength(),
- pCreator->m_bCompress, false)) {
- return -1;
- }
+ encoder.Initialize(tempBuffer.GetBuffer(), tempBuffer.GetLength(),
+ pCreator->m_bCompress);
CPDF_Encryptor encryptor;
- if (!encryptor.Initialize(pHandler, m_dwObjNum, encoder.m_pData,
- encoder.m_dwSize)) {
- return -1;
- }
+ encryptor.Initialize(pHandler, m_dwObjNum, encoder.m_pData,
+ encoder.m_dwSize);
if ((len = pFile->AppendDWord(encryptor.m_dwSize)) < 0) {
return -1;
}
@@ -776,21 +768,22 @@ FX_BOOL CPDF_XRefStream::GenerateXRefStream(CPDF_Creator* pCreator,
}
offset += len + 6;
}
+ FX_BOOL bPredictor = TRUE;
CPDF_FlateEncoder encoder;
- if (!encoder.Initialize(m_Buffer.GetBuffer(), m_Buffer.GetLength(),
- pCreator->m_bCompress, true)) {
- return FALSE;
- }
+ encoder.Initialize(m_Buffer.GetBuffer(), m_Buffer.GetLength(),
+ pCreator->m_bCompress, bPredictor);
if (pCreator->m_bCompress) {
if (pFile->AppendString("/Filter /FlateDecode") < 0) {
return FALSE;
}
offset += 20;
- if ((len = pFile->AppendString("/DecodeParms<</Columns 7/Predictor 12>>")) <
- 0) {
- return FALSE;
+ if (bPredictor) {
+ if ((len = pFile->AppendString(
+ "/DecodeParms<</Columns 7/Predictor 12>>")) < 0) {
+ return FALSE;
+ }
+ offset += len;
}
- offset += len;
}
if (pFile->AppendString("/Length ") < 0) {
return FALSE;
@@ -1009,10 +1002,8 @@ int32_t CPDF_Creator::WriteStream(const CPDF_Object* pStream,
FX_DWORD objnum,
CPDF_CryptoHandler* pCrypto) {
CPDF_FlateEncoder encoder;
- if (!encoder.Initialize(const_cast<CPDF_Stream*>(pStream->AsStream()),
- pStream == m_pMetadata ? FALSE : m_bCompress)) {
- return -1;
- }
+ encoder.Initialize(const_cast<CPDF_Stream*>(pStream->AsStream()),
+ pStream == m_pMetadata ? FALSE : m_bCompress);
CPDF_Encryptor encryptor;
if (!encryptor.Initialize(pCrypto, objnum, encoder.m_pData,
encoder.m_dwSize)) {
@@ -1116,10 +1107,8 @@ int32_t CPDF_Creator::WriteDirectObj(FX_DWORD objnum,
break;
}
CPDF_Encryptor encryptor;
- if (!encryptor.Initialize(m_pCryptoHandler, objnum, (uint8_t*)str.c_str(),
- str.GetLength())) {
- return -1;
- }
+ encryptor.Initialize(m_pCryptoHandler, objnum, (uint8_t*)str.c_str(),
+ str.GetLength());
CFX_ByteString content = PDF_EncodeString(
CFX_ByteString((const FX_CHAR*)encryptor.m_pData, encryptor.m_dwSize),
bHex);
@@ -1131,17 +1120,11 @@ int32_t CPDF_Creator::WriteDirectObj(FX_DWORD objnum,
}
case PDFOBJ_STREAM: {
CPDF_FlateEncoder encoder;
- if (!encoder.Initialize(const_cast<CPDF_Stream*>(pObj->AsStream()),
- m_bCompress)) {
- return -1;
- }
-
+ encoder.Initialize(const_cast<CPDF_Stream*>(pObj->AsStream()),
+ m_bCompress);
CPDF_Encryptor encryptor;
CPDF_CryptoHandler* pHandler = m_pCryptoHandler;
- if (!encryptor.Initialize(pHandler, objnum, encoder.m_pData,
- encoder.m_dwSize)) {
- return -1;
- }
+ encryptor.Initialize(pHandler, objnum, encoder.m_pData, encoder.m_dwSize);
if ((FX_DWORD)encoder.m_pDict->GetInteger("Length") !=
encryptor.m_dwSize) {
encoder.CloneDict();
diff --git a/core/src/fpdfapi/fpdf_edit/fpdf_edit_image.cpp b/core/src/fpdfapi/fpdf_edit/fpdf_edit_image.cpp
index 386c49d005..2b68a0403f 100644
--- a/core/src/fpdfapi/fpdf_edit/fpdf_edit_image.cpp
+++ b/core/src/fpdfapi/fpdf_edit/fpdf_edit_image.cpp
@@ -16,12 +16,11 @@ CPDF_Dictionary* CPDF_Image::InitJPEG(uint8_t* pData, FX_DWORD size) {
int32_t height;
int32_t num_comps;
int32_t bits;
- bool color_trans;
+ FX_BOOL color_trans;
if (!CPDF_ModuleMgr::Get()->GetJpegModule()->LoadInfo(
- pData, size, &width, &height, &num_comps, &bits, &color_trans)) {
- return nullptr;
+ pData, size, width, height, num_comps, bits, color_trans)) {
+ return NULL;
}
-
CPDF_Dictionary* pDict = new CPDF_Dictionary;
pDict->SetAtName("Type", "XObject");
pDict->SetAtName("Subtype", "Image");
diff --git a/core/src/fpdfapi/fpdf_parser/fpdf_parser_decode.cpp b/core/src/fpdfapi/fpdf_parser/fpdf_parser_decode.cpp
index 8832940f80..c855a7c5c2 100644
--- a/core/src/fpdfapi/fpdf_parser/fpdf_parser_decode.cpp
+++ b/core/src/fpdfapi/fpdf_parser/fpdf_parser_decode.cpp
@@ -540,27 +540,30 @@ CFX_ByteString PDF_EncodeString(const CFX_ByteString& src, FX_BOOL bHex) {
result.AppendChar(')');
return result.GetByteString();
}
-
-bool FlateEncode(const uint8_t* src_buf,
+void FlateEncode(const uint8_t* src_buf,
FX_DWORD src_size,
- uint8_t** dest_buf,
- FX_DWORD* dest_size) {
+ uint8_t*& dest_buf,
+ FX_DWORD& dest_size) {
CCodec_ModuleMgr* pEncoders = CPDF_ModuleMgr::Get()->GetCodecModule();
- return pEncoders &&
- pEncoders->GetFlateModule()->Encode(src_buf, src_size, dest_buf,
- dest_size);
+ if (pEncoders) {
+ pEncoders->GetFlateModule()->Encode(src_buf, src_size, dest_buf, dest_size);
+ }
}
-
-bool PngEncode(const uint8_t* src_buf,
- FX_DWORD src_size,
- uint8_t** dest_buf,
- FX_DWORD* dest_size) {
+void FlateEncode(const uint8_t* src_buf,
+ FX_DWORD src_size,
+ int predictor,
+ int Colors,
+ int BitsPerComponent,
+ int Columns,
+ uint8_t*& dest_buf,
+ FX_DWORD& dest_size) {
CCodec_ModuleMgr* pEncoders = CPDF_ModuleMgr::Get()->GetCodecModule();
- return pEncoders &&
- pEncoders->GetFlateModule()->Encode(src_buf, src_size, dest_buf,
- dest_size);
+ if (pEncoders) {
+ pEncoders->GetFlateModule()->Encode(src_buf, src_size, predictor, Colors,
+ BitsPerComponent, Columns, dest_buf,
+ dest_size);
+ }
}
-
FX_DWORD FlateDecode(const uint8_t* src_buf,
FX_DWORD src_size,
uint8_t*& dest_buf,
diff --git a/core/src/fpdfapi/fpdf_parser/fpdf_parser_decode_embeddertest.cpp b/core/src/fpdfapi/fpdf_parser/fpdf_parser_decode_embeddertest.cpp
index 810a633c83..c80770366b 100644
--- a/core/src/fpdfapi/fpdf_parser/fpdf_parser_decode_embeddertest.cpp
+++ b/core/src/fpdfapi/fpdf_parser/fpdf_parser_decode_embeddertest.cpp
@@ -47,14 +47,14 @@ TEST_F(FPDFParserDecodeEmbeddertest, FlateEncode) {
for (size_t i = 0; i < FX_ArraySize(flate_encode_cases); ++i) {
FlateEncodeCase* ptr = &flate_encode_cases[i];
- unsigned char* buf;
- unsigned int buf_size;
- EXPECT_TRUE(FlateEncode(ptr->input, ptr->input_size, &buf, &buf_size));
- ASSERT_TRUE(buf);
+ unsigned char* result;
+ unsigned int result_size;
+ FlateEncode(ptr->input, ptr->input_size, result, result_size);
+ ASSERT_TRUE(result);
EXPECT_EQ(std::string((const char*)ptr->expected, ptr->expected_size),
- std::string((const char*)buf, buf_size))
+ std::string((const char*)result, result_size))
<< " for case " << i;
- FX_Free(buf);
+ FX_Free(result);
}
}
diff --git a/core/src/fpdfapi/fpdf_render/fpdf_render_loadimage.cpp b/core/src/fpdfapi/fpdf_render/fpdf_render_loadimage.cpp
index c107c002c2..0306ff0227 100644
--- a/core/src/fpdfapi/fpdf_render/fpdf_render_loadimage.cpp
+++ b/core/src/fpdfapi/fpdf_render/fpdf_render_loadimage.cpp
@@ -615,11 +615,11 @@ int CPDF_DIBSource::CreateDecoder() {
src_data, src_size, m_Width, m_Height, m_nComponents,
pParams ? pParams->GetInteger("ColorTransform", 1) : 1);
if (!m_pDecoder) {
- bool bTransform = false;
+ FX_BOOL bTransform = FALSE;
int comps, bpc;
ICodec_JpegModule* pJpegModule = CPDF_ModuleMgr::Get()->GetJpegModule();
- if (pJpegModule->LoadInfo(src_data, src_size, &m_Width, &m_Height, &comps,
- &bpc, &bTransform)) {
+ if (pJpegModule->LoadInfo(src_data, src_size, m_Width, m_Height, comps,
+ bpc, bTransform)) {
if (m_nComponents != comps) {
FX_Free(m_pCompData);
m_nComponents = comps;