summaryrefslogtreecommitdiff
path: root/core/fpdfapi/parser/cpdf_stream.cpp
diff options
context:
space:
mode:
authorDan Sinclair <dsinclair@chromium.org>2017-05-08 16:59:54 -0400
committerChromium commit bot <commit-bot@chromium.org>2017-05-09 03:41:16 +0000
commitc68b1e73ce8210e2b33491da160dda5dd48599c0 (patch)
treee5a52ad9b47213214ae30e96d93b832637f94c51 /core/fpdfapi/parser/cpdf_stream.cpp
parent309d4db0cbf7ac8a5daee85d5761dd27868b4e42 (diff)
downloadpdfium-c68b1e73ce8210e2b33491da160dda5dd48599c0.tar.xz
Remove AppendObject from CPDF_Creator
The AppendObject method has been removed and the functionality moved to the individual CPDF_Object classes. Change-Id: I5446c6cc3e792d849acf77caed34b63a88f3a2d2 Reviewed-on: https://pdfium-review.googlesource.com/5072 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org>
Diffstat (limited to 'core/fpdfapi/parser/cpdf_stream.cpp')
-rw-r--r--core/fpdfapi/parser/cpdf_stream.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/core/fpdfapi/parser/cpdf_stream.cpp b/core/fpdfapi/parser/cpdf_stream.cpp
index e4f279a32d..7e2529e1d7 100644
--- a/core/fpdfapi/parser/cpdf_stream.cpp
+++ b/core/fpdfapi/parser/cpdf_stream.cpp
@@ -131,3 +131,25 @@ CFX_WideString CPDF_Stream::GetUnicodeText() const {
pAcc->LoadAllData(false);
return PDF_DecodeText(pAcc->GetData(), pAcc->GetSize());
}
+
+bool CPDF_Stream::WriteTo(CFX_FileBufferArchive* archive,
+ FX_FILESIZE* offset) const {
+ if (!GetDict()->WriteTo(archive, offset))
+ 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;
+}