From: Victor Stinner Date: Mon, 3 Oct 2011 23:32:45 +0000 (+0200) Subject: Complete documentation of compact ASCII strings X-Git-Tag: v3.3.0a1~1350 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=30134f53fcc856e0e2bcfe48f51f623779be2608;p=thirdparty%2FPython%2Fcpython.git Complete documentation of compact ASCII strings --- diff --git a/Include/unicodeobject.h b/Include/unicodeobject.h index 3dee11f3441b..a18b3dda5b34 100644 --- a/Include/unicodeobject.h +++ b/Include/unicodeobject.h @@ -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: