8000 gh-105156: Cleanup usage of old Py_UNICODE type (#105158) · python/cpython@7d07e58 · GitHub
[go: up one dir, main page]

Skip to content

Commit 7d07e58

Browse files
authored
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.
1 parent 424049c commit 7d07e58

File tree

4 files changed

+27
-53
lines changed

4 files changed

+27
-53
lines changed

Doc/data/refcounts.dat

Lines changed: 20 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -2374,76 +2374,56 @@ PyUnicode_KIND:PyObject*:o:0:
23742374
PyUnicode_MAX_CHAR_VALUE::::
23752375
PyUnicode_MAX_CHAR_VALUE:PyObject*:o:0:
23762376

2377-
PyUnicode_AS_UNICODE:Py_UNICODE*:::
2378-
PyUnicode_AS_UNICODE:PyObject*:o:0:
2379-
2380-
PyUnicode_AS_DATA:const char*:::
2381-
PyUnicode_AS_DATA:PyObject*:o:0:
2382-
23832377
Py_UNICODE_ISALNUM:int:::
2384-
Py_UNICODE_ISALNUM:Py_UNICODE:ch::
2378+
Py_UNICODE 8000 _ISALNUM:Py_UCS4:ch::
23852379

23862380
Py_UNICODE_ISALPHA:int:::
2387-
Py_UNICODE_ISALPHA:Py_UNICODE:ch::
2381+
Py_UNICODE_ISALPHA:Py_UCS4:ch::
23882382

23892383
Py_UNICODE_ISSPACE:int:::
2390-
Py_UNICODE_ISSPACE:Py_UNICODE:ch::
2384+
Py_UNICODE_ISSPACE:Py_UCS4:ch::
23912385

23922386
Py_UNICODE_ISLOWER:int:::
2393-
Py_UNICODE_ISLOWER:Py_UNICODE:ch::
2387+
Py_UNICODE_ISLOWER:Py_UCS4:ch::
23942388

23952389
Py_UNICODE_ISUPPER:int:::
2396-
Py_UNICODE_ISUPPER:Py_UNICODE:ch::
2390+
Py_UNICODE_ISUPPER:Py_UCS4:ch::
23972391

23982392
Py_UNICODE_ISTITLE:int:::
2399-
Py_UNICODE_ISTITLE:Py_UNICODE:ch::
2393+
Py_UNICODE_ISTITLE:Py_UCS4:ch::
24002394

24012395
Py_UNICODE_ISLINEBREAK:int:::
2402-
Py_UNICODE_ISLINEBREAK:Py_UNICODE:ch::
2396+
Py_UNICODE_ISLINEBREAK:Py_UCS4:ch::
24032397

24042398
Py_UNICODE_ISDECIMAL:int:::
2405-
Py_UNICODE_ISDECIMAL:Py_UNICODE:ch::
2399+
Py_UNICODE_ISDECIMAL:Py_UCS4:ch::
24062400

24072401
Py_UNICODE_ISDIGIT:int:::
2408-
Py_UNICODE_ISDIGIT:Py_UNICODE:ch::
2402+
Py_UNICODE_ISDIGIT:Py_UCS4:ch::
24092403

24102404
Py_UNICODE_ISNUMERIC:int:::
2411-
Py_UNICODE_ISNUMERIC:Py_UNICODE:ch::
2405+
Py_UNICODE_ISNUMERIC:Py_UCS4:ch::
24122406

24132407
Py_UNICODE_ISPRINTABLE:int:::
2414-
Py_UNICODE_ISPRINTABLE:Py_UNICODE:ch::
2408+
Py_UNICODE_ISPRINTABLE:Py_UCS4:ch::
24152409

2416-
Py_UNICODE_TOLOWER:Py_UNICODE:::
2417-
Py_UNICODE_TOLOWER:Py_UNICODE:ch::
2410+
Py_UNICODE_TOLOWER:Py_UCS4:::
2411+
Py_UNICODE_TOLOWER:Py_UCS4:ch::
24182412

2419-
Py_UNICODE_TOUPPER:Py_UNICODE:::
2420-
Py_UNICODE_TOUPPER:Py_UNICODE:ch::
2413+
Py_UNICODE_TOUPPER:Py_UCS4:::
2414+
Py_UNICODE_TOUPPER:Py_UCS4:ch::
24212415

2422-
Py_UNICODE_TOTITLE:Py_UNICODE:::
2423-
Py_UNICODE_TOTITLE:Py_UNICODE:ch::
2416+
Py_UNICODE_TOTITLE:Py_UCS4:::
2417+
Py_UNICODE_TOTITLE:Py_UCS4:ch::
24242418

24252419
Py_UNICODE_TODECIMAL:int:::
2426-
Py_UNICODE_TODECIMAL:Py_UNICODE:ch::
2420+
Py_UNICODE_TODECIMAL:Py_UCS4:ch::
24272421

24282422
Py_UNICODE_TODIGIT:int:::
2429-
Py_UNICODE_TODIGIT:Py_UNICODE:ch::
2423+
Py_UNICODE_TODIGIT:Py_UCS4:ch::
24302424

24312425
Py_UNICODE_TONUMERIC:double:::
2432-
Py_UNICODE_TONUMERIC:Py_UNICODE:ch::
2433-
2434-
PyUnicode_FromUnicode:PyObject*::+1:
2435-
PyUnicode_FromUnicode:const Py_UNICODE*:u::
2436-
PyUnicode_FromUnicode:Py_ssize_t:size::
2437-
2438-
PyUnicode_AsUnicode:Py_UNICODE*:::
2439-
PyUnicode_AsUnicode:PyObject*:unicode:0:
2440-
2441-
PyUnicode_AsUnicodeAndSize:Py_UNICODE*:::
2442-
PyUnicode_AsUnicodeAndSize:PyObject*:unicode:0:
2443-
PyUnicode_AsUnicodeAndSize:Py_ssize_t*:size::
2444-
2445-
PyUnicode_GetSize:Py_ssize_t:::
2446-
PyUnicode_GetSize:PyObject*:unicode:0:
2426+
Py_UNICODE_TONUMERIC:Py_UCS4:ch::
24472427

24482428
PyUnicode_FromObject:PyObject*::+1:
24492429
PyUnicode_FromObject:PyObject*:obj:0:

Include/cpython/unicodeobject.h

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -379,8 +379,6 @@ static inline Py_UCS4 PyUnicode_MAX_CHAR_VALUE(PyObject *op)
379379

380380
/* === Public API ========================================================= */
381381

382-
/* --- Plain Py_UNICODE --------------------------------------------------- */
383-
384382
/* With PEP 393, this is the recommended way to allocate a new unicode object.
385383
This function will allocate the object and its buffer in a single memory
386384
block. Objects created using this function are not resizable. */
@@ -827,15 +825,15 @@ PyAPI_FUNC(int) _PyUnicode_IsLinebreak(
827825
const Py_UCS4 ch /* Unicode character */
828826
);
829827

830-
/* Py_DEPRECATED(3.3) */ PyAPI_FUNC(Py_UCS4) _PyUnicode_ToLowercase(
828+
PyAPI_FUNC(Py_UCS4) _PyUnicode_ToLowercase(
831829
Py_UCS4 ch /* Unicode character */
832830
);
833831

834-
/* Py_DEPRECATED(3.3) */ PyAPI_FUNC(Py_UCS4) _PyUnicode_ToUppercase(
832+
PyAPI_FUNC(Py_UCS4) _PyUnicode_ToUppercase(
835833
Py_UCS4 ch /* Unicode character */
836834
);
837835

838-
Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UCS4) _PyUnicode_ToTitlecase(
836+
PyAPI_FUNC(Py_UCS4) _PyUnicode_ToTitlecase(
839837
Py_UCS4 ch /* Unicode character */
840838
);
841839

Objects/stringlib/README.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ the following defines used by the different modules:
99

1010
STRINGLIB_CHAR
1111

12-
the type used to hold a character (char or Py_UNICODE)
12+
the type used to hold a character (char, Py_UCS1, Py_UCS2 or Py_UCS4)
1313

1414
STRINGLIB_GET_EMPTY()
1515

Tools/gdb/libpython.py

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1390,10 +1390,6 @@ def _unichr_is_printable(char):
13901390
class PyUnicodeObjectPtr(PyObjectPtr):
13911391
_typename = 'PyUnicodeObject'
13921392

1393-
def char_width(self):
1394-
_type_Py_UNICODE = gdb.lookup_type('Py_UNICODE')
1395-
return _type_Py_UNICODE.sizeof
1396-
13971393
def proxyval(self, visited):
13981394
compact = self.field('_base')
13991395
ascii = compact['_base']
@@ -1414,13 +1410,13 @@ def proxyval(self, visited):
14141410
elif repr_kind == 4:
14151411
field_str = field_str.cast(_type_unsigned_int_ptr())
14161412

1417-
# Gather a list of ints from the Py_UNICODE array; these are either
1413+
# Gather a list of ints from the code point array; these are either
14181414
# UCS-1, UCS-2 or UCS-4 code points:
1419-
Py_UNICODEs = [int(field_str[i]) for i in safe_range(field_length)]
1415+
code_points = [int(field_str[i]) for i in safe_range(field_length)]
14201416

14211417
# Convert the int code points to unicode characters, and generate a
14221418
# local unicode instance.
1423-
result = u''.join(map(chr, Py_UNICODEs))
1419+
result = u''.join(map(chr, code_points))
14241420
return result
14251421

14261422
def write_repr(self, out, visited):

0 commit comments

Comments
 (0)
0