Add _PyUnicode_DATA_ANY(op) private macro
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index 49afa4a..2c48c82 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -131,11 +131,11 @@
 #define _PyUnicode_GET_LENGTH(op)                \
     (assert(PyUnicode_Check(op)),               \
      ((PyASCIIObject *)(op))->length)
+#define _PyUnicode_DATA_ANY(op) (((PyUnicodeObject*)(op))->data.any)
 
 /* The Unicode string has been modified: reset the hash */
 #define _PyUnicode_DIRTY(op) do { _PyUnicode_HASH(op) = -1; } while (0)
 
-
 /* This dictionary holds all interned unicode strings.  Note that references
    to strings in this dictionary are *not* counted in the string's ob_refcnt.
    When the interned string reaches a refcnt of 0 the string deallocation
@@ -441,7 +441,7 @@
     _PyUnicode_STATE(unicode).compact = 0;
     _PyUnicode_STATE(unicode).ready = 0;
     _PyUnicode_STATE(unicode).ascii = 0;
-    unicode->data.any = NULL;
+    _PyUnicode_DATA_ANY(unicode) = NULL;
     _PyUnicode_LENGTH(unicode) = 0;
     _PyUnicode_UTF8(unicode) = NULL;
     _PyUnicode_UTF8_LENGTH(unicode) = 0;
@@ -815,7 +815,7 @@
     assert(!PyUnicode_IS_COMPACT(obj));
     assert(_PyUnicode_KIND(obj) == PyUnicode_WCHAR_KIND);
     assert(_PyUnicode_WSTR(unicode) != NULL);
-    assert(unicode->data.any == NULL);
+    assert(_PyUnicode_DATA_ANY(unicode) == NULL);
     assert(_PyUnicode_UTF8(unicode) == NULL);
     /* Actually, it should neither be interned nor be anything else: */
     assert(_PyUnicode_STATE(unicode).interned == SSTATE_NOT_INTERNED);
@@ -830,8 +830,8 @@
         return -1;
 
     if (maxchar < 256) {
-        unicode->data.any = PyObject_MALLOC(_PyUnicode_WSTR_LENGTH(unicode) + 1);
-        if (!unicode->data.any) {
+        _PyUnicode_DATA_ANY(unicode) = PyObject_MALLOC(_PyUnicode_WSTR_LENGTH(unicode) + 1);
+        if (!_PyUnicode_DATA_ANY(unicode)) {
             PyErr_NoMemory();
             return -1;
         }
@@ -842,7 +842,7 @@
         _PyUnicode_LENGTH(unicode) = _PyUnicode_WSTR_LENGTH(unicode);
         _PyUnicode_STATE(unicode).kind = PyUnicode_1BYTE_KIND;
         if (maxchar < 128) {
-            _PyUnicode_UTF8(unicode) = unicode->data.any;
+            _PyUnicode_UTF8(unicode) = _PyUnicode_DATA_ANY(unicode);
             _PyUnicode_UTF8_LENGTH(unicode) = _PyUnicode_WSTR_LENGTH(unicode);
         }
         else {
@@ -861,7 +861,7 @@
 
 #if SIZEOF_WCHAR_T == 2
         /* We can share representations and are done. */
-        unicode->data.any = _PyUnicode_WSTR(unicode);
+        _PyUnicode_DATA_ANY(unicode) = _PyUnicode_WSTR(unicode);
         PyUnicode_2BYTE_DATA(unicode)[_PyUnicode_WSTR_LENGTH(unicode)] = '\0';
         _PyUnicode_LENGTH(unicode) = _PyUnicode_WSTR_LENGTH(unicode);
         _PyUnicode_STATE(unicode).kind = PyUnicode_2BYTE_KIND;
@@ -869,9 +869,9 @@
         _PyUnicode_UTF8_LENGTH(unicode) = 0;
 #else
         /* sizeof(wchar_t) == 4 */
-        unicode->data.any = PyObject_MALLOC(
+        _PyUnicode_DATA_ANY(unicode) = PyObject_MALLOC(
             2 * (_PyUnicode_WSTR_LENGTH(unicode) + 1));
-        if (!unicode->data.any) {
+        if (!_PyUnicode_DATA_ANY(unicode)) {
             PyErr_NoMemory();
             return -1;
         }
@@ -894,8 +894,8 @@
         /* in case the native representation is 2-bytes, we need to allocate a
            new normalized 4-byte version. */
         length_wo_surrogates = _PyUnicode_WSTR_LENGTH(unicode) - num_surrogates;
-        unicode->data.any = PyObject_MALLOC(4 * (length_wo_surrogates + 1));
-        if (!unicode->data.any) {
+        _PyUnicode_DATA_ANY(unicode) = PyObject_MALLOC(4 * (length_wo_surrogates + 1));
+        if (!_PyUnicode_DATA_ANY(unicode)) {
             PyErr_NoMemory();
             return -1;
         }
@@ -914,7 +914,7 @@
 #else
         assert(num_surrogates == 0);
 
-        unicode->data.any = _PyUnicode_WSTR(unicode);
+        _PyUnicode_DATA_ANY(unicode) = _PyUnicode_WSTR(unicode);
         _PyUnicode_LENGTH(unicode) = _PyUnicode_WSTR_LENGTH(unicode);
         _PyUnicode_UTF8(unicode) = NULL;
         _PyUnicode_UTF8_LENGTH(unicode) = 0;
@@ -961,8 +961,8 @@
         Py_TYPE(unicode)->tp_free((PyObject *)unicode);
     }
     else {
-        if (unicode->data.any)
-            PyObject_DEL(unicode->data.any);
+        if (_PyUnicode_DATA_ANY(unicode))
+            PyObject_DEL(_PyUnicode_DATA_ANY(unicode));
         Py_TYPE(unicode)->tp_free((PyObject *)unicode);
     }
 }
@@ -11657,7 +11657,7 @@
         /* If it is a two-block object, account for base object, and
            for character block if present. */
         size = sizeof(PyUnicodeObject);
-        if (v->data.any)
+        if (_PyUnicode_DATA_ANY(v))
             size += (PyUnicode_GET_LENGTH(v) + 1) *
                 PyUnicode_CHARACTER_SIZE(v);
     }
@@ -12477,7 +12477,7 @@
     _PyUnicode_UTF8_LENGTH(self) = 0;
     _PyUnicode_UTF8(self) = NULL;
     _PyUnicode_WSTR_LENGTH(self) = 0;
-    self->data.any = NULL;
+    _PyUnicode_DATA_ANY(self) = NULL;
 
     share_utf8 = 0;
     share_wstr = 0;
@@ -12509,7 +12509,7 @@
         goto onError;
     }
 
-    self->data.any = data;
+    _PyUnicode_DATA_ANY(self) = data;
     if (share_utf8) {
         _PyUnicode_UTF8_LENGTH(self) = length;
         _PyUnicode_UTF8(self) = data;