diff options
author | Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com> | 2022-09-03 06:43:08 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-03 06:43:08 (GMT) |
commit | 6dab8c95bd8db18e09619d804a938ab3e46042fc (patch) | |
tree | 5e4ade21c974782385aa48f945a66701b895e3c3 /Tools/scripts/generate_global_objects.py | |
parent | 16c6759b3748f9b787b2fa4d5e652a8e08a17dee (diff) | |
download | cpython-6dab8c95bd8db18e09619d804a938ab3e46042fc.zip cpython-6dab8c95bd8db18e09619d804a938ab3e46042fc.tar.gz cpython-6dab8c95bd8db18e09619d804a938ab3e46042fc.tar.bz2 |
GH-96458: Statically initialize utf8 representation of static strings (#96481)
Diffstat (limited to 'Tools/scripts/generate_global_objects.py')
-rw-r--r-- | Tools/scripts/generate_global_objects.py | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/Tools/scripts/generate_global_objects.py b/Tools/scripts/generate_global_objects.py index f3a11f5..a50f3ba 100644 --- a/Tools/scripts/generate_global_objects.py +++ b/Tools/scripts/generate_global_objects.py @@ -287,7 +287,11 @@ def generate_runtime_init(identifiers, strings): immortal_objects.append(f'(PyObject *)&_Py_SINGLETON(strings).ascii[{i}]') with printer.block('.latin1 =', ','): for i in range(128, 256): - printer.write(f'_PyUnicode_LATIN1_INIT("\\x{i:02x}"),') + utf8 = ['"'] + for c in chr(i).encode('utf-8'): + utf8.append(f"\\x{c:02x}") + utf8.append('"') + printer.write(f'_PyUnicode_LATIN1_INIT("\\x{i:02x}", {"".join(utf8)}),') immortal_objects.append(f'(PyObject *)&_Py_SINGLETON(strings).latin1[{i} - 128]') printer.write('') with printer.block('.tuple_empty =', ','): |