PyUnicode_GET_SIZE() checks that PyUnicode_AsUnicode() succeed
using an assertion
diff --git a/Include/unicodeobject.h b/Include/unicodeobject.h
index 6a31e48..e1a5a2f 100644
--- a/Include/unicodeobject.h
+++ b/Include/unicodeobject.h
@@ -385,12 +385,13 @@
    If the Py_UNICODE representation is not available, it will be computed
    on request.  Use PyUnicode_GET_LENGTH() for the length in code points. */
 
-#define PyUnicode_GET_SIZE(op) \
-    (assert(PyUnicode_Check(op)), \
-     (((PyASCIIObject *)(op))->wstr) ? \
-        PyUnicode_WSTR_LENGTH(op) :                   \
-        ((void)PyUnicode_AsUnicode((PyObject *)(op)), \
-         PyUnicode_WSTR_LENGTH(op)))
+#define PyUnicode_GET_SIZE(op)                       \
+    (assert(PyUnicode_Check(op)),                    \
+     (((PyASCIIObject *)(op))->wstr) ?               \
+      PyUnicode_WSTR_LENGTH(op) :                    \
+      ((void)PyUnicode_AsUnicode((PyObject *)(op)),  \
+       assert(((PyASCIIObject *)(op))->wstr),        \
+       PyUnicode_WSTR_LENGTH(op)))
 
 #define PyUnicode_GET_DATA_SIZE(op) \
     (PyUnicode_GET_SIZE(op) * Py_UNICODE_SIZE)