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));
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);
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);
WIN32_FIND_DATAW data;
HANDLE h;
int cmp;
+ wchar_t *wname;
+ Py_ssizet wname_len;
if (Py_GETENV("PYTHONCASEOK") != NULL)
return 1;
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;