Use PyUnicode_AsUnicodeAndSize() instead of PyUnicode_GET_SIZE()
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 30760ed..da0bef0 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -2529,10 +2529,9 @@
             po_wchars = L".";
             len = 1;
         } else {
-            po_wchars = PyUnicode_AsUnicode(po);
+            po_wchars = PyUnicode_AsUnicodeAndSize(po, &len);
             if (po_wchars == NULL)
                 return NULL;
-            len = PyUnicode_GET_SIZE(po);
         }
         /* Overallocate for \\*.*\0 */
         wnamebuf = malloc((len + 5) * sizeof(wchar_t));
diff --git a/Python/getargs.c b/Python/getargs.c
index 2c2db36..f2cc9f4 100644
--- a/Python/getargs.c
+++ b/Python/getargs.c
@@ -982,10 +982,11 @@
                 STORE_SIZE(0);
             }
             else if (PyUnicode_Check(arg)) {
-                *p = PyUnicode_AS_UNICODE(arg);
+                Py_ssize_t len;
+                *p = PyUnicode_AsUnicodeAndSize(arg, &len);
                 if (*p == NULL)
                     RETURN_ERR_OCCURRED;
-                STORE_SIZE(PyUnicode_GET_SIZE(arg));
+                STORE_SIZE(len);
             }
             else
                 return converterr("str or None", arg, msgbuf, bufsize);
@@ -995,10 +996,11 @@
             if (c == 'Z' && arg == Py_None)
                 *p = NULL;
             else if (PyUnicode_Check(arg)) {
-                *p = PyUnicode_AS_UNICODE(arg);
+                Py_ssize_t len;
+                *p = PyUnicode_AsUnicodeAndSize(arg, &len);
                 if (*p == NULL)
                     RETURN_ERR_OCCURRED;
-                if (Py_UNICODE_strlen(*p) != PyUnicode_GET_SIZE(arg))
+                if (Py_UNICODE_strlen(*p) != len)
                     return converterr(
                         "str without null character or None",
                         arg, msgbuf, bufsize);
diff --git a/Python/import.c b/Python/import.c
index 3d6c6ed..6f564a6 100644
--- a/Python/import.c
+++ b/Python/import.c
@@ -2282,6 +2282,8 @@
     WIN32_FIND_DATAW data;
     HANDLE h;
     int cmp;
+    wchar_t *wname;
+    Py_ssizet wname_len;
 
     if (Py_GETENV("PYTHONCASEOK") != NULL)
         return 1;
@@ -2294,9 +2296,12 @@
         return 0;
     }
     FindClose(h);
-    cmp = wcsncmp(data.cFileName,
-                  PyUnicode_AS_UNICODE(name),
-                  PyUnicode_GET_SIZE(name));
+
+    wname = PyUnicode_AsUnicodeAndSize(name, &wname_len);
+    if (wname == NULL)
+        return -1;
+
+    cmp = wcsncmp(data.cFileName, wname, wname_len);
     return cmp == 0;
 #elif defined(USE_CASE_OK_BYTES)
     int match;