]> granicus.if.org Git - python/commitdiff
Complete documentation of compact ASCII strings
authorVictor Stinner <victor.stinner@haypocalc.com>
Mon, 3 Oct 2011 23:32:45 +0000 (01:32 +0200)
committerVictor Stinner <victor.stinner@haypocalc.com>
Mon, 3 Oct 2011 23:32:45 +0000 (01:32 +0200)
Include/unicodeobject.h

index 3dee11f3441b427ad8d915fa2fdca49cec03a8fe..a18b3dda5b346820ae50b1cb911791752718a403 100644 (file)
@@ -215,7 +215,9 @@ typedef struct {
          * compact = 1
          * ascii = 1
          * ready = 1
-         * utf8 = data
+         * (length is the length of the utf8 and wstr strings)
+         * (data starts just after the structure)
+         * (since ASCII is decoded from UTF-8, the utf8 string are the data)
 
        - compact:
 
@@ -225,25 +227,26 @@ typedef struct {
          * compact = 1
          * ready = 1
          * ascii = 0
-         * utf8 != data
+         * utf8 is not shared with data
          * utf8_length = 0 if utf8 is NULL
          * wstr is shared with data and wstr_length=length
            if kind=PyUnicode_2BYTE_KIND and sizeof(wchar_t)=2
            or if kind=PyUnicode_4BYTE_KIND and sizeof(wchar_4)=4
          * wstr_length = 0 if wstr is NULL
+         * (data starts just after the structure)
 
        - legacy string, not ready:
 
          * structure = PyUnicodeObject
          * kind = PyUnicode_WCHAR_KIND
          * compact = 0
+         * ascii = 0
          * ready = 0
          * wstr is not NULL
          * data.any is NULL
          * utf8 is NULL
          * utf8_length = 0
          * interned = SSTATE_NOT_INTERNED
-         * ascii = 0
 
        - legacy string, ready: