Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(962)

Unified Diff: src/pdf/SkDeflate.cpp

Issue 1298243002: SkPDF/Deflate: clean up old SkFlate code (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/pdf/SkDeflate.cpp
diff --git a/src/pdf/SkDeflate.cpp b/src/pdf/SkDeflate.cpp
index 0953ef27fb658a866acc60f93009e04eb84566a5..f0c8a5437cb97c78f31fa79fbc8b36d210203ce6 100644
--- a/src/pdf/SkDeflate.cpp
+++ b/src/pdf/SkDeflate.cpp
@@ -30,7 +30,7 @@ template <typename T> void* skia_alloc_func(void*, T items, T size) {
static void skia_free_func(void*, void* address) { sk_free(address); }
-bool doFlate(bool compress, SkStream* src, SkWStream* dst) {
+static bool do_inflate(SkStream* src, SkWStream* dst) {
uint8_t inputBuffer[kBufferSize];
uint8_t outputBuffer[kBufferSize];
z_stream flateData;
@@ -42,10 +42,7 @@ bool doFlate(bool compress, SkStream* src, SkWStream* dst) {
flateData.next_out = outputBuffer;
flateData.avail_out = kBufferSize;
int rc;
- if (compress)
- rc = deflateInit(&flateData, Z_DEFAULT_COMPRESSION);
- else
- rc = inflateInit(&flateData);
+ rc = inflateInit(&flateData);
if (rc != Z_OK)
return false;
@@ -81,16 +78,10 @@ bool doFlate(bool compress, SkStream* src, SkWStream* dst) {
flateData.next_in = inputBuffer;
flateData.avail_in = SkToUInt(read);
}
- if (compress)
- rc = deflate(&flateData, Z_NO_FLUSH);
- else
- rc = inflate(&flateData, Z_NO_FLUSH);
+ rc = inflate(&flateData, Z_NO_FLUSH);
}
while (rc == Z_OK) {
- if (compress)
- rc = deflate(&flateData, Z_FINISH);
- else
- rc = inflate(&flateData, Z_FINISH);
+ rc = inflate(&flateData, Z_FINISH);
if (flateData.avail_out < kBufferSize) {
if (!dst->write(outputBuffer, kBufferSize - flateData.avail_out))
return false;
@@ -99,41 +90,19 @@ bool doFlate(bool compress, SkStream* src, SkWStream* dst) {
}
}
- if (compress)
- deflateEnd(&flateData);
- else
- inflateEnd(&flateData);
- if (rc == Z_STREAM_END)
- return true;
- return false;
+ inflateEnd(&flateData);
+ return rc == Z_STREAM_END;
}
+} // namespace
-}
-
-// static
-bool SkFlate::Deflate(SkStream* src, SkWStream* dst) {
- return doFlate(true, src, dst);
-}
-
-bool SkFlate::Deflate(const void* ptr, size_t len, SkWStream* dst) {
- SkMemoryStream stream(ptr, len);
- return doFlate(true, &stream, dst);
-}
-
-bool SkFlate::Deflate(const SkData* data, SkWStream* dst) {
- if (data) {
- SkMemoryStream stream(data->data(), data->size());
- return doFlate(true, &stream, dst);
+SkStreamAsset* SkInflate(SkStream* src) {
+ SkDynamicMemoryWStream decompressedDynamicMemoryWStream;
+ if (!do_inflate(src, &decompressedDynamicMemoryWStream)) {
+ return nullptr;
}
- return false;
+ return decompressedDynamicMemoryWStream.detachAsStream();
}
-// static
-bool SkFlate::Inflate(SkStream* src, SkWStream* dst) {
- return doFlate(false, src, dst);
-}
-
-
#define SKDEFLATEWSTREAM_INPUT_BUFFER_SIZE 4096
#define SKDEFLATEWSTREAM_OUTPUT_BUFFER_SIZE 4224 // 4096 + 128, usually big
// enough to always do a
« src/pdf/SkDeflate.h ('K') | « src/pdf/SkDeflate.h ('k') | src/pdf/SkPDFStream.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698