 Chromium Code Reviews
 Chromium Code Reviews Issue 1918873002:
  Remove SkEncodedInfo kUnknown_Color and kUnknown_Alpha from public API  (Closed) 
  Base URL: https://skia.googlesource.com/skia.git@master
    
  
    Issue 1918873002:
  Remove SkEncodedInfo kUnknown_Color and kUnknown_Alpha from public API  (Closed) 
  Base URL: https://skia.googlesource.com/skia.git@master| Index: src/codec/SkWebpCodec.cpp | 
| diff --git a/src/codec/SkWebpCodec.cpp b/src/codec/SkWebpCodec.cpp | 
| index e40c3f237792fa38454f72c1fb2d5f2e150ae672..883930b5c6cc6ee4b41ebd621e94b8182f13a712 100644 | 
| --- a/src/codec/SkWebpCodec.cpp | 
| +++ b/src/codec/SkWebpCodec.cpp | 
| @@ -31,7 +31,7 @@ bool SkWebpCodec::IsWebp(const void* buf, size_t bytesRead) { | 
| // Parse headers of RIFF container, and check for valid Webp (VP8) content. | 
| // NOTE: This calls peek instead of read, since onGetPixels will need these | 
| // bytes again. | 
| -static bool webp_parse_header(SkStream* stream, int* width, int* height, SkEncodedInfo* info) { | 
| +bool SkWebpCodec::ReadHeader(SkStream* stream, SkCodec** outCodec) { | 
| unsigned char buffer[WEBP_VP8_HEADER_SIZE]; | 
| SkASSERT(WEBP_VP8_HEADER_SIZE <= SkCodec::MinBufferedBytesNeeded()); | 
| @@ -61,7 +61,7 @@ static bool webp_parse_header(SkStream* stream, int* width, int* height, SkEncod | 
| } | 
| } | 
| - if (info) { | 
| + if (outCodec) { | 
| SkEncodedInfo::Color color; | 
| SkEncodedInfo::Alpha alpha; | 
| switch (features.format) { | 
| @@ -98,19 +98,20 @@ static bool webp_parse_header(SkStream* stream, int* width, int* height, SkEncod | 
| return false; | 
| } | 
| - *width = features.width; | 
| - *height = features.height; | 
| - *info = SkEncodedInfo::Make(color, alpha, 8); | 
| + SkEncodedInfo info = SkEncodedInfo::Make(color, alpha, 8); | 
| + *outCodec = new SkWebpCodec(features.width, features.height, info, stream); | 
| } | 
| return true; | 
| } | 
| SkCodec* SkWebpCodec::NewFromStream(SkStream* stream) { | 
| SkAutoTDelete<SkStream> streamDeleter(stream); | 
| - int width, height; | 
| - SkEncodedInfo info; | 
| - if (webp_parse_header(stream, &width, &height, &info)) { | 
| - return new SkWebpCodec(width, height, info, streamDeleter.release()); | 
| + SkCodec* outCodec; | 
| + if (SkWebpCodec::ReadHeader(stream, &outCodec)) { | 
| 
scroggo
2016/04/25 15:10:43
Since ReadHeader is used only in this method, I do
 
msarett
2016/04/25 15:18:21
Of course, that's much better :).
 | 
| + // Codec has taken ownership of the stream. | 
| + SkASSERT(outCodec); | 
| + streamDeleter.release(); | 
| + return outCodec; | 
| } | 
| return nullptr; | 
| } |