summaryrefslogtreecommitdiff
path: root/core/fpdfapi/parser/cpdf_stream.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/fpdfapi/parser/cpdf_stream.cpp')
-rw-r--r--core/fpdfapi/parser/cpdf_stream.cpp20
1 files changed, 4 insertions, 16 deletions
diff --git a/core/fpdfapi/parser/cpdf_stream.cpp b/core/fpdfapi/parser/cpdf_stream.cpp
index 7e2529e1d7..69a87e6d2e 100644
--- a/core/fpdfapi/parser/cpdf_stream.cpp
+++ b/core/fpdfapi/parser/cpdf_stream.cpp
@@ -132,24 +132,12 @@ CFX_WideString CPDF_Stream::GetUnicodeText() const {
return PDF_DecodeText(pAcc->GetData(), pAcc->GetSize());
}
-bool CPDF_Stream::WriteTo(CFX_FileBufferArchive* archive,
- FX_FILESIZE* offset) const {
- if (!GetDict()->WriteTo(archive, offset))
+bool CPDF_Stream::WriteTo(IFX_ArchiveStream* archive) const {
+ if (!GetDict()->WriteTo(archive) || !archive->WriteString("stream\r\n"))
return false;
- if (archive->AppendString("stream\r\n") < 0)
- return false;
- *offset += 8;
auto pAcc = pdfium::MakeRetain<CPDF_StreamAcc>(this);
pAcc->LoadAllData(true);
- if (archive->AppendBlock(pAcc->GetData(), pAcc->GetSize()) < 0)
- return false;
- *offset += pAcc->GetSize();
-
- int32_t len = archive->AppendString("\r\nendstream");
- if (len < 0)
- return false;
-
- *offset += len;
- return true;
+ return archive->WriteBlock(pAcc->GetData(), pAcc->GetSize()) &&
+ archive->WriteString("\r\nendstream");
}