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.
Instead of allocating the result on heap for the user, allow the caller side to decide whether it should be heap-allocated or stack-allocated.
This new method allows us to have a zero-alloc SubImage routine for the use cases where we don't want to make an extra allocation.
The performance difference is measurable (comparison is done with benchstat):
Using SubImage is
~203ns
, SubImageInto is~33ns
. SubImage does 1 allocation, SubImageInto does none.SubImage is rewritten in a way to avoid the code duplication. It should work identically to the previous contract (it returns nil if
i
is disposed, etc.)Fixes #2902
What issue is this addressing?
#2902
What type of issue is this addressing?
Feature.
What this PR does | solves
It introduces a more efficient way of making subimages.