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

Side by Side Diff: src/codec/SkJpegCodec.h

Issue 1212593003: Destroy SkScanlineDecoder in the SkCodec subclass destructors (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Detachable SkScanlineDecoder Created 5 years, 5 months 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright 2015 Google Inc. 2 * Copyright 2015 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #ifndef SkJpegCodec_DEFINED 8 #ifndef SkJpegCodec_DEFINED
9 #define SkJpegCodec_DEFINED 9 #define SkJpegCodec_DEFINED
10 10
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 * Called only by NewFromStream 88 * Called only by NewFromStream
89 * 89 *
90 * @param srcInfo contains the source width and height 90 * @param srcInfo contains the source width and height
91 * @param stream the encoded image data 91 * @param stream the encoded image data
92 * @param decoderMgr holds decompress struct, src manager, and error manager 92 * @param decoderMgr holds decompress struct, src manager, and error manager
93 * takes ownership 93 * takes ownership
94 */ 94 */
95 SkJpegCodec(const SkImageInfo& srcInfo, SkStream* stream, JpegDecoderMgr* de coderMgr); 95 SkJpegCodec(const SkImageInfo& srcInfo, SkStream* stream, JpegDecoderMgr* de coderMgr);
96 96
97 /* 97 /*
98 * Explicit destructor is used to ensure that the scanline decoder is delete d
99 * before the decode manager.
100 */
101 ~SkJpegCodec() override;
102
103 /*
98 * Handles rewinding the input stream if it is necessary 104 * Handles rewinding the input stream if it is necessary
99 */ 105 */
100 bool handleRewind(); 106 bool handleRewind();
101 107
102 /* 108 /*
103 * Checks if we can scale to the requested dimensions and scales the dimensi ons 109 * Checks if we can scale to the requested dimensions and scales the dimensi ons
104 * if possible 110 * if possible
105 */ 111 */
106 bool scaleToDimensions(uint32_t width, uint32_t height); 112 bool scaleToDimensions(uint32_t width, uint32_t height);
107 113
108 /* 114 /*
109 * Create the swizzler based on the encoded format 115 * Create the swizzler based on the encoded format
110 */ 116 */
111 void initializeSwizzler(const SkImageInfo& dstInfo, void* dst, size_t dstRow Bytes, 117 void initializeSwizzler(const SkImageInfo& dstInfo, void* dst, size_t dstRow Bytes,
112 const Options& options); 118 const Options& options);
113 119
114 SkAutoTDelete<JpegDecoderMgr> fDecoderMgr; 120 SkAutoTDelete<JpegDecoderMgr> fDecoderMgr;
115 SkAutoTDelete<SkSwizzler> fSwizzler; 121 SkAutoTDelete<SkSwizzler> fSwizzler;
116 size_t fSrcRowBytes; 122 size_t fSrcRowBytes;
117 123
118 friend class SkJpegScanlineDecoder; 124 friend class SkJpegScanlineDecoder;
119 125
120 typedef SkCodec INHERITED; 126 typedef SkCodec INHERITED;
121 }; 127 };
122 128
123 #endif 129 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698