mirror of
https://github.com/python/cpython.git
synced 2025-08-30 05:35:08 +00:00
Issue #15026: utf-16 encoding is now significantly faster (up to 10x).
Patch by Serhiy Storchaka.
This commit is contained in:
parent
3049f1243e
commit
27f6a3b0bf
4 changed files with 102 additions and 49 deletions
|
@ -188,9 +188,9 @@ typedef unsigned char Py_UCS1;
|
|||
(((((Py_UCS4)(high) & 0x03FF) << 10) | \
|
||||
((Py_UCS4)(low) & 0x03FF)) + 0x10000)
|
||||
/* high surrogate = top 10 bits added to D800 */
|
||||
#define Py_UNICODE_HIGH_SURROGATE(ch) (0xD800 | (((ch) - 0x10000) >> 10))
|
||||
#define Py_UNICODE_HIGH_SURROGATE(ch) (0xD800 - (0x10000 >> 10) + ((ch) >> 10))
|
||||
/* low surrogate = bottom 10 bits added to DC00 */
|
||||
#define Py_UNICODE_LOW_SURROGATE(ch) (0xDC00 | (((ch) - 0x10000) & 0x3FF))
|
||||
#define Py_UNICODE_LOW_SURROGATE(ch) (0xDC00 + ((ch) & 0x3FF))
|
||||
|
||||
/* Check if substring matches at given offset. The offset must be
|
||||
valid, and the substring must not be empty. */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue