assert in setPixelRef that the pr matches the bitmap's config
BUG=
R=halcanary@google.com
Review URL: https://codereview.chromium.org/120063003
git-svn-id: http://skia.googlecode.com/svn/trunk@12880 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/core/SkBitmap.cpp b/src/core/SkBitmap.cpp
index ee741c3..c0d9395 100644
--- a/src/core/SkBitmap.cpp
+++ b/src/core/SkBitmap.cpp
@@ -402,6 +402,31 @@
if (NULL == pr) {
offset = 0;
}
+#ifdef SK_DEBUG
+ else {
+ SkImageInfo info;
+ if (this->asImageInfo(&info)) {
+ const SkImageInfo& prInfo = pr->info();
+ SkASSERT(info.fWidth <= prInfo.fWidth);
+ SkASSERT(info.fHeight <= prInfo.fHeight);
+ SkASSERT(info.fColorType == prInfo.fColorType);
+ switch (prInfo.fAlphaType) {
+ case kIgnore_SkAlphaType:
+ SkASSERT(fAlphaType == kIgnore_SkAlphaType);
+ break;
+ case kOpaque_SkAlphaType:
+ case kPremul_SkAlphaType:
+ SkASSERT(info.fAlphaType == kOpaque_SkAlphaType ||
+ info.fAlphaType == kPremul_SkAlphaType);
+ break;
+ case kUnpremul_SkAlphaType:
+ SkASSERT(info.fAlphaType == kOpaque_SkAlphaType ||
+ info.fAlphaType == kUnpremul_SkAlphaType);
+ break;
+ }
+ }
+ }
+#endif
if (fPixelRef != pr || fPixelRefOffset != offset) {
if (fPixelRef != pr) {