summaryrefslogtreecommitdiff
path: root/Modules
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2017-06-27 21:52:10 +0300
committerGitHub <noreply@github.com>2017-06-27 21:52:10 +0300
commit94b169fe48bc7ea76b926823885d1b12c2c381fa (patch)
tree254a685184c3fab7c2f1311986a82b03cc028371 /Modules
parenteb3c52a0d273491e745e0cbff2b73900bb96aa45 (diff)
downloadcpython-git-94b169fe48bc7ea76b926823885d1b12c2c381fa.tar.gz
[3.5] bpo-30708: Add private C API function _PyUnicode_AsWideCharString(). (GH-2285) (GH-2443) (#2448)
And use it instead of PyUnicode_AsWideCharString() if appropriate. _PyUnicode_AsWideCharString(unicode) is like PyUnicode_AsWideCharString(unicode, NULL), but raises a ValueError if the wchar_t* string contains null characters. (cherry picked from commit e613e6add5f07ff6aad5802924596b631b707d2a). (cherry picked from commit 0edffa3073b551ffeca34952529e7b292f1bd350)
Diffstat (limited to 'Modules')
-rw-r--r--Modules/_ctypes/callproc.c2
-rw-r--r--Modules/_ctypes/cfield.c2
-rw-r--r--Modules/_cursesmodule.c2
-rw-r--r--Modules/_localemodule.c4
-rw-r--r--Modules/_tkinter.c2
-rw-r--r--Modules/overlapped.c2
-rw-r--r--Modules/timemodule.c2
7 files changed, 8 insertions, 8 deletions
diff --git a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c
index abd3bc995d..873df8b7bd 100644
--- a/Modules/_ctypes/callproc.c
+++ b/Modules/_ctypes/callproc.c
@@ -672,7 +672,7 @@ static int ConvParam(PyObject *obj, Py_ssize_t index, struct argument *pa)
#ifdef CTYPES_UNICODE
if (PyUnicode_Check(obj)) {
pa->ffi_type = &ffi_type_pointer;
- pa->value.p = PyUnicode_AsWideCharString(obj, NULL);
+ pa->value.p = _PyUnicode_AsWideCharString(obj);
if (pa->value.p == NULL)
return -1;
pa->keep = PyCapsule_New(pa->value.p, CTYPES_CAPSULE_NAME_PYMEM, pymem_destructor);
diff --git a/Modules/_ctypes/cfield.c b/Modules/_ctypes/cfield.c
index d666be5d92..cb5c3ce8ea 100644
--- a/Modules/_ctypes/cfield.c
+++ b/Modules/_ctypes/cfield.c
@@ -1386,7 +1386,7 @@ Z_set(void *ptr, PyObject *value, Py_ssize_t size)
/* We must create a wchar_t* buffer from the unicode object,
and keep it alive */
- buffer = PyUnicode_AsWideCharString(value, NULL);
+ buffer = _PyUnicode_AsWideCharString(value);
if (!buffer)
return NULL;
keep = PyCapsule_New(buffer, CTYPES_CFIELD_CAPSULE_NAME_PYMEM, pymem_destructor);
diff --git a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c
index 896d40d38e..26d27317d0 100644
--- a/Modules/_cursesmodule.c
+++ b/Modules/_cursesmodule.c
@@ -345,7 +345,7 @@ PyCurses_ConvertToString(PyCursesWindowObject *win, PyObject *obj,
if (PyUnicode_Check(obj)) {
#ifdef HAVE_NCURSESW
assert (wstr != NULL);
- *wstr = PyUnicode_AsWideCharString(obj, NULL);
+ *wstr = _PyUnicode_AsWideCharString(obj);
if (*wstr == NULL)
return 0;
return 2;
diff --git a/Modules/_localemodule.c b/Modules/_localemodule.c
index b1307ef26b..4ce71debcf 100644
--- a/Modules/_localemodule.c
+++ b/Modules/_localemodule.c
@@ -215,10 +215,10 @@ PyLocale_strcoll(PyObject* self, PyObject* args)
if (!PyArg_ParseTuple(args, "UU:strcoll", &os1, &os2))
return NULL;
/* Convert the unicode strings to wchar[]. */
- ws1 = PyUnicode_AsWideCharString(os1, NULL);
+ ws1 = _PyUnicode_AsWideCharString(os1);
if (ws1 == NULL)
goto done;
- ws2 = PyUnicode_AsWideCharString(os2, NULL);
+ ws2 = _PyUnicode_AsWideCharString(os2);
if (ws2 == NULL)
goto done;
/* Collate the strings. */
diff --git a/Modules/_tkinter.c b/Modules/_tkinter.c
index 163c87f8b9..34f2d096b2 100644
--- a/Modules/_tkinter.c
+++ b/Modules/_tkinter.c
@@ -3620,7 +3620,7 @@ PyInit__tkinter(void)
return NULL;
}
if (str_path != NULL) {
- wcs_path = PyUnicode_AsWideCharString(str_path, NULL);
+ wcs_path = _PyUnicode_AsWideCharString(str_path);
if (wcs_path == NULL) {
return NULL;
}
diff --git a/Modules/overlapped.c b/Modules/overlapped.c
index f85e5bc736..3b31d11a7b 100644
--- a/Modules/overlapped.c
+++ b/Modules/overlapped.c
@@ -1151,7 +1151,7 @@ ConnectPipe(OverlappedObject *self, PyObject *args)
if (!PyArg_ParseTuple(args, "U", &AddressObj))
return NULL;
- Address = PyUnicode_AsWideCharString(AddressObj, NULL);
+ Address = _PyUnicode_AsWideCharString(AddressObj);
if (Address == NULL)
return NULL;
diff --git a/Modules/timemodule.c b/Modules/timemodule.c
index d2caacdc6d..252fdcfb2c 100644
--- a/Modules/timemodule.c
+++ b/Modules/timemodule.c
@@ -596,7 +596,7 @@ time_strftime(PyObject *self, PyObject *args)
buf.tm_isdst = 1;
#ifdef HAVE_WCSFTIME
- format = PyUnicode_AsWideCharString(format_arg, NULL);
+ format = _PyUnicode_AsWideCharString(format_arg);
if (format == NULL)
return NULL;
fmt = format;