summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fpdfsdk/fpdf_flatten.cpp10
-rw-r--r--fpdfsdk/fpdf_ppo.cpp14
2 files changed, 14 insertions, 10 deletions
diff --git a/fpdfsdk/fpdf_flatten.cpp b/fpdfsdk/fpdf_flatten.cpp
index cca28bc300..01f3cd7e1e 100644
--- a/fpdfsdk/fpdf_flatten.cpp
+++ b/fpdfsdk/fpdf_flatten.cpp
@@ -200,11 +200,13 @@ void SetPageContents(const ByteString& key,
pPage->ConvertToIndirectObjectFor(pdfium::page_object::kContents, pDocument);
if (!pContentsArray) {
pContentsArray = pDocument->NewIndirect<CPDF_Array>();
- auto pAcc = pdfium::MakeRetain<CPDF_StreamAcc>(pContentsStream);
- pAcc->LoadAllDataFiltered();
ByteString sStream = "q\n";
- ByteString sBody = ByteString(pAcc->GetData(), pAcc->GetSize());
- sStream = sStream + sBody + "\nQ";
+ {
+ auto pAcc = pdfium::MakeRetain<CPDF_StreamAcc>(pContentsStream);
+ pAcc->LoadAllDataFiltered();
+ sStream += ByteString(pAcc->GetData(), pAcc->GetSize());
+ sStream += "\nQ";
+ }
pContentsStream->SetDataAndRemoveFilter(sStream.AsRawSpan());
pContentsArray->Add(pContentsStream->MakeReference(pDocument));
pPage->SetFor(pdfium::page_object::kContents,
diff --git a/fpdfsdk/fpdf_ppo.cpp b/fpdfsdk/fpdf_ppo.cpp
index 6313e43f29..4e47a00694 100644
--- a/fpdfsdk/fpdf_ppo.cpp
+++ b/fpdfsdk/fpdf_ppo.cpp
@@ -711,16 +711,18 @@ uint32_t CPDF_NPageToOneExporter::MakeXObject(
const CPDF_Stream* pStream = pSrcContentArray->GetStreamAt(i);
auto pAcc = pdfium::MakeRetain<CPDF_StreamAcc>(pStream);
pAcc->LoadAllDataFiltered();
- ByteString bsStream(pAcc->GetData(), pAcc->GetSize());
- bsSrcContentStream += bsStream;
+ bsSrcContentStream += ByteString(pAcc->GetData(), pAcc->GetSize());
bsSrcContentStream += "\n";
}
pNewXObject->SetDataAndRemoveFilter(bsSrcContentStream.AsRawSpan());
} else {
- const CPDF_Stream* pStream = pSrcContentObj->AsStream();
- auto pAcc = pdfium::MakeRetain<CPDF_StreamAcc>(pStream);
- pAcc->LoadAllDataFiltered();
- ByteString bsStream(pAcc->GetData(), pAcc->GetSize());
+ ByteString bsStream;
+ {
+ const CPDF_Stream* pStream = pSrcContentObj->AsStream();
+ auto pAcc = pdfium::MakeRetain<CPDF_StreamAcc>(pStream);
+ pAcc->LoadAllDataFiltered();
+ bsStream = ByteString(pAcc->GetData(), pAcc->GetSize());
+ }
pNewXObject->SetDataAndRemoveFilter(bsStream.AsRawSpan());
}
return pNewXObject->GetObjNum();