Improve performance of BinaryTagIO by buffering and clarify stream closing #98
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.
While looking at
adventure-nbt
I spotted two issues:BinaryTagIO
will indiscriminately close streams given to it. For single-shot cases or reading from a in-memory buffer this isn't an issue, but if (say) you were parsing a set of NBT streams this could be an issue.To fix this:
Path
-taking methods and*Compressed*
methods now buffer the relevant streams (I assume if you're passing in anInputStream
or aDataInput
directly that you know what you're doing)BinaryTagIO
won't close streams it is givenStill a bit of a WIP (need to write tests), but wanted to get this up here.