diff options
author | hubbe@chromium.org <hubbe@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-06-13 23:53:05 +0000 |
---|---|---|
committer | hubbe@chromium.org <hubbe@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-06-13 23:53:05 +0000 |
commit | c1cbafd6e83b8360c326a3e539064494dbc880c0 (patch) | |
tree | 1a2863f83af758f06ce6d182451b909e4ea858bb /skia | |
parent | 6d49605d1f5f11092703d09f92f5df6456c1cf7b (diff) | |
download | chromium_src-c1cbafd6e83b8360c326a3e539064494dbc880c0.zip chromium_src-c1cbafd6e83b8360c326a3e539064494dbc880c0.tar.gz chromium_src-c1cbafd6e83b8360c326a3e539064494dbc880c0.tar.bz2 |
Make sure skia doesn't try to scale images with less than 32 bits per pixel.
BUG=247081
Review URL: https://chromiumcodereview.appspot.com/16843004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@206227 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'skia')
-rw-r--r-- | skia/ext/image_operations.cc | 4 | ||||
-rw-r--r-- | skia/ext/image_operations_unittest.cc | 11 |
2 files changed, 13 insertions, 2 deletions
diff --git a/skia/ext/image_operations.cc b/skia/ext/image_operations.cc index b1cdade..f30a85d 100644 --- a/skia/ext/image_operations.cc +++ b/skia/ext/image_operations.cc @@ -496,8 +496,8 @@ SkBitmap ImageOperations::ResizeBasic(const SkBitmap& source, (method <= ImageOperations::RESIZE_LAST_ALGORITHM_METHOD)); SkAutoLockPixels locker(source); - if (!source.readyToDraw()) - return SkBitmap(); + if (!source.readyToDraw() || source.config() != SkBitmap::kARGB_8888_Config) + return SkBitmap(); ResizeFilter filter(method, source.width(), source.height(), dest_width, dest_height, dest_subset); diff --git a/skia/ext/image_operations_unittest.cc b/skia/ext/image_operations_unittest.cc index 9fce74b..c7069e2 100644 --- a/skia/ext/image_operations_unittest.cc +++ b/skia/ext/image_operations_unittest.cc @@ -461,6 +461,17 @@ TEST(ImageOperations, HalveSubset) { } } +TEST(ImageOperations, InvalidParams) { + // Make our source bitmap. + SkBitmap src; + src.setConfig(SkBitmap::kA8_Config, 16, 34); + src.allocPixels(); + + // Scale it, don't die. + SkBitmap full_results = skia::ImageOperations::Resize( + src, skia::ImageOperations::RESIZE_BOX, 10, 20); +} + // Resamples an image to the same image, it should give the same result. TEST(ImageOperations, ResampleToSameHamming1) { CheckResampleToSame(skia::ImageOperations::RESIZE_HAMMING1); |