summaryrefslogtreecommitdiffstats
path: root/skia
diff options
context:
space:
mode:
authorhubbe@chromium.org <hubbe@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-13 23:53:05 +0000
committerhubbe@chromium.org <hubbe@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-13 23:53:05 +0000
commitc1cbafd6e83b8360c326a3e539064494dbc880c0 (patch)
tree1a2863f83af758f06ce6d182451b909e4ea858bb /skia
parent6d49605d1f5f11092703d09f92f5df6456c1cf7b (diff)
downloadchromium_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.cc4
-rw-r--r--skia/ext/image_operations_unittest.cc11
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);