Index: skia/ext/bitmap_platform_device_mac.cc |
=================================================================== |
--- skia/ext/bitmap_platform_device_mac.cc (revision 127021) |
+++ skia/ext/bitmap_platform_device_mac.cc (working copy) |
@@ -125,11 +125,6 @@ |
bitmap.setPixels(data); |
} else { |
data = bitmap.getPixels(); |
- |
- // Note: The Windows implementation clears the Bitmap later on. |
- // This bears mentioning since removal of this line makes the |
- // unit tests only fail periodically (or when MallocPreScribble is set). |
- bitmap.eraseARGB(0, 0, 0, 0); |
} |
bitmap.setIsOpaque(is_opaque); |
@@ -160,6 +155,15 @@ |
return rv; |
} |
+BitmapPlatformDevice* BitmapPlatformDevice::CreateAndClear(int width, |
+ int height, |
+ bool is_opaque) { |
+ BitmapPlatformDevice* device = Create(NULL, width, height, is_opaque); |
+ if (!is_opaque) |
+ device->accessBitmap(true).eraseARGB(0, 0, 0, 0); |
+ return device; |
+} |
+ |
BitmapPlatformDevice* BitmapPlatformDevice::CreateWithData(uint8_t* data, |
int width, |
int height, |
@@ -242,7 +246,9 @@ |
SkBitmap::Config config, int width, int height, bool isOpaque, |
Usage /*usage*/) { |
SkASSERT(config == SkBitmap::kARGB_8888_Config); |
- return BitmapPlatformDevice::Create(NULL, width, height, isOpaque); |
+ SkDevice* bitmap_device = BitmapPlatformDevice::CreateAndClear(width, height, |
+ isOpaque); |
+ return bitmap_device; |
} |
} // namespace skia |