terminal/src/terminal/parser
Leonard Hecker 9aa4a115aa
Improve Base64::Decode performance (#11467)
This commit renames `Base64::s_Decode` into `Base64::Decode` and improves its
average performance on short strings of less than 200 characters by 4.5x.
This is achieved by implementing a classic base64 decoder that reads 4
characters at a time and produces 3 output bytes. Furthermore a small
128 byte lookup table is used to quickly map characters to values.

## PR Checklist
* [x] I work here
* [x] Tests added/passed

## Validation Steps Performed
* Run WSL in Windows Terminal
* Run `printf "\033]52;c;aHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC90ZXJtaW5hbC9wdWxsLzExNDY3\a"`
* Clipboard contains `https://github.com/microsoft/terminal/pull/11467` ✔️
2021-10-26 21:30:25 +00:00
..
ft_fuzzer Merged PR 5598201: Reflect OS build changes atop a8b404463 2021-01-22 04:57:26 +00:00
ft_fuzzwrapper Change backslashes in include statements to forward slashes (#8205) 2020-11-25 21:02:10 +00:00
lib Unify and clean up the common build properties (#3429) 2019-11-05 14:29:11 -08:00
ut_parser Improve Base64::Decode performance (#11467) 2021-10-26 21:30:25 +00:00
ascii.hpp Fix a bunch of spelling errors across the project (#4295) 2020-02-10 20:40:01 +00:00
base64.cpp Improve Base64::Decode performance (#11467) 2021-10-26 21:30:25 +00:00
base64.hpp Improve Base64::Decode performance (#11467) 2021-10-26 21:30:25 +00:00
delfuzzpayload.bat Initial release of the Windows Terminal source code 2019-05-02 15:29:04 -07:00
dirs Initial release of the Windows Terminal source code 2019-05-02 15:29:04 -07:00
InputStateMachineEngine.cpp Pass through double clicks and hover events in Win32 mouse mode (#10138) 2021-05-24 17:24:28 +00:00
InputStateMachineEngine.hpp Pass through double clicks and hover events in Win32 mouse mode (#10138) 2021-05-24 17:24:28 +00:00
IStateMachineEngine.hpp Introduce a mechanism for passing through DCS data strings (#9307) 2021-04-30 19:17:30 +00:00
OutputStateMachineEngine.cpp Improve Base64::Decode performance (#11467) 2021-10-26 21:30:25 +00:00
OutputStateMachineEngine.hpp Add basic support for the DECRQSS settings query (#11152) 2021-09-08 23:26:44 +00:00
parser-common.vcxitems Add support for OSC 52 (copy-to-clipboard) (#5823) 2020-06-30 01:55:40 +00:00
precomp.cpp Initial release of the Windows Terminal source code 2019-05-02 15:29:04 -07:00
precomp.h Initial release of the Windows Terminal source code 2019-05-02 15:29:04 -07:00
runfuzz.bat Initial release of the Windows Terminal source code 2019-05-02 15:29:04 -07:00
runtest.bat Initial release of the Windows Terminal source code 2019-05-02 15:29:04 -07:00
sources.inc Add support for OSC 52 (copy-to-clipboard) (#5823) 2020-06-30 01:55:40 +00:00
stateMachine.cpp Defer _run substr operation in StateMachine::ProcessString (#10471) 2021-06-29 17:47:27 -05:00
stateMachine.hpp Defer _run substr operation in StateMachine::ProcessString (#10471) 2021-06-29 17:47:27 -05:00
telemetry.cpp Add support for double-width/double-height lines in conhost (#8664) 2021-02-18 05:44:50 +00:00
telemetry.hpp Add support for double-width/double-height lines in conhost (#8664) 2021-02-18 05:44:50 +00:00
tracing.cpp Improve parser performance by reducing tracing overhead (#10533) 2021-06-30 02:28:40 +02:00
tracing.hpp Improve parser performance by reducing tracing overhead (#10533) 2021-06-30 02:28:40 +02:00