Chromium Code Reviews| Index: src/core/SkBitmap.cpp |
| diff --git a/src/core/SkBitmap.cpp b/src/core/SkBitmap.cpp |
| index 05f5208a69bfd62fba985d9f2e54e59d4853bb0d..14487ac136e05d35cea12a28f028080b3342fa55 100644 |
| --- a/src/core/SkBitmap.cpp |
| +++ b/src/core/SkBitmap.cpp |
| @@ -1056,7 +1056,7 @@ bool SkBitmap::copyTo(SkBitmap* dst, Config dstConfig, Allocator* alloc) const { |
| if (tmpSrc.config() == dstConfig && NULL == alloc) { |
| dst->swap(tmpSrc); |
| if (dst->pixelRef() && this->config() == dstConfig) { |
| - dst->pixelRef()->fGenerationID = fPixelRef->getGenerationID(); |
| + dst->pixelRef()->cloneGenID(*fPixelRef); |
|
scroggo
2013/10/22 21:04:02
So this patch does not address the bug we discusse
bsalomon
2013/10/23 13:52:57
I'd prefer keeping a fix for that as a separate is
mtklein
2013/10/23 15:28:10
Added skia:1742.
scroggo
2013/10/23 15:39:19
I still think it would be nice to document this in
mtklein
2013/10/23 16:07:10
Done.
|
| } |
| return true; |
| } |
| @@ -1096,8 +1096,8 @@ bool SkBitmap::copyTo(SkBitmap* dst, Config dstConfig, Allocator* alloc) const { |
| if (tmpDst.getSize() == src->getSize()) { |
| memcpy(tmpDst.getPixels(), src->getPixels(), src->getSafeSize()); |
| SkPixelRef* pixelRef = tmpDst.pixelRef(); |
| - if (pixelRef != NULL) { |
| - pixelRef->fGenerationID = this->getGenerationID(); |
| + if (pixelRef != NULL && fPixelRef != NULL) { |
|
bsalomon
2013/10/23 13:52:57
ubernbit: NULL != pixelRef
mtklein
2013/10/23 15:28:10
Done.
|
| + pixelRef->cloneGenID(*fPixelRef); |
| } |
| } else { |
| const char* srcP = reinterpret_cast<const char*>(src->getPixels()); |
| @@ -1151,7 +1151,7 @@ bool SkBitmap::deepCopyTo(SkBitmap* dst, Config dstConfig) const { |
| if (pixelRef) { |
| uint32_t rowBytes; |
| if (dstConfig == fConfig) { |
| - pixelRef->fGenerationID = fPixelRef->getGenerationID(); |
| + pixelRef->cloneGenID(*fPixelRef); |
| // Use the same rowBytes as the original. |
| rowBytes = fRowBytes; |
| } else { |