diff options
| author | Serhiy Storchaka <storchaka@gmail.com> | 2017-06-27 21:52:10 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-06-27 21:52:10 +0300 |
| commit | 94b169fe48bc7ea76b926823885d1b12c2c381fa (patch) | |
| tree | 254a685184c3fab7c2f1311986a82b03cc028371 /Modules | |
| parent | eb3c52a0d273491e745e0cbff2b73900bb96aa45 (diff) | |
| download | cpython-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.c | 2 | ||||
| -rw-r--r-- | Modules/_ctypes/cfield.c | 2 | ||||
| -rw-r--r-- | Modules/_cursesmodule.c | 2 | ||||
| -rw-r--r-- | Modules/_localemodule.c | 4 | ||||
| -rw-r--r-- | Modules/_tkinter.c | 2 | ||||
| -rw-r--r-- | Modules/overlapped.c | 2 | ||||
| -rw-r--r-- | Modules/timemodule.c | 2 |
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; |
