| Index: src/core/SkBitmap.cpp
|
| diff --git a/src/core/SkBitmap.cpp b/src/core/SkBitmap.cpp
|
| index 84f363e564f2a7a46e6928c430d2744dca88bb46..2d3391f11f2b38ed003275f3be1b83dde6df5708 100644
|
| --- a/src/core/SkBitmap.cpp
|
| +++ b/src/core/SkBitmap.cpp
|
| @@ -885,7 +885,7 @@ bool SkBitmap::extractSubset(SkBitmap* result, const SkIRect& subset) const {
|
|
|
| if (fPixelRef->getTexture() != NULL) {
|
| // Do a deep copy
|
| - SkPixelRef* pixelRef = fPixelRef->deepCopy(this->config(), &subset);
|
| + SkPixelRef* pixelRef = fPixelRef->deepCopy(&subset);
|
| if (pixelRef != NULL) {
|
| SkBitmap dst;
|
| dst.setConfig(this->config(), subset.width(), subset.height(), 0,
|
| @@ -1085,8 +1085,7 @@ bool SkBitmap::copyTo(SkBitmap* dst, SkColorType dstColorType,
|
| }
|
|
|
| bool SkBitmap::deepCopyTo(SkBitmap* dst) const {
|
| - const SkBitmap::Config dstConfig = this->config();
|
| - const SkColorType dstCT = SkBitmapConfigToColorType(dstConfig);
|
| + const SkColorType dstCT = this->colorType();
|
|
|
| if (!this->canCopyTo(dstCT)) {
|
| return false;
|
| @@ -1095,24 +1094,15 @@ bool SkBitmap::deepCopyTo(SkBitmap* dst) const {
|
| // If we have a PixelRef, and it supports deep copy, use it.
|
| // Currently supported only by texture-backed bitmaps.
|
| if (fPixelRef) {
|
| - SkPixelRef* pixelRef = fPixelRef->deepCopy(dstConfig);
|
| + SkPixelRef* pixelRef = fPixelRef->deepCopy();
|
| if (pixelRef) {
|
| - uint32_t rowBytes;
|
| - if (this->colorType() == dstCT) {
|
| - // Since there is no subset to pass to deepCopy, and deepCopy
|
| - // succeeded, the new pixel ref must be identical.
|
| - SkASSERT(fPixelRef->info() == pixelRef->info());
|
| - pixelRef->cloneGenID(*fPixelRef);
|
| - // Use the same rowBytes as the original.
|
| - rowBytes = fRowBytes;
|
| - } else {
|
| - // With the new config, an appropriate fRowBytes will be computed by setConfig.
|
| - rowBytes = 0;
|
| - }
|
| + // Since there is no subset to pass to deepCopy, and deepCopy
|
| + // succeeded, the new pixel ref must be identical.
|
| + SkASSERT(fPixelRef->info() == pixelRef->info());
|
| + pixelRef->cloneGenID(*fPixelRef);
|
|
|
| SkImageInfo info = fInfo;
|
| - info.fColorType = dstCT;
|
| - if (!dst->setConfig(info, rowBytes)) {
|
| + if (!dst->setConfig(info, fRowBytes)) {
|
| return false;
|
| }
|
| dst->setPixelRef(pixelRef, fPixelRefOrigin)->unref();
|
|
|