summaryrefslogtreecommitdiffstats
path: root/Python
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@python.org>2023-11-01 15:34:42 (GMT)
committerGitHub <noreply@github.com>2023-11-01 15:34:42 (GMT)
commitd9b606b3d04fc56fb0bcc479d7d6c14562edb5e2 (patch)
tree14d10605507380e411d5f62e5bab28f74091129d /Python
parent97b3cd38d105fd891ba46dd27d08f03d1c6dd348 (diff)
downloadcpython-d9b606b3d04fc56fb0bcc479d7d6c14562edb5e2.zip
cpython-d9b606b3d04fc56fb0bcc479d7d6c14562edb5e2.tar.gz
cpython-d9b606b3d04fc56fb0bcc479d7d6c14562edb5e2.tar.bz2
gh-111089: Use PyUnicode_AsUTF8() in Argument Clinic (#111585)
Replace PyUnicode_AsUTF8AndSize() with PyUnicode_AsUTF8() to remove the explicit check for embedded null characters. The change avoids to have to include explicitly <string.h> to get the strlen() function when using a recent version of the limited C API.
Diffstat (limited to 'Python')
-rw-r--r--Python/clinic/Python-tokenize.c.h9
-rw-r--r--Python/clinic/bltinmodule.c.h9
-rw-r--r--Python/clinic/sysmodule.c.h9
3 files changed, 6 insertions, 21 deletions
diff --git a/Python/clinic/Python-tokenize.c.h b/Python/clinic/Python-tokenize.c.h
index 730fa8e..7417020 100644
--- a/Python/clinic/Python-tokenize.c.h
+++ b/Python/clinic/Python-tokenize.c.h
@@ -65,19 +65,14 @@ tokenizeriter_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
_PyArg_BadArgument("tokenizeriter", "argument 'encoding'", "str", fastargs[2]);
goto exit;
}
- Py_ssize_t encoding_length;
- encoding = PyUnicode_AsUTF8AndSize(fastargs[2], &encoding_length);
+ encoding = PyUnicode_AsUTF8(fastargs[2]);
if (encoding == NULL) {
goto exit;
}
- if (strlen(encoding) != (size_t)encoding_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
skip_optional_kwonly:
return_value = tokenizeriter_new_impl(type, readline, extra_tokens, encoding);
exit:
return return_value;
}
-/*[clinic end generated code: output=dcd6ec48f06a092e input=a9049054013a1b77]*/
+/*[clinic end generated code: output=92cb8176149f0924 input=a9049054013a1b77]*/
diff --git a/Python/clinic/bltinmodule.c.h b/Python/clinic/bltinmodule.c.h
index 8d40e65..4fb06bd 100644
--- a/Python/clinic/bltinmodule.c.h
+++ b/Python/clinic/bltinmodule.c.h
@@ -329,15 +329,10 @@ builtin_compile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj
_PyArg_BadArgument("compile", "argument 'mode'", "str", args[2]);
goto exit;
}
- Py_ssize_t mode_length;
- mode = PyUnicode_AsUTF8AndSize(args[2], &mode_length);
+ mode = PyUnicode_AsUTF8(args[2]);
if (mode == NULL) {
goto exit;
}
- if (strlen(mode) != (size_t)mode_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
if (!noptargs) {
goto skip_optional_pos;
}
@@ -1212,4 +1207,4 @@ builtin_issubclass(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
exit:
return return_value;
}
-/*[clinic end generated code: output=31bded5d08647a57 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=95d3813b1798f018 input=a9049054013a1b77]*/
diff --git a/Python/clinic/sysmodule.c.h b/Python/clinic/sysmodule.c.h
index 98717ec..571a34b 100644
--- a/Python/clinic/sysmodule.c.h
+++ b/Python/clinic/sysmodule.c.h
@@ -1259,15 +1259,10 @@ sys_activate_stack_trampoline(PyObject *module, PyObject *arg)
_PyArg_BadArgument("activate_stack_trampoline", "argument", "str", arg);
goto exit;
}
- Py_ssize_t backend_length;
- backend = PyUnicode_AsUTF8AndSize(arg, &backend_length);
+ backend = PyUnicode_AsUTF8(arg);
if (backend == NULL) {
goto exit;
}
- if (strlen(backend) != (size_t)backend_length) {
- PyErr_SetString(PyExc_ValueError, "embedded null character");
- goto exit;
- }
return_value = sys_activate_stack_trampoline_impl(module, backend);
exit:
@@ -1452,4 +1447,4 @@ exit:
#ifndef SYS_GETANDROIDAPILEVEL_METHODDEF
#define SYS_GETANDROIDAPILEVEL_METHODDEF
#endif /* !defined(SYS_GETANDROIDAPILEVEL_METHODDEF) */
-/*[clinic end generated code: output=f36d45c829250775 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=cdfb714878deeaf1 input=a9049054013a1b77]*/