Make TJCompressor.close() and TJDecompressor.close() idempotent

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.4.x@1416 632fc199-4ca6-4c93-a231-07263d6284db
This commit is contained in:
DRC
2014-11-18 21:45:34 +00:00
parent 803b5d24a8
commit 3ebcf7cf86
3 changed files with 11 additions and 2 deletions

View File

@@ -16,6 +16,13 @@ instead of -1 if width was < 1.
[5] The Huffman encoder now uses clz and bsr instructions for bit counting on
ARM64 platforms (see 1.4 beta1 [5].)
[6] The close() method in the TJCompressor and TJDecompressor Java classes is
now idempotent. Previously, that method would call the native tjDestroy()
function even if the TurboJPEG instance had already been destroyed. This
caused an exception to be thrown during finalization, if the close() method had
already been called. The exception was caught, but it was still an expensive
operation.
1.3.90 (1.4 beta1)
==================

View File

@@ -567,7 +567,8 @@ public class TJCompressor {
* Free the native structures associated with this compressor instance.
*/
public void close() throws Exception {
destroy();
if (handle != 0)
destroy();
}
protected void finalize() throws Throwable {

View File

@@ -834,7 +834,8 @@ public class TJDecompressor {
* Free the native structures associated with this decompressor instance.
*/
public void close() throws Exception {
destroy();
if (handle != 0)
destroy();
}
protected void finalize() throws Throwable {