| Index: src/codec/SkBmpRLECodec.cpp | 
| diff --git a/src/codec/SkBmpRLECodec.cpp b/src/codec/SkBmpRLECodec.cpp | 
| index c71a5409d2c2c2ee5d2fa11261594c809f4c66d1..14a5b01c1f374d520856058aeef61ef9978324d3 100644 | 
| --- a/src/codec/SkBmpRLECodec.cpp | 
| +++ b/src/codec/SkBmpRLECodec.cpp | 
| @@ -12,35 +12,6 @@ | 
| #include "SkStream.h" | 
|  | 
| /* | 
| - * Checks if the conversion between the input image and the requested output | 
| - * image has been implemented | 
| - */ | 
| -static bool conversion_possible(const SkImageInfo& dst, | 
| -                                const SkImageInfo& src) { | 
| -    // Ensure that the profile type is unchanged | 
| -    if (dst.profileType() != src.profileType()) { | 
| -        return false; | 
| -    } | 
| - | 
| -    // Ensure the alpha type is valid | 
| -    if (!valid_alpha(dst.alphaType(), src.alphaType())) { | 
| -        return false; | 
| -    } | 
| - | 
| -    // Check for supported color types | 
| -    switch (dst.colorType()) { | 
| -        // Allow output to kN32 from any type of input | 
| -        case kN32_SkColorType: | 
| -            return true; | 
| -        // Allow output to kIndex_8 from compatible inputs | 
| -        case kIndex_8_SkColorType: | 
| -            return kIndex_8_SkColorType == src.colorType(); | 
| -        default: | 
| -            return false; | 
| -    } | 
| -} | 
| - | 
| -/* | 
| * Creates an instance of the decoder | 
| * Called only by NewFromStream | 
| */ | 
| @@ -240,6 +211,11 @@ void SkBmpRLECodec::setPixel(void* dst, size_t dstRowBytes, | 
| dstRow[x] = fColorTable->operator[](index); | 
| break; | 
| } | 
| +        case kRGB_565_SkColorType: { | 
| +            uint16_t* dstRow = SkTAddOffset<uint16_t>(dst, row * (int) dstRowBytes); | 
| +            dstRow[x] = SkPixel32ToPixel16(fColorTable->operator[](index)); | 
| +            break; | 
| +        } | 
| default: | 
| // This case should not be reached.  We should catch an invalid | 
| // color type when we check that the conversion is possible. | 
| @@ -272,6 +248,11 @@ void SkBmpRLECodec::setRGBPixel(void* dst, size_t dstRowBytes, | 
| dstRow[x] = SkPackARGB32NoCheck(0xFF, red, green, blue); | 
| break; | 
| } | 
| +        case kRGB_565_SkColorType: { | 
| +            uint16_t* dstRow = SkTAddOffset<uint16_t>(dst, row * (int) dstRowBytes); | 
| +            dstRow[x] = SkPack888ToRGB16(red, green, blue); | 
| +            break; | 
| +        } | 
| default: | 
| // This case should not be reached.  We should catch an invalid | 
| // color type when we check that the conversion is possible. | 
|  |