summaryrefslogtreecommitdiff
path: root/core/fxcrt
diff options
context:
space:
mode:
authorRyan Harrison <rharrison@chromium.org>2018-02-12 20:43:53 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-02-12 20:43:53 +0000
commitad905158b86269686f94ea76d1b700f68ea377d5 (patch)
tree5593de93f448108c9b8122593db2c08e683c6b51 /core/fxcrt
parent30b41e49a128d861f23ed24ca91bbde0d66a64c7 (diff)
downloadpdfium-ad905158b86269686f94ea76d1b700f68ea377d5.tar.xz
Convert CFX_BmpDecompressor to use CFX_MemoryStream
This also adds a Seek method to CFX_MemoryStream BUG=pdfium:1007 Change-Id: I2c7e1d3b6d8aff36e302014cb2e8ffc0f23ef7c4 Reviewed-on: https://pdfium-review.googlesource.com/26230 Commit-Queue: Ryan Harrison <rharrison@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org>
Diffstat (limited to 'core/fxcrt')
-rw-r--r--core/fxcrt/cfx_memorystream.cpp8
-rw-r--r--core/fxcrt/cfx_memorystream.h3
2 files changed, 11 insertions, 0 deletions
diff --git a/core/fxcrt/cfx_memorystream.cpp b/core/fxcrt/cfx_memorystream.cpp
index 345b381226..dcd21f073f 100644
--- a/core/fxcrt/cfx_memorystream.cpp
+++ b/core/fxcrt/cfx_memorystream.cpp
@@ -148,6 +148,14 @@ bool CFX_MemoryStream::WriteBlock(const void* buffer,
return true;
}
+bool CFX_MemoryStream::Seek(size_t pos) {
+ if (pos > m_nCurSize)
+ return false;
+
+ m_nCurPos = pos;
+ return true;
+}
+
void CFX_MemoryStream::EstimateSize(size_t nInitSize, size_t nGrowSize) {
if (m_dwFlags & Type::kConsecutive) {
if (m_Blocks.empty()) {
diff --git a/core/fxcrt/cfx_memorystream.h b/core/fxcrt/cfx_memorystream.h
index ef66080420..a56a2dbe2c 100644
--- a/core/fxcrt/cfx_memorystream.h
+++ b/core/fxcrt/cfx_memorystream.h
@@ -28,6 +28,9 @@ class CFX_MemoryStream : public IFX_SeekableStream {
bool WriteBlock(const void* buffer, FX_FILESIZE offset, size_t size) override;
bool Flush() override;
+ // Sets the cursor position to |pos| if possible
+ bool Seek(size_t pos);
+
bool IsConsecutive() const { return !!(m_dwFlags & Type::kConsecutive); }
uint8_t* GetBuffer() const {