Chromium Code Reviews| Index: src/codec/SkJpegAutoClean.cpp |
| diff --git a/src/codec/SkJpegAutoClean.cpp b/src/codec/SkJpegAutoClean.cpp |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..f2c5fe3a0894468bee53c2cb737c343eec79d28e |
| --- /dev/null |
| +++ b/src/codec/SkJpegAutoClean.cpp |
| @@ -0,0 +1,45 @@ |
| +/* |
| + * Copyright 2015 Google Inc. |
| + * |
| + * Use of this source code is governed by a BSD-style license that can be |
| + * found in the LICENSE file. |
| + */ |
| + |
| +#include "SkJpegAutoClean.h" |
| +#include "SkJpegUtility.h" |
| + |
| +JpegAutoClean::JpegAutoClean(jpeg_decompress_struct* jpegInfo, bool init) |
| + : fJpegInfo(jpegInfo) |
| + , fInit(init) |
| +{} |
| + |
| +JpegAutoClean::~JpegAutoClean() { |
| + free(); |
|
scroggo
2015/04/10 17:19:05
nit: this->free()
msarett
2015/04/13 20:54:04
Done.
|
| +} |
| + |
| +void JpegAutoClean::setInit(bool init) { |
| + fInit = init; |
| +} |
| + |
| +jpeg_decompress_struct* JpegAutoClean::get() { |
|
scroggo
2015/04/10 17:19:05
Down below I think I suggest that you do not call
msarett
2015/04/13 20:54:04
I added three operators and removed about one mill
|
| + return fJpegInfo.get(); |
| +} |
| + |
| +jpeg_decompress_struct* JpegAutoClean::detach() { |
| + fInit = false; |
| + return fJpegInfo.detach(); |
| +} |
| + |
| +void JpegAutoClean::reset(jpeg_decompress_struct* jpegInfo) { |
| + free(); |
| + fJpegInfo.reset(jpegInfo); |
| +} |
| + |
| +void JpegAutoClean::free() { |
| + if (NULL != fJpegInfo.get() && fInit) { |
| + SkDELETE_ARRAY(((skjpeg_source_mgr*) fJpegInfo.get()->src)->fBuffer); |
| + SkDELETE(fJpegInfo.get()->src); |
| + SkDELETE(fJpegInfo.get()->err); |
| + jpeg_destroy_decompress(fJpegInfo.get()); |
| + } |
| +} |