Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(419)

Unified Diff: src/lazy/SkDiscardablePixelRef.cpp

Issue 93703004: Change SkDecodingImageGenerator API (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: 1 Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/lazy/SkDiscardablePixelRef.cpp
diff --git a/src/lazy/SkDiscardablePixelRef.cpp b/src/lazy/SkDiscardablePixelRef.cpp
index eb35d0fcc4d5cf4c3cc9eed26a0415183afea76b..50dabd8d06847b345c2bcb21486167dcf1b1b27b 100644
--- a/src/lazy/SkDiscardablePixelRef.cpp
+++ b/src/lazy/SkDiscardablePixelRef.cpp
@@ -17,8 +17,7 @@ SkDiscardablePixelRef::SkDiscardablePixelRef(SkImageGenerator* generator,
, fGenerator(generator)
, fDMFactory(fact)
, fRowBytes(rowBytes)
- , fDiscardableMemory(NULL)
-{
+ , fDiscardableMemory(NULL) {
SkASSERT(fGenerator != NULL);
SkASSERT(fRowBytes > 0);
// The SkImageGenerator contract requires fGenerator to always
@@ -44,7 +43,7 @@ bool SkDiscardablePixelRef::onNewLockPixels(LockRec* rec) {
SkDELETE(fDiscardableMemory);
fDiscardableMemory = NULL;
}
-
+
const size_t size = this->info().getSafeSize(fRowBytes);
if (fDMFactory != NULL) {
fDiscardableMemory = fDMFactory->create(size);
@@ -76,22 +75,20 @@ bool SkInstallDiscardablePixelRef(SkImageGenerator* generator,
SkBitmap* dst,
SkDiscardableMemory::Factory* factory) {
SkImageInfo info;
- SkASSERT(generator != NULL);
- if ((NULL == generator)
- || (!generator->getInfo(&info))
+ SkAutoTDelete<SkImageGenerator> autoGenerator(generator);
+ if ((NULL == autoGenerator.get())
+ || (!autoGenerator->getInfo(&info))
|| (!dst->setConfig(info, 0))) {
- SkDELETE(generator);
return false;
}
SkASSERT(dst->config() != SkBitmap::kNo_Config);
- if (dst->empty()) { // Use a normal pixelref.
- SkDELETE(generator); // Do not need this anymore.
+ if (dst->empty()) { // Use a normal pixelref.
return dst->allocPixels(NULL, NULL);
}
SkAutoTUnref<SkDiscardablePixelRef> ref(SkNEW_ARGS(SkDiscardablePixelRef,
- (generator, info,
- dst->rowBytes(),
- factory)));
+ (autoGenerator.detach(),
+ info, dst->rowBytes(),
+ factory)));
dst->setPixelRef(ref);
return true;
}

Powered by Google App Engine
This is Rietveld 408576698