summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorreed@google.com <reed@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-24 17:41:35 +0000
committerreed@google.com <reed@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-24 17:41:35 +0000
commitd6bdc0bf909807183c161e9d3b59b498ce3960bf (patch)
treed38a3bab033070d5aec8f985ea85f245baf0ccc7
parent23ec180256a46e94df7d5cb4f8b2eafe75c6cf1b (diff)
downloadchromium_src-d6bdc0bf909807183c161e9d3b59b498ce3960bf.zip
chromium_src-d6bdc0bf909807183c161e9d3b59b498ce3960bf.tar.gz
chromium_src-d6bdc0bf909807183c161e9d3b59b498ce3960bf.tar.bz2
Check for no pixels after calling lockPixels(). If so, we return rather than
dereferencing null. http://code.google.com/p/chromium/issues/detail?id=79369 Review URL: http://codereview.chromium.org/7064024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86442 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--ui/gfx/color_utils.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/ui/gfx/color_utils.cc b/ui/gfx/color_utils.cc
index eb639f9..dfcf196 100644
--- a/ui/gfx/color_utils.cc
+++ b/ui/gfx/color_utils.cc
@@ -208,6 +208,9 @@ SkColor GetAverageColorOfFavicon(SkBitmap* favicon, SkAlpha alpha) {
SkAutoLockPixels favicon_lock(*favicon);
SkColor* pixels = static_cast<SkColor*>(favicon->getPixels());
+ if (!pixels)
+ return SkColorSetARGB(alpha, 0, 0, 0);
+
// Assume ARGB_8888 format.
DCHECK(favicon->getConfig() == SkBitmap::kARGB_8888_Config);
SkColor* current_color = pixels;
@@ -241,6 +244,9 @@ SkColor GetAverageColorOfFavicon(SkBitmap* favicon, SkAlpha alpha) {
void BuildLumaHistogram(SkBitmap* bitmap, int histogram[256]) {
SkAutoLockPixels bitmap_lock(*bitmap);
+ if (!bitmap->getPixels())
+ return;
+
// Assume ARGB_8888 format.
DCHECK(bitmap->getConfig() == SkBitmap::kARGB_8888_Config);