Oops, really fix gdb/libpython.py for not ready Unicode strings
authorVictor Stinner <victor.stinner@haypocalc.com>
Fri, 4 Nov 2011 21:34:01 +0000 (22:34 +0100)
committerVictor Stinner <victor.stinner@haypocalc.com>
Fri, 4 Nov 2011 21:34:01 +0000 (22:34 +0100)
Tools/gdb/libpython.py

index 3fea68f8e3902cd25880755f89e2381ac57edd71..1e38c26162f437b8d1f9976b2b9a1223a948f146 100644 (file)
@@ -1130,12 +1130,13 @@ class PyUnicodeObjectPtr(PyObjectPtr):
             ascii = compact['_base']
             state = ascii['state']
             is_compact_ascii = (int(state['ascii']) and int(state['compact']))
-            field_length = long(ascii['length'])
             if not int(state['ready']):
                 # string is not ready
+                field_length = long(compact['wstr_length'])
                 may_have_surrogates = True
                 field_str = ascii['wstr']
             else:
+                field_length = long(ascii['length'])
                 if is_compact_ascii:
                     field_str = ascii.address + 1
                 elif int(state['compact']):