diff options
author | scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-05-06 18:08:05 +0000 |
---|---|---|
committer | scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-05-06 18:08:05 +0000 |
commit | 665b2cca88e25b821a69c9ce8a4fd7f551532012 (patch) | |
tree | 4b1f840ed9db09b30ee5aa0539d1bc46a24b232c | |
parent | 1335264fce00389c7d82105a52626ea2f48d277a (diff) |
lockPixels before calling getColorTable.
Fixes a bug where we try to dereference a NULL pointer.
Update the comment for SkBitmap::getColorTable, telling
the client that pixels must be locked for it to return
non-NULL.
R=edisonn@google.com
Review URL: https://codereview.chromium.org/15002002
git-svn-id: http://skia.googlecode.com/svn/trunk@9018 2bbb7eff-a529-9590-31e7-b0007b416f81
-rw-r--r-- | include/core/SkBitmap.h | 4 | ||||
-rw-r--r-- | src/pdf/SkPDFImage.cpp | 1 |
2 files changed, 4 insertions, 1 deletions
diff --git a/include/core/SkBitmap.h b/include/core/SkBitmap.h index 124525e249..ad18547980 100644 --- a/include/core/SkBitmap.h +++ b/include/core/SkBitmap.h @@ -371,7 +371,9 @@ public: */ SkGpuTexture* getTexture() const; - /** Return the bitmap's colortable (if any). Does not affect the colortable's + /** Return the bitmap's colortable, if it uses one (i.e. fConfig is + kIndex8_Config or kRLE_Index8_Config) and the pixels are locked. + Otherwise returns NULL. Does not affect the colortable's reference count. */ SkColorTable* getColorTable() const { return fColorTable; } diff --git a/src/pdf/SkPDFImage.cpp b/src/pdf/SkPDFImage.cpp index 04307be77e..102bd58b53 100644 --- a/src/pdf/SkPDFImage.cpp +++ b/src/pdf/SkPDFImage.cpp @@ -321,6 +321,7 @@ SkPDFImage::SkPDFImage(SkStream* imageData, insertName("ColorSpace", "DeviceGray"); } else if (config == SkBitmap::kIndex8_Config || config == SkBitmap::kRLE_Index8_Config) { + SkAutoLockPixels alp(bitmap); insert("ColorSpace", makeIndexedColorSpace(bitmap.getColorTable()))->unref(); } else { |