aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkMallocPixelRef.cpp
diff options
context:
space:
mode:
authorGravatar djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2012-07-27 13:41:44 +0000
committerGravatar djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2012-07-27 13:41:44 +0000
commitc84b8335ee4fd864c30a4703afc643cf4b5010d9 (patch)
tree8d022e7b505f7fefdcc44eb2ba8274efbb43d307 /src/core/SkMallocPixelRef.cpp
parent7329dc9976e5a61e2382974884d2e075f4f856f1 (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.cpp9
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);
}