Index: fpdfsdk/fpdf_flatten.cpp |
diff --git a/fpdfsdk/fpdf_flatten.cpp b/fpdfsdk/fpdf_flatten.cpp |
index aa21b280edcc5d3a5ae85a656ec7a85ec4b44aaa..5ee485855b32360fee9c8bfd889a4dafeb992b11 100644 |
--- a/fpdfsdk/fpdf_flatten.cpp |
+++ b/fpdfsdk/fpdf_flatten.cpp |
@@ -195,12 +195,11 @@ void SetPageContents(CFX_ByteString key, |
if (!key.IsEmpty()) { |
CPDF_Stream* pNewContents = |
new CPDF_Stream(nullptr, 0, new CPDF_Dictionary); |
- pPage->SetReferenceFor("Contents", pDocument, |
- pDocument->AddIndirectObject(pNewContents)); |
- |
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()); |
+ pPage->SetReferenceFor("Contents", pDocument, |
+ pDocument->AddIndirectObject(pNewContents)); |
} |
return; |
} |
@@ -234,18 +233,17 @@ void SetPageContents(CFX_ByteString key, |
if (!pContentsArray) |
return; |
- uint32_t dwObjNum = pDocument->AddIndirectObject(pContentsArray); |
- pPage->SetReferenceFor("Contents", pDocument, dwObjNum); |
+ pPage->SetReferenceFor("Contents", pDocument, |
+ pDocument->AddIndirectObject(pContentsArray)); |
if (!key.IsEmpty()) { |
CPDF_Stream* pNewContents = |
new CPDF_Stream(nullptr, 0, new CPDF_Dictionary); |
- dwObjNum = pDocument->AddIndirectObject(pNewContents); |
- pContentsArray->AddReference(pDocument, dwObjNum); |
- |
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()); |
+ pContentsArray->AddReference(pDocument, |
+ pDocument->AddIndirectObject(pNewContents)); |
} |
} |
@@ -482,15 +480,14 @@ DLLEXPORT int STDCALL FPDFPage_Flatten(FPDF_PAGE page, int nFlag) { |
CFX_ByteString sFormName; |
sFormName.Format("F%d", i); |
- uint32_t dwStreamObjNum = pDocument->AddIndirectObject(pObj); |
- pXObject->SetReferenceFor(sFormName, pDocument, dwStreamObjNum); |
+ pXObject->SetReferenceFor(sFormName, pDocument, |
+ pDocument->AddIndirectObject(pObj)); |
CPDF_StreamAcc acc; |
acc.LoadAllData(pNewXObject); |
const uint8_t* pData = acc.GetData(); |
CFX_ByteString sStream(pData, acc.GetSize()); |
- CFX_ByteString sTemp; |
if (matrix.IsIdentity()) { |
matrix.a = 1.0f; |
@@ -501,6 +498,7 @@ DLLEXPORT int STDCALL FPDFPage_Flatten(FPDF_PAGE page, int nFlag) { |
matrix.f = 0.0f; |
} |
+ CFX_ByteString sTemp; |
CFX_Matrix m = GetMatrix(rcAnnot, rcStream, matrix); |
sTemp.Format("q %f 0 0 %f %f %f cm /%s Do Q\n", m.a, m.d, m.e, m.f, |
sFormName.c_str()); |