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

Side by Side Diff: src/pdf/SkPDFStream.cpp

Issue 936403002: PDF: why do we have flags no one uses (or can use)? (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: rebase Created 5 years, 10 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 unified diff | Download patch
« no previous file with comments | « src/pdf/SkPDFPage.cpp ('k') | tests/AnnotationTest.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 1
2 /* 2 /*
3 * Copyright 2010 Google Inc. 3 * Copyright 2010 Google Inc.
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 8
9 9
10 #include "SkData.h" 10 #include "SkData.h"
11 #include "SkFlate.h" 11 #include "SkFlate.h"
12 #include "SkPDFCatalog.h" 12 #include "SkPDFCatalog.h"
13 #include "SkPDFStream.h" 13 #include "SkPDFStream.h"
14 #include "SkStream.h" 14 #include "SkStream.h"
15 #include "SkStreamPriv.h" 15 #include "SkStreamPriv.h"
16 16
17 static bool skip_compression(SkPDFCatalog* catalog) {
18 return SkToBool(catalog->getDocumentFlags() &
19 SkPDFDocument::kFavorSpeedOverSize_Flags);
20 }
21
22 SkPDFStream::SkPDFStream(SkStream* stream) : fState(kUnused_State) { 17 SkPDFStream::SkPDFStream(SkStream* stream) : fState(kUnused_State) {
23 this->setData(stream); 18 this->setData(stream);
24 } 19 }
25 20
26 SkPDFStream::SkPDFStream(SkData* data) : fState(kUnused_State) { 21 SkPDFStream::SkPDFStream(SkData* data) : fState(kUnused_State) {
27 this->setData(data); 22 this->setData(data);
28 } 23 }
29 24
30 SkPDFStream::SkPDFStream(const SkPDFStream& pdfStream) 25 SkPDFStream::SkPDFStream(const SkPDFStream& pdfStream)
31 : SkPDFDict(), 26 : SkPDFDict(),
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 if (fState == kUnused_State) { 82 if (fState == kUnused_State) {
88 fState = kNoCompression_State; 83 fState = kNoCompression_State;
89 insertInt("Length", this->dataSize()); 84 insertInt("Length", this->dataSize());
90 } 85 }
91 return true; 86 return true;
92 87
93 #else // !SK_NO_FLATE 88 #else // !SK_NO_FLATE
94 89
95 if (fState == kUnused_State) { 90 if (fState == kUnused_State) {
96 fState = kNoCompression_State; 91 fState = kNoCompression_State;
97 if (!skip_compression(catalog)) { 92 SkDynamicMemoryWStream compressedData;
98 SkDynamicMemoryWStream compressedData;
99 93
100 SkAssertResult( 94 SkAssertResult(
101 SkFlate::Deflate(fDataStream.get(), &compressedData)); 95 SkFlate::Deflate(fDataStream.get(), &compressedData));
102 SkAssertResult(fDataStream->rewind()); 96 SkAssertResult(fDataStream->rewind());
103 if (compressedData.getOffset() < this->dataSize()) { 97 if (compressedData.getOffset() < this->dataSize()) {
104 SkAutoTDelete<SkStream> compressed( 98 SkAutoTDelete<SkStream> compressed(
105 compressedData.detachAsStream()); 99 compressedData.detachAsStream());
106 this->setData(compressed.get()); 100 this->setData(compressed.get());
107 insertName("Filter", "FlateDecode"); 101 insertName("Filter", "FlateDecode");
108 }
109 fState = kCompressed_State;
110 } else {
111 fState = kNoCompression_State;
112 } 102 }
103 fState = kCompressed_State;
113 insertInt("Length", this->dataSize()); 104 insertInt("Length", this->dataSize());
114 } 105 }
115 else if (fState == kNoCompression_State && !skip_compression(catalog)) { 106 else if (fState == kNoCompression_State) {
116 if (!fSubstitute.get()) { 107 if (!fSubstitute.get()) {
117 fSubstitute.reset(new SkPDFStream(*this)); 108 fSubstitute.reset(new SkPDFStream(*this));
118 catalog->setSubstitute(this, fSubstitute.get()); 109 catalog->setSubstitute(this, fSubstitute.get());
119 } 110 }
120 return false; 111 return false;
121 } 112 }
122 return true; 113 return true;
123 #endif // SK_NO_FLATE 114 #endif // SK_NO_FLATE
124 } 115 }
OLDNEW
« no previous file with comments | « src/pdf/SkPDFPage.cpp ('k') | tests/AnnotationTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698