OLD | NEW |
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" |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
107 | 107 |
108 bool SkPDFStream::populate(SkPDFCatalog* catalog) { | 108 bool SkPDFStream::populate(SkPDFCatalog* catalog) { |
109 if (fState == kUnused_State) { | 109 if (fState == kUnused_State) { |
110 if (!skip_compression(catalog) && SkFlate::HaveFlate()) { | 110 if (!skip_compression(catalog) && SkFlate::HaveFlate()) { |
111 SkDynamicMemoryWStream compressedData; | 111 SkDynamicMemoryWStream compressedData; |
112 | 112 |
113 SkAssertResult( | 113 SkAssertResult( |
114 SkFlate::Deflate(fDataStream.get(), &compressedData)); | 114 SkFlate::Deflate(fDataStream.get(), &compressedData)); |
115 SkAssertResult(fDataStream->rewind()); | 115 SkAssertResult(fDataStream->rewind()); |
116 if (compressedData.getOffset() < this->dataSize()) { | 116 if (compressedData.getOffset() < this->dataSize()) { |
117 this->setData(compressedData.detachAsStream()); | 117 SkAutoTUnref<SkStream> compressed( |
| 118 compressedData.detachAsStream()); |
| 119 this->setData(compressed.get()); |
118 insertName("Filter", "FlateDecode"); | 120 insertName("Filter", "FlateDecode"); |
119 } | 121 } |
120 fState = kCompressed_State; | 122 fState = kCompressed_State; |
121 } else { | 123 } else { |
122 fState = kNoCompression_State; | 124 fState = kNoCompression_State; |
123 } | 125 } |
124 insertInt("Length", this->dataSize()); | 126 insertInt("Length", this->dataSize()); |
125 } else if (fState == kNoCompression_State && !skip_compression(catalog) && | 127 } else if (fState == kNoCompression_State && !skip_compression(catalog) && |
126 SkFlate::HaveFlate()) { | 128 SkFlate::HaveFlate()) { |
127 if (!fSubstitute.get()) { | 129 if (!fSubstitute.get()) { |
128 fSubstitute.reset(new SkPDFStream(*this)); | 130 fSubstitute.reset(new SkPDFStream(*this)); |
129 catalog->setSubstitute(this, fSubstitute.get()); | 131 catalog->setSubstitute(this, fSubstitute.get()); |
130 } | 132 } |
131 return false; | 133 return false; |
132 } | 134 } |
133 return true; | 135 return true; |
134 } | 136 } |
OLD | NEW |