summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorInada Naoki <songofacandy@gmail.com>2020-06-30 03:23:07 (GMT)
committerGitHub <noreply@github.com>2020-06-30 03:23:07 (GMT)
commitb3332660adb02babb7e66e45310c66dc9a9a94da (patch)
tree4eb2b2e3e92d0821ddf20b286e995119d0ce1cb9
parent2515a28230b1a011205f30263da6b01c6bd167a3 (diff)
downloadcpython-b3332660adb02babb7e66e45310c66dc9a9a94da.zip
cpython-b3332660adb02babb7e66e45310c66dc9a9a94da.tar.gz
cpython-b3332660adb02babb7e66e45310c66dc9a9a94da.tar.bz2
bpo-41123: Remove PyUnicode_AsUnicodeCopy (GH-21209)
-rw-r--r--Doc/c-api/unicode.rst14
-rw-r--r--Doc/data/refcounts.dat3
-rw-r--r--Doc/whatsnew/3.10.rst4
-rw-r--r--Include/cpython/unicodeobject.h8
-rw-r--r--Misc/NEWS.d/next/C API/2020-06-29-15-49-36.bpo-41123.wYY4E1.rst1
-rw-r--r--Objects/unicodeobject.c33
6 files changed, 5 insertions, 58 deletions
diff --git a/Doc/c-api/unicode.rst b/Doc/c-api/unicode.rst
index b1787ed..0748a1e 100644
--- a/Doc/c-api/unicode.rst
+++ b/Doc/c-api/unicode.rst
@@ -724,20 +724,6 @@ Extension modules can continue using them, as they will not be removed in Python
.. versionadded:: 3.3
-.. c:function:: Py_UNICODE* PyUnicode_AsUnicodeCopy(PyObject *unicode)
-
- Create a copy of a Unicode string ending with a null code point. Return ``NULL``
- and raise a :exc:`MemoryError` exception on memory allocation failure,
- otherwise return a new allocated buffer (use :c:func:`PyMem_Free` to free
- the buffer). Note that the resulting :c:type:`Py_UNICODE*` string may
- contain embedded null code points, which would cause the string to be
- truncated when used in most C functions.
-
- .. versionadded:: 3.2
-
- Please migrate to using :c:func:`PyUnicode_AsUCS4Copy` or similar new APIs.
-
-
.. c:function:: Py_ssize_t PyUnicode_GetSize(PyObject *unicode)
Return the size of the deprecated :c:type:`Py_UNICODE` representation, in
diff --git a/Doc/data/refcounts.dat b/Doc/data/refcounts.dat
index 4d9aee3..882d7d6 100644
--- a/Doc/data/refcounts.dat
+++ b/Doc/data/refcounts.dat
@@ -2419,9 +2419,6 @@ PyUnicode_AsUnicodeAndSize:Py_UNICODE*:::
PyUnicode_AsUnicodeAndSize:PyObject*:unicode:0:
PyUnicode_AsUnicodeAndSize:Py_ssize_t*:size::
-PyUnicode_AsUnicodeCopy:Py_UNICODE*:::
-PyUnicode_AsUnicodeCopy:PyObject*:unicode:0:
-
PyUnicode_GetSize:Py_ssize_t:::
PyUnicode_GetSize:PyObject*:unicode:0:
diff --git a/Doc/whatsnew/3.10.rst b/Doc/whatsnew/3.10.rst
index a755d26..0674ce8 100644
--- a/Doc/whatsnew/3.10.rst
+++ b/Doc/whatsnew/3.10.rst
@@ -240,3 +240,7 @@ Removed
* Removed ``PyLong_FromUnicode()``. Please migrate to :c:func:`PyLong_FromUnicodeObject`.
(Contributed by Inada Naoki in :issue:`41103`.)
+
+* Removed ``PyUnicode_AsUnicodeCopy()``. Please use :c:func:`PyUnicode_AsUCS4Copy` or
+ :c:func:`PyUnicode_AsWideCharString`
+ (Contributed by Inada Naoki in :issue:`41103`.)
diff --git a/Include/cpython/unicodeobject.h b/Include/cpython/unicodeobject.h
index c1a8564..88a97a4 100644
--- a/Include/cpython/unicodeobject.h
+++ b/Include/cpython/unicodeobject.h
@@ -1162,14 +1162,6 @@ PyAPI_FUNC(int) _PyUnicode_IsAlpha(
PyAPI_FUNC(PyObject*) _PyUnicode_FormatLong(PyObject *, int, int, int);
-/* Create a copy of a unicode string ending with a nul character. Return NULL
- and raise a MemoryError exception on memory allocation failure, otherwise
- return a new allocated buffer (use PyMem_Free() to free the buffer). */
-
-Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE*) PyUnicode_AsUnicodeCopy(
- PyObject *unicode
- );
-
/* Return an interned Unicode object for an Identifier; may fail if there is no memory.*/
PyAPI_FUNC(PyObject*) _PyUnicode_FromId(_Py_Identifier*);
diff --git a/Misc/NEWS.d/next/C API/2020-06-29-15-49-36.bpo-41123.wYY4E1.rst b/Misc/NEWS.d/next/C API/2020-06-29-15-49-36.bpo-41123.wYY4E1.rst
new file mode 100644
index 0000000..74ac454
--- /dev/null
+++ b/Misc/NEWS.d/next/C API/2020-06-29-15-49-36.bpo-41123.wYY4E1.rst
@@ -0,0 +1 @@
+Remove ``PyUnicode_AsUnicodeCopy``.
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index c46ba4a..8eafdacf 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -15862,39 +15862,6 @@ unicode_iter(PyObject *seq)
return (PyObject *)it;
}
-Py_UNICODE*
-PyUnicode_AsUnicodeCopy(PyObject *unicode)
-{
- Py_UNICODE *u, *copy;
- Py_ssize_t len, size;
-
- if (!PyUnicode_Check(unicode)) {
- PyErr_BadArgument();
- return NULL;
- }
-_Py_COMP_DIAG_PUSH
-_Py_COMP_DIAG_IGNORE_DEPR_DECLS
- u = PyUnicode_AsUnicodeAndSize(unicode, &len);
-_Py_COMP_DIAG_POP
- if (u == NULL)
- return NULL;
- /* Ensure we won't overflow the size. */
- if (len > ((PY_SSIZE_T_MAX / (Py_ssize_t)sizeof(Py_UNICODE)) - 1)) {
- PyErr_NoMemory();
- return NULL;
- }
- size = len + 1; /* copy the null character */
- size *= sizeof(Py_UNICODE);
- copy = PyMem_Malloc(size);
- if (copy == NULL) {
- PyErr_NoMemory();
- return NULL;
- }
- memcpy(copy, u, size);
- return copy;
-}
-
-
static int
encode_wstr_utf8(wchar_t *wstr, char **str, const char *name)
{