summaryrefslogtreecommitdiff
path: root/core/fpdfapi/parser/cpdf_array.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/fpdfapi/parser/cpdf_array.cpp')
-rw-r--r--core/fpdfapi/parser/cpdf_array.cpp28
1 files changed, 9 insertions, 19 deletions
diff --git a/core/fpdfapi/parser/cpdf_array.cpp b/core/fpdfapi/parser/cpdf_array.cpp
index aa10588f87..698cd6d0d0 100644
--- a/core/fpdfapi/parser/cpdf_array.cpp
+++ b/core/fpdfapi/parser/cpdf_array.cpp
@@ -194,31 +194,21 @@ CPDF_Object* CPDF_Array::Add(std::unique_ptr<CPDF_Object> pObj) {
return pRet;
}
-bool CPDF_Array::WriteTo(CFX_FileBufferArchive* archive,
- FX_FILESIZE* offset) const {
- if (archive->AppendString("[") < 0)
+bool CPDF_Array::WriteTo(IFX_ArchiveStream* archive) const {
+ if (!archive->WriteString("["))
return false;
- *offset += 1;
for (size_t i = 0; i < GetCount(); ++i) {
CPDF_Object* pElement = GetObjectAt(i);
if (!pElement->IsInline()) {
- if (archive->AppendString(" ") < 0)
- return false;
-
- int32_t len = archive->AppendDWord(pElement->GetObjNum());
- if (len < 0)
- return false;
- if (archive->AppendString(" 0 R") < 0)
- return false;
- *offset += len + 5;
- } else {
- if (!pElement->WriteTo(archive, offset))
+ if (!archive->WriteString(" ") ||
+ !archive->WriteDWord(pElement->GetObjNum()) ||
+ !archive->WriteString(" 0 R")) {
return false;
+ }
+ } else if (!pElement->WriteTo(archive)) {
+ return false;
}
}
- if (archive->AppendString("]") < 0)
- return false;
- *offset += 1;
- return true;
+ return archive->WriteString("]");
}