Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Only wrap FFM exceptions if necessary. Exceptions from FFM invocations are generally
RuntimeExceptions
, so we can throw them as-is. Any others we need to wrap. In the latter case, wrap with anIllegalArgumentException
, since that's a better guess at the cause thanAssertionError
.Push locking down into
OpenSlideFFM
. Implement read-write locking for use-after-free checks in a single place inOpenSlideFFM.Ref
, which is logically a better place for it and simplifies the higher-level code.Deprecate the now-unused, but public, zero-argument
OpenSlideDisposedException
constructor.Use
AutoCloseable
wrapper class for OpenSlide error checks. Rather than manually callingcheckError()
after every set of OpenSlide calls, introduce a wrapper class which holds theOpenSlideRef
and can be used as a resource in a try-with-resources block. When exiting the block, itsclose()
method can then run the error check.Deprecate
OpenSlide.dispose()
.close()
is more idiomatic because ofCloseable
and has existed since 2010.