virtual ~SkJPEGImageIndex() { jpeg_destroy_huffman_index(index); delete cinfo->src; jpeg_finish_decompress(cinfo); jpeg_destroy_decompress(cinfo); free(cinfo); }
~SkJPEGImageIndex() { if (fHuffmanCreated) { // Set to false before calling the libjpeg function, in case // the libjpeg function calls longjmp. Our setjmp handler may // attempt to delete this SkJPEGImageIndex, thus entering this // destructor again. Setting fHuffmanCreated to false first // prevents an infinite loop. fHuffmanCreated = false; jpeg_destroy_huffman_index(&fHuffmanIndex); } if (fDecompressStarted) { // Like fHuffmanCreated, set to false before calling libjpeg // function to prevent potential infinite loop. fDecompressStarted = false; jpeg_finish_decompress(&fCInfo); } if (fInfoInitialized) { this->destroyInfo(); } }