gh-105156: Cleanup usage of old Py_UNICODE type (#105158)

* refcounts.dat:

  * Remove Py_UNICODE functions.
  * Replace Py_UNICODE argument type with wchar_t.

* _PyUnicode_ToLowercase(), _PyUnicode_ToUppercase(),
  _PyUnicode_ToTitlecase() are no longer deprecated in comments.
  It's no longer needed since they now use Py_UCS4 type, rather than
  the deprecated Py_UNICODE type.
* gdb: Remove unused char_width() method.
This commit is contained in:
Victor Stinner 2023-06-01 09:18:09 +02:00 committed by GitHub
parent 424049cc11
commit 7d07e5891d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 27 additions and 53 deletions

View file

@ -1390,10 +1390,6 @@ def _unichr_is_printable(char):
class PyUnicodeObjectPtr(PyObjectPtr):
_typename = 'PyUnicodeObject'
def char_width(self):
_type_Py_UNICODE = gdb.lookup_type('Py_UNICODE')
return _type_Py_UNICODE.sizeof
def proxyval(self, visited):
compact = self.field('_base')
ascii = compact['_base']
@ -1414,13 +1410,13 @@ class PyUnicodeObjectPtr(PyObjectPtr):
elif repr_kind == 4:
field_str = field_str.cast(_type_unsigned_int_ptr())
# Gather a list of ints from the Py_UNICODE array; these are either
# Gather a list of ints from the code point array; these are either
# UCS-1, UCS-2 or UCS-4 code points:
Py_UNICODEs = [int(field_str[i]) for i in safe_range(field_length)]
code_points = [int(field_str[i]) for i in safe_range(field_length)]
# Convert the int code points to unicode characters, and generate a
# local unicode instance.
result = u''.join(map(chr, Py_UNICODEs))
result = u''.join(map(chr, code_points))
return result
def write_repr(self, out, visited):