Add partial base64 in-place encoding support#2166
Open
Mis1eader-dev wants to merge 2 commits intodrogonframework:masterfrom
Open
Add partial base64 in-place encoding support#2166Mis1eader-dev wants to merge 2 commits intodrogonframework:masterfrom
Mis1eader-dev wants to merge 2 commits intodrogonframework:masterfrom
Conversation
Member
Author
|
Wait I forgot to to test it on longer payloads, may have to split this implementation into 2 functions. |
Member
Author
|
Surprisingly it works for longer inputs too, I don't know how. |
Member
Author
|
One small thing to keep note of, in one of the inner loops where it does a copy ahead is not safe, it could read up to 3 bytes outside of the input buffer, but they will not be used after the outer loop is finished executing. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This PR allows for encoding a sequence of bytes, which does not exceed 12 bytes, in-place.
Added the declaration of another base64 encoding function that will do in-place encoding but with dynamic allocation.
Tried as much as I could to stick to the old implementation, had to make some structured changes to make it work for in-place encoding.
Replaced
.resize()calls as they were allocating more than they needed in terms of capacity. Use this sample code to check out this change: