diff options
author | 2012-07-27 13:41:44 +0000 | |
---|---|---|
committer | 2012-07-27 13:41:44 +0000 | |
commit | c84b8335ee4fd864c30a4703afc643cf4b5010d9 (patch) | |
tree | 8d022e7b505f7fefdcc44eb2ba8274efbb43d307 /src/core/SkMallocPixelRef.cpp | |
parent | 7329dc9976e5a61e2382974884d2e075f4f856f1 (diff) |
Reapply "Remove Bitmaps Raw Pixel Support."
This CL reapplies r4722. Now that we have addressed the issues
in Chrome tests that were causing asserts to be fired.
Review URL: https://codereview.appspot.com/6452050
git-svn-id: http://skia.googlecode.com/svn/trunk@4804 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/core/SkMallocPixelRef.cpp')
-rw-r--r-- | src/core/SkMallocPixelRef.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/core/SkMallocPixelRef.cpp b/src/core/SkMallocPixelRef.cpp index 4bcf1bd16d..f0bc0578d6 100644 --- a/src/core/SkMallocPixelRef.cpp +++ b/src/core/SkMallocPixelRef.cpp @@ -10,21 +10,25 @@ #include "SkFlattenable.h" SkMallocPixelRef::SkMallocPixelRef(void* storage, size_t size, - SkColorTable* ctable) { + SkColorTable* ctable, bool ownPixels) { if (NULL == storage) { + SkASSERT(ownPixels); storage = sk_malloc_throw(size); } fStorage = storage; fSize = size; fCTable = ctable; SkSafeRef(ctable); + fOwnPixels = ownPixels; this->setPreLocked(fStorage, fCTable); } SkMallocPixelRef::~SkMallocPixelRef() { SkSafeUnref(fCTable); - sk_free(fStorage); + if (fOwnPixels) { + sk_free(fStorage); + } } void* SkMallocPixelRef::onLockPixels(SkColorTable** ct) { @@ -59,6 +63,7 @@ SkMallocPixelRef::SkMallocPixelRef(SkFlattenableReadBuffer& buffer) } else { fCTable = NULL; } + fOwnPixels = true; this->setPreLocked(fStorage, fCTable); } |