From: Yichen Yan Date: Wed, 26 Apr 2023 11:45:58 +0000 (+0800) Subject: gh-103875: Use ascii and latin1 singletons in deepfreeze (#103876) X-Git-Tag: v3.12.0b1~414 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=214e5684c274f359d4cc34381f65e9f1a9952802;p=thirdparty%2FPython%2Fcpython.git gh-103875: Use ascii and latin1 singletons in deepfreeze (#103876) --- diff --git a/Tools/build/deepfreeze.py b/Tools/build/deepfreeze.py index 5cfef5c572c4..b084d3e457f7 100644 --- a/Tools/build/deepfreeze.py +++ b/Tools/build/deepfreeze.py @@ -175,6 +175,12 @@ class Printer: return f"&_Py_STR({strings[s]})" if s in identifiers: return f"&_Py_ID({s})" + if len(s) == 1: + c = ord(s) + if c < 128: + return f"(PyObject *)&_Py_SINGLETON(strings).ascii[{c}]" + elif c < 256: + return f"(PyObject *)&_Py_SINGLETON(strings).latin1[{c - 128}]" if re.match(r'\A[A-Za-z0-9_]+\Z', s): name = f"const_str_{s}" kind, ascii = analyze_character_width(s)