| Index: fpdfsdk/fpdf_flatten.cpp
|
| diff --git a/fpdfsdk/fpdf_flatten.cpp b/fpdfsdk/fpdf_flatten.cpp
|
| index 5ee485855b32360fee9c8bfd889a4dafeb992b11..4907173f2220b6cc98f1d7cc6083edabbf9000d1 100644
|
| --- a/fpdfsdk/fpdf_flatten.cpp
|
| +++ b/fpdfsdk/fpdf_flatten.cpp
|
| @@ -193,8 +193,8 @@ void SetPageContents(CFX_ByteString key,
|
| if (!pContentsObj) {
|
| // Create a new contents dictionary
|
| if (!key.IsEmpty()) {
|
| - CPDF_Stream* pNewContents =
|
| - new CPDF_Stream(nullptr, 0, new CPDF_Dictionary);
|
| + CPDF_Stream* pNewContents = new CPDF_Stream(
|
| + nullptr, 0, new CPDF_Dictionary(pDocument->GetByteStringPool()));
|
| CFX_ByteString sStream;
|
| sStream.Format("q 1 0 0 1 0 0 cm /%s Do Q", key.c_str());
|
| pNewContents->SetData(sStream.raw_str(), sStream.GetLength());
|
| @@ -205,7 +205,6 @@ void SetPageContents(CFX_ByteString key,
|
| }
|
|
|
| CPDF_Array* pContentsArray = nullptr;
|
| -
|
| switch (pContentsObj->GetType()) {
|
| case CPDF_Object::STREAM: {
|
| pContentsArray = new CPDF_Array;
|
| @@ -237,8 +236,8 @@ void SetPageContents(CFX_ByteString key,
|
| pDocument->AddIndirectObject(pContentsArray));
|
|
|
| if (!key.IsEmpty()) {
|
| - CPDF_Stream* pNewContents =
|
| - new CPDF_Stream(nullptr, 0, new CPDF_Dictionary);
|
| + CPDF_Stream* pNewContents = new CPDF_Stream(
|
| + nullptr, 0, new CPDF_Dictionary(pDocument->GetByteStringPool()));
|
| CFX_ByteString sStream;
|
| sStream.Format("q 1 0 0 1 0 0 cm /%s Do Q", key.c_str());
|
| pNewContents->SetData(sStream.raw_str(), sStream.GetLength());
|
| @@ -370,15 +369,17 @@ DLLEXPORT int STDCALL FPDFPage_Flatten(FPDF_PAGE page, int nFlag) {
|
|
|
| CPDF_Dictionary* pRes = pPageDict->GetDictFor("Resources");
|
| if (!pRes) {
|
| - pRes = new CPDF_Dictionary;
|
| + pRes = new CPDF_Dictionary(pDocument->GetByteStringPool());
|
| pPageDict->SetFor("Resources", pRes);
|
| }
|
|
|
| - CPDF_Stream* pNewXObject = new CPDF_Stream(nullptr, 0, new CPDF_Dictionary);
|
| + CPDF_Stream* pNewXObject = new CPDF_Stream(
|
| + nullptr, 0, new CPDF_Dictionary(pDocument->GetByteStringPool()));
|
| +
|
| uint32_t dwObjNum = pDocument->AddIndirectObject(pNewXObject);
|
| CPDF_Dictionary* pPageXObject = pRes->GetDictFor("XObject");
|
| if (!pPageXObject) {
|
| - pPageXObject = new CPDF_Dictionary;
|
| + pPageXObject = new CPDF_Dictionary(pDocument->GetByteStringPool());
|
| pRes->SetFor("XObject", pPageXObject);
|
| }
|
|
|
| @@ -402,7 +403,7 @@ DLLEXPORT int STDCALL FPDFPage_Flatten(FPDF_PAGE page, int nFlag) {
|
| if (!key.IsEmpty()) {
|
| pPageXObject->SetReferenceFor(key, pDocument, dwObjNum);
|
| CPDF_Dictionary* pNewOXbjectDic = pNewXObject->GetDict();
|
| - pNewXORes = new CPDF_Dictionary;
|
| + pNewXORes = new CPDF_Dictionary(pDocument->GetByteStringPool());
|
| pNewOXbjectDic->SetFor("Resources", pNewXORes);
|
| pNewOXbjectDic->SetNameFor("Type", "XObject");
|
| pNewOXbjectDic->SetNameFor("Subtype", "Form");
|
| @@ -474,7 +475,7 @@ DLLEXPORT int STDCALL FPDFPage_Flatten(FPDF_PAGE page, int nFlag) {
|
|
|
| CPDF_Dictionary* pXObject = pNewXORes->GetDictFor("XObject");
|
| if (!pXObject) {
|
| - pXObject = new CPDF_Dictionary;
|
| + pXObject = new CPDF_Dictionary(pDocument->GetByteStringPool());
|
| pNewXORes->SetFor("XObject", pXObject);
|
| }
|
|
|
|
|