| Index: src/codec/SkGifCodec.cpp
|
| diff --git a/src/codec/SkGifCodec.cpp b/src/codec/SkGifCodec.cpp
|
| index 1e6e300a9233ec8e24d45c392b877b291154d565..c35cd24ae498f5d12f62c39a687a95a57b9fcb08 100644
|
| --- a/src/codec/SkGifCodec.cpp
|
| +++ b/src/codec/SkGifCodec.cpp
|
| @@ -494,7 +494,7 @@ SkCodec::Result SkGifCodec::onGetPixels(const SkImageInfo& dstInfo,
|
| // Initialize the swizzler
|
| if (fFrameIsSubset) {
|
| // Fill the background
|
| - SkSampler::Fill(dstInfo, dst, dstRowBytes, this->getFillValue(dstInfo.colorType()),
|
| + SkSampler::Fill(dstInfo, dst, dstRowBytes, this->getFillValue(dstInfo),
|
| opts.fZeroInitialized);
|
| }
|
|
|
| @@ -512,9 +512,10 @@ SkCodec::Result SkGifCodec::onGetPixels(const SkImageInfo& dstInfo,
|
|
|
| // FIXME: This is similar to the implementation for bmp and png. Can we share more code or
|
| // possibly make this non-virtual?
|
| -uint32_t SkGifCodec::onGetFillValue(SkColorType colorType) const {
|
| +uint64_t SkGifCodec::onGetFillValue(const SkImageInfo& dstInfo) const {
|
| const SkPMColor* colorPtr = get_color_ptr(fColorTable.get());
|
| - return get_color_table_fill_value(colorType, colorPtr, fFillIndex);
|
| + return get_color_table_fill_value(dstInfo.colorType(), dstInfo.alphaType(), colorPtr,
|
| + fFillIndex, nullptr);
|
| }
|
|
|
| SkCodec::Result SkGifCodec::onStartScanlineDecode(const SkImageInfo& dstInfo,
|
| @@ -555,7 +556,7 @@ int SkGifCodec::onGetScanlines(void* dst, int count, size_t rowBytes) {
|
| if (fFrameIsSubset) {
|
| // Fill the requested rows
|
| SkImageInfo fillInfo = this->dstInfo().makeWH(this->dstInfo().width(), count);
|
| - uint32_t fillValue = this->onGetFillValue(this->dstInfo().colorType());
|
| + uint64_t fillValue = this->onGetFillValue(this->dstInfo());
|
| fSwizzler->fill(fillInfo, dst, rowBytes, fillValue, this->options().fZeroInitialized);
|
|
|
| // Start to write pixels at the start of the image frame
|
|
|