| Index: core/fpdfapi/page/cpdf_image.cpp
|
| diff --git a/core/fpdfapi/page/cpdf_image.cpp b/core/fpdfapi/page/cpdf_image.cpp
|
| index e21d38a56f9fe7fa65c3cd30460843796ec10b6d..1c3aa89ff2f16f2d5a3103b53d315cdad29635a0 100644
|
| --- a/core/fpdfapi/page/cpdf_image.cpp
|
| +++ b/core/fpdfapi/page/cpdf_image.cpp
|
| @@ -17,6 +17,9 @@
|
| #include "core/fpdfapi/parser/cpdf_boolean.h"
|
| #include "core/fpdfapi/parser/cpdf_dictionary.h"
|
| #include "core/fpdfapi/parser/cpdf_document.h"
|
| +#include "core/fpdfapi/parser/cpdf_name.h"
|
| +#include "core/fpdfapi/parser/cpdf_number.h"
|
| +#include "core/fpdfapi/parser/cpdf_reference.h"
|
| #include "core/fpdfapi/parser/cpdf_string.h"
|
| #include "core/fpdfapi/render/cpdf_pagerendercache.h"
|
| #include "core/fpdfapi/render/render_int.h"
|
| @@ -107,8 +110,8 @@ CPDF_Dictionary* CPDF_Image::InitJPEG(uint8_t* pData, uint32_t size) {
|
| csname = "DeviceCMYK";
|
| CPDF_Array* pDecode = new CPDF_Array;
|
| for (int n = 0; n < 4; n++) {
|
| - pDecode->AddInteger(1);
|
| - pDecode->AddInteger(0);
|
| + pDecode->AddNew<CPDF_Number>(1);
|
| + pDecode->AddNew<CPDF_Number>(0);
|
| }
|
| pDict->SetFor("Decode", pDecode);
|
| }
|
| @@ -181,15 +184,15 @@ void CPDF_Image::SetImage(const CFX_DIBitmap* pBitmap, int32_t iCompress) {
|
| pDict->SetFor("ImageMask", new CPDF_Boolean(true));
|
| if (reset_a == 0) {
|
| CPDF_Array* pArray = new CPDF_Array;
|
| - pArray->AddInteger(1);
|
| - pArray->AddInteger(0);
|
| + pArray->AddNew<CPDF_Number>(1);
|
| + pArray->AddNew<CPDF_Number>(0);
|
| pDict->SetFor("Decode", pArray);
|
| }
|
| } else {
|
| CPDF_Array* pCS = new CPDF_Array;
|
| - pCS->AddName("Indexed");
|
| - pCS->AddName("DeviceRGB");
|
| - pCS->AddInteger(1);
|
| + pCS->AddNew<CPDF_Name>("Indexed");
|
| + pCS->AddNew<CPDF_Name>("DeviceRGB");
|
| + pCS->AddNew<CPDF_Number>(1);
|
| CFX_ByteString ct;
|
| FX_CHAR* pBuf = ct.GetBuffer(6);
|
| pBuf[0] = (FX_CHAR)reset_r;
|
| @@ -199,7 +202,7 @@ void CPDF_Image::SetImage(const CFX_DIBitmap* pBitmap, int32_t iCompress) {
|
| pBuf[4] = (FX_CHAR)set_g;
|
| pBuf[5] = (FX_CHAR)set_b;
|
| ct.ReleaseBuffer(6);
|
| - pCS->Add(new CPDF_String(ct, true));
|
| + pCS->AddNew<CPDF_String>(ct, true);
|
| pDict->SetFor("ColorSpace", pCS);
|
| }
|
| pDict->SetIntegerFor("BitsPerComponent", 1);
|
| @@ -213,9 +216,9 @@ void CPDF_Image::SetImage(const CFX_DIBitmap* pBitmap, int32_t iCompress) {
|
| int32_t iPalette = pBitmap->GetPaletteSize();
|
| if (iPalette > 0) {
|
| CPDF_Array* pCS = m_pDocument->NewIndirect<CPDF_Array>();
|
| - pCS->AddName("Indexed");
|
| - pCS->AddName("DeviceRGB");
|
| - pCS->AddInteger(iPalette - 1);
|
| + pCS->AddNew<CPDF_Name>("Indexed");
|
| + pCS->AddNew<CPDF_Name>("DeviceRGB");
|
| + pCS->AddNew<CPDF_Number>(iPalette - 1);
|
| uint8_t* pColorTable = FX_Alloc2D(uint8_t, iPalette, 3);
|
| uint8_t* ptr = pColorTable;
|
| for (int32_t i = 0; i < iPalette; i++) {
|
| @@ -228,7 +231,7 @@ void CPDF_Image::SetImage(const CFX_DIBitmap* pBitmap, int32_t iCompress) {
|
| CPDF_Stream* pCTS = m_pDocument->NewIndirect<CPDF_Stream>(
|
| pColorTable, iPalette * 3,
|
| new CPDF_Dictionary(m_pDocument->GetByteStringPool()));
|
| - pCS->AddReference(m_pDocument, pCTS);
|
| + pCS->AddNew<CPDF_Reference>(m_pDocument, pCTS->GetObjNum());
|
| pDict->SetReferenceFor("ColorSpace", m_pDocument, pCS);
|
| } else {
|
| pDict->SetNameFor("ColorSpace", "DeviceGray");
|
|
|