mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-23 21:22:17 +00:00
3f2d696d72
The ist functions were missing functions to copy an IST into a target buffer, making some code have to resort to memcpy(), which tends to be overkill for small strings, that the compiler cannot guess. In addition sometimes there is a need to turn a string to lower or upper case so it had to be overwritten after the operation. This patch adds 6 functions to copy an ist to a buffer, as binary or as a string (i.e. a zero is or is not appended), and optionally to apply a lower case or upper case transformation on the fly. A number of tests were performed to optimize the processing for small strings. The loops are marked unlikely to dissuade the compilers from over-optimizing them and switching to SIMD instructions. The lower case or upper case transformations used to rely on external functions for each character and to crappify the code due to clobbered registers, which is not acceptable when we know that only a certain class of chars has to be transformed, so the test was open-coded. |
||
---|---|---|
.. | ||
common | ||
import | ||
proto | ||
types |