diff options
Diffstat (limited to 'src/pipe/utils/SamplePipeControllers.cpp')
-rw-r--r-- | src/pipe/utils/SamplePipeControllers.cpp | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/src/pipe/utils/SamplePipeControllers.cpp b/src/pipe/utils/SamplePipeControllers.cpp index 1e25cb61c4..de26346a15 100644 --- a/src/pipe/utils/SamplePipeControllers.cpp +++ b/src/pipe/utils/SamplePipeControllers.cpp @@ -13,23 +13,16 @@ #include "SkMatrix.h" PipeController::PipeController(SkCanvas* target, SkPicture::InstallPixelRefProc proc) -:fReader(target) { - fBlock = NULL; - fBlockSize = fBytesWritten = 0; + : fReader(target), fBlockSize(0), fBytesWritten(0) { fReader.setBitmapDecoder(proc); } -PipeController::~PipeController() { - sk_free(fBlock); -} - -void* PipeController::requestBlock(size_t minRequest, size_t *actual) { - sk_free(fBlock); - fBlockSize = minRequest * 4; - fBlock = sk_malloc_throw(fBlockSize); +void* PipeController::requestBlock(size_t minRequest, size_t* actual) { + fBlockSize = minRequest; + fBlock.reset(fBlockSize); fBytesWritten = 0; *actual = fBlockSize; - return fBlock; + return fBlock.get(); } void PipeController::notifyWritten(size_t bytes) { |