@@ -129,13 +129,16 @@ extern "C" {
129129
130130#define _PyUnicode_LENGTH (op ) \
131131 (_PyASCIIObject_CAST(op)->length)
132- #define _PyUnicode_STATE (op ) \
133- (_PyASCIIObject_CAST(op)->state)
134132#define _PyUnicode_HASH (op ) \
135133 (_PyASCIIObject_CAST(op)->hash)
134+ #define _PyUnicode_INTERNED (op ) \
135+ (_PyASCIIObject_CAST(op)->interned)
136136#define _PyUnicode_KIND (op ) \
137- (assert(_PyUnicode_CHECK(op)), \
138- _PyASCIIObject_CAST(op)->state.kind)
137+ (_PyASCIIObject_CAST(op)->kind)
138+ #define _PyUnicode_COMPACT (op ) \
139+ (_PyASCIIObject_CAST(op)->compact)
140+ #define _PyUnicode_ASCII (op ) \
141+ (_PyASCIIObject_CAST(op)->ascii)
139142#define _PyUnicode_GET_LENGTH (op ) \
140143 (assert(_PyUnicode_CHECK(op)), \
141144 _PyASCIIObject_CAST(op)->length)
@@ -497,21 +500,21 @@ _PyUnicode_CheckConsistency(PyObject *op, int check_content)
497500 CHECK (PyUnicode_Check (op ));
498501
499502 PyASCIIObject * ascii = _PyASCIIObject_CAST (op );
500- int kind = ascii -> state . kind ;
503+ int kind = ascii -> kind ;
501504
502- if (ascii -> state . ascii == 1 && ascii -> state . compact == 1 ) {
505+ if (ascii -> ascii == 1 && ascii -> compact == 1 ) {
503506 CHECK (kind == PyUnicode_1BYTE_KIND );
504507 }
505508 else {
506509 PyCompactUnicodeObject * compact = _PyCompactUnicodeObject_CAST (op );
507510 void * data ;
508511
509- if (ascii -> state . compact == 1 ) {
512+ if (ascii -> compact == 1 ) {
510513 data = compact + 1 ;
511514 CHECK (kind == PyUnicode_1BYTE_KIND
512515 || kind == PyUnicode_2BYTE_KIND
513516 || kind == PyUnicode_4BYTE_KIND );
514- CHECK (ascii -> state . ascii == 0 );
517+ CHECK (ascii -> ascii == 0 );
515518 CHECK (compact -> utf8 != data );
516519 }
517520 else {
@@ -521,9 +524,9 @@ _PyUnicode_CheckConsistency(PyObject *op, int check_content)
521524 CHECK (kind == PyUnicode_1BYTE_KIND
522525 || kind == PyUnicode_2BYTE_KIND
523526 || kind == PyUnicode_4BYTE_KIND );
524- CHECK (ascii -> state . compact == 0 );
527+ CHECK (ascii -> compact == 0 );
525528 CHECK (data != NULL );
526- if (ascii -> state . ascii ) {
529+ if (ascii -> ascii ) {
527530 CHECK (compact -> utf8 == data );
528531 CHECK (compact -> utf8_length == ascii -> length );
529532 }
@@ -551,7 +554,7 @@ _PyUnicode_CheckConsistency(PyObject *op, int check_content)
551554 maxchar = ch ;
552555 }
553556 if (kind == PyUnicode_1BYTE_KIND ) {
554- if (ascii -> state . ascii == 0 ) {
557+ if (ascii -> ascii == 0 ) {
555558 CHECK (maxchar >= 128 );
556559 CHECK (maxchar <= 255 );
557560 }
@@ -1108,9 +1111,9 @@ _PyUnicode_Dump(PyObject *op)
11081111 PyUnicodeObject * unicode = _PyUnicodeObject_CAST (op );
11091112 const void * data ;
11101113
1111- if (ascii -> state . compact )
1114+ if (ascii -> compact )
11121115 {
1113- if (ascii -> state . ascii )
1116+ if (ascii -> ascii )
11141117 data = (ascii + 1 );
11151118 else
11161119 data = (compact + 1 );
@@ -1119,7 +1122,7 @@ _PyUnicode_Dump(PyObject *op)
11191122 data = unicode -> data .any ;
11201123 printf ("%s: len=%zu, " , unicode_kind_name (op ), ascii -> length );
11211124
1122- if (!ascii -> state . ascii ) {
1125+ if (!ascii -> ascii ) {
11231126 printf ("utf8=%p (%zu)" , (void * )compact -> utf8 , compact -> utf8_length );
11241127 }
11251128 printf (", data=%p\n" , data );
@@ -1195,10 +1198,10 @@ PyUnicode_New(Py_ssize_t size, Py_UCS4 maxchar)
11951198 data = unicode + 1 ;
11961199 _PyUnicode_LENGTH (unicode ) = size ;
11971200 _PyUnicode_HASH (unicode ) = -1 ;
1198- _PyUnicode_STATE (unicode ). interned = 0 ;
1199- _PyUnicode_STATE (unicode ). kind = kind ;
1200- _PyUnicode_STATE (unicode ). compact = 1 ;
1201- _PyUnicode_STATE (unicode ). ascii = is_ascii ;
1201+ _PyUnicode_INTERNED (unicode ) = 0 ;
1202+ _PyUnicode_KIND (unicode ) = kind ;
1203+ _PyUnicode_COMPACT (unicode ) = 1 ;
1204+ _PyUnicode_ASCII (unicode ) = is_ascii ;
12021205 if (is_ascii ) {
12031206 ((char * )data )[size ] = 0 ;
12041207 }
@@ -14372,10 +14375,10 @@ unicode_subtype_new(PyTypeObject *type, PyObject *unicode)
1437214375#else
1437314376 _PyUnicode_HASH (self ) = _PyUnicode_HASH (unicode );
1437414377#endif
14375- _PyUnicode_STATE (self ). interned = 0 ;
14376- _PyUnicode_STATE (self ). kind = kind ;
14377- _PyUnicode_STATE (self ). compact = 0 ;
14378- _PyUnicode_STATE (self ). ascii = _PyUnicode_STATE (unicode ). ascii ;
14378+ _PyUnicode_INTERNED (self ) = 0 ;
14379+ _PyUnicode_KIND (self ) = kind ;
14380+ _PyUnicode_COMPACT (self ) = 0 ;
14381+ _PyUnicode_ASCII (self ) = _PyUnicode_ASCII (unicode );
1437914382 _PyUnicode_UTF8_LENGTH (self ) = 0 ;
1438014383 _PyUnicode_UTF8 (self ) = NULL ;
1438114384 _PyUnicode_DATA_ANY (self ) = NULL ;
@@ -14624,7 +14627,7 @@ PyUnicode_InternInPlace(PyObject **p)
1462414627 refcnt. unicode_dealloc() and _PyUnicode_ClearInterned() take care of
1462514628 this. */
1462614629 Py_SET_REFCNT (s , Py_REFCNT (s ) - 2 );
14627- _PyUnicode_STATE (s ). interned = 1 ;
14630+ _PyUnicode_INTERNED (s ) = 1 ;
1462814631}
1462914632
1463014633// Function kept for the stable ABI.
@@ -14683,7 +14686,7 @@ _PyUnicode_ClearInterned(PyInterpreterState *interp)
1468314686 total_length += PyUnicode_GET_LENGTH (s );
1468414687#endif
1468514688
14686- _PyUnicode_STATE (s ). interned = 0 ;
14689+ _PyUnicode_INTERNED (s ) = 0 ;
1468714690 }
1468814691#ifdef INTERNED_STATS
1468914692 fprintf (stderr ,
0 commit comments