Unicode: document when the wstr pointer is shared with data

Add also related assertions to _PyUnicode_CheckConsistency().
This commit is contained in:
Victor Stinner 2011-10-04 00:00:20 +02:00
parent 03490918b7
commit 7f11ad4594
2 changed files with 30 additions and 2 deletions

View file

@ -226,6 +226,9 @@ typedef struct {
* ready = 1
* ascii = 0
* utf8 != data
* wstr is shared with data if kind=PyUnicode_2BYTE_KIND
and sizeof(wchar_t)=2 or if kind=PyUnicode_4BYTE_KIND and
sizeof(wchar_4)=4
- legacy string, not ready:
@ -247,7 +250,10 @@ typedef struct {
* compact = 0
* ready = 1
* data.any is not NULL
* utf8 = data if ascii is 1
* utf8 is shared with data.any if ascii = 1
* wstr is shared with data.any if kind=PyUnicode_2BYTE_KIND
and sizeof(wchar_t)=2 or if kind=PyUnicode_4BYTE_KIND and
sizeof(wchar_4)=4
Compact strings use only one memory block (structure + characters),
whereas legacy strings use one block for the structure and one block