summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/fxcrt/fx_stream.cpp4
-rw-r--r--core/fxcrt/fx_stream.h4
-rw-r--r--fpdfsdk/fsdk_filewriteadapter.cpp4
-rw-r--r--fpdfsdk/fsdk_filewriteadapter.h1
4 files changed, 12 insertions, 1 deletions
diff --git a/core/fxcrt/fx_stream.cpp b/core/fxcrt/fx_stream.cpp
index 32b6ca3495..ba21461098 100644
--- a/core/fxcrt/fx_stream.cpp
+++ b/core/fxcrt/fx_stream.cpp
@@ -93,3 +93,7 @@ size_t IFX_SeekableReadStream::ReadBlock(void* buffer, size_t size) {
bool IFX_SeekableStream::WriteBlock(const void* buffer, size_t size) {
return WriteBlock(buffer, GetSize(), size);
}
+
+bool IFX_SeekableStream::WriteString(const CFX_ByteStringC& str) {
+ return WriteBlock(str.c_str(), str.GetLength());
+}
diff --git a/core/fxcrt/fx_stream.h b/core/fxcrt/fx_stream.h
index 5237a7cb94..622818173b 100644
--- a/core/fxcrt/fx_stream.h
+++ b/core/fxcrt/fx_stream.h
@@ -42,13 +42,13 @@ wchar_t FX_GetFolderSeparator();
class IFX_WriteStream : virtual public CFX_Retainable {
public:
virtual bool WriteBlock(const void* pData, size_t size) = 0;
+ virtual bool WriteString(const CFX_ByteStringC& str) = 0;
};
class IFX_ArchiveStream : public IFX_WriteStream {
public:
virtual bool WriteByte(uint8_t byte) = 0;
virtual bool WriteDWord(uint32_t i) = 0;
- virtual bool WriteString(const CFX_ByteStringC& str) = 0;
virtual FX_FILESIZE CurrentOffset() const = 0;
};
@@ -108,6 +108,8 @@ class IFX_SeekableStream : public IFX_SeekableReadStream,
FX_FILESIZE offset,
size_t size) override = 0;
bool WriteBlock(const void* buffer, size_t size) override;
+ bool WriteString(const CFX_ByteStringC& str) override;
+
bool Flush() override = 0;
};
diff --git a/fpdfsdk/fsdk_filewriteadapter.cpp b/fpdfsdk/fsdk_filewriteadapter.cpp
index 98ca3af574..ff527a6f2e 100644
--- a/fpdfsdk/fsdk_filewriteadapter.cpp
+++ b/fpdfsdk/fsdk_filewriteadapter.cpp
@@ -16,3 +16,7 @@ FSDK_FileWriteAdapter::~FSDK_FileWriteAdapter() {}
bool FSDK_FileWriteAdapter::WriteBlock(const void* data, size_t size) {
return fileWriteStruct_->WriteBlock(fileWriteStruct_, data, size) != 0;
}
+
+bool FSDK_FileWriteAdapter::WriteString(const CFX_ByteStringC& str) {
+ return WriteBlock(str.c_str(), str.GetLength());
+}
diff --git a/fpdfsdk/fsdk_filewriteadapter.h b/fpdfsdk/fsdk_filewriteadapter.h
index 78f34cc679..f2c3a534bf 100644
--- a/fpdfsdk/fsdk_filewriteadapter.h
+++ b/fpdfsdk/fsdk_filewriteadapter.h
@@ -17,6 +17,7 @@ class FSDK_FileWriteAdapter : public IFX_WriteStream {
friend CFX_RetainPtr<T> pdfium::MakeRetain(Args&&... args);
bool WriteBlock(const void* data, size_t size) override;
+ bool WriteString(const CFX_ByteStringC& str) override;
private:
explicit FSDK_FileWriteAdapter(FPDF_FILEWRITE* fileWriteStruct);