Append handlers in-situ. #118
Open
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 starting to read the code I noticed some code like this:
I changed those sites to look like this:
Motivation and Context
The updated code may sometimes perform an in-situ append on the underlying storage; the original would always construct a new array.
In a worst-case scenario the original code could exhibit accidentally-quadratic behavior while, say, registering a large number of "handlers".
How Has This Been Tested?
I re-ran the unit tests and they still passed.
I also ran this test to double-check that the setter for
subscript(key:default:)
existed and worked as I thought:I didn't include that test in the PR because it's a one-off experiment to re-confirm my understanding of a standard-library method, but I'm happy to put it back in if you'd like.
Breaking Changes
No.
Types of changes
Checklist
Additional context
Glad there's an official sdk!