From 11b9f43a17dfafb0447adb3b447556d1acae2cc4 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Fri, 14 Jun 2024 14:34:08 +0200 Subject: [PATCH] Use uint32_t for the format --- Include/unicodeobject.h | 8 ++++---- Modules/_testlimitedcapi/unicode.c | 6 +++--- Objects/unicodeobject.c | 8 ++++---- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Include/unicodeobject.h b/Include/unicodeobject.h index e9ccb480ded2c7..01e76034a54fbc 100644 --- a/Include/unicodeobject.h +++ b/Include/unicodeobject.h @@ -261,15 +261,15 @@ PyAPI_FUNC(PyObject *) PyUnicode_InternFromString( // The export must be released by PyUnicode_ReleaseExport(). PyAPI_FUNC(const void*) PyUnicode_Export( PyObject *unicode, - unsigned int supported_formats, + uint32_t supported_formats, Py_ssize_t *size, - unsigned int *format); + uint32_t *format); // Release an export created by PyUnicode_Export(). PyAPI_FUNC(void) PyUnicode_ReleaseExport( PyObject *unicode, const void* data, - unsigned int format); + uint32_t format); // Create a string object from a string in the format 'format'. // - Return a reference to a new string object on success. @@ -277,7 +277,7 @@ PyAPI_FUNC(void) PyUnicode_ReleaseExport( PyAPI_FUNC(PyObject*) PyUnicode_Import( const void *data, Py_ssize_t size, - unsigned int format); + uint32_t format); /* --- wchar_t support for platforms which support it --------------------- */ diff --git a/Modules/_testlimitedcapi/unicode.c b/Modules/_testlimitedcapi/unicode.c index 306612e726aaab..252714fc82c62e 100644 --- a/Modules/_testlimitedcapi/unicode.c +++ b/Modules/_testlimitedcapi/unicode.c @@ -1849,13 +1849,13 @@ unicode_export(PyObject *self, PyObject *args) } Py_ssize_t size; - unsigned int format; + uint32_t format; const void *data = PyUnicode_Export(obj, supported_formats, &size, &format); if (data == NULL) { return NULL; } - PyObject *res = Py_BuildValue("y#i", data, size, format); + PyObject *res = Py_BuildValue("y#I", data, size, (unsigned int)format); PyUnicode_ReleaseExport(obj, data, format); return res; } @@ -1868,7 +1868,7 @@ unicode_import(PyObject *self, PyObject *args) const void *data; Py_ssize_t size; unsigned int format; - if (!PyArg_ParseTuple(args, "y#i", &data, &size, &format)) { + if (!PyArg_ParseTuple(args, "y#I", &data, &size, &format)) { return NULL; } return PyUnicode_Import(data, size, format); diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index ef7f882d3248c6..522ca31f405964 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -2098,8 +2098,8 @@ _PyUnicode_FromUCS4(const Py_UCS4 *u, Py_ssize_t size) } const void* -PyUnicode_Export(PyObject *unicode, unsigned int supported_formats, - Py_ssize_t *size, unsigned int *format) +PyUnicode_Export(PyObject *unicode, uint32_t supported_formats, + Py_ssize_t *size, uint32_t *format) { if (!PyUnicode_Check(unicode)) { PyErr_Format(PyExc_TypeError, "must be str, not %T", unicode); @@ -2173,7 +2173,7 @@ PyUnicode_Export(PyObject *unicode, unsigned int supported_formats, void PyUnicode_ReleaseExport(PyObject *unicode, const void* data, - unsigned int format) + uint32_t format) { switch (format) { @@ -2198,7 +2198,7 @@ PyUnicode_ReleaseExport(PyObject *unicode, const void* data, PyObject* PyUnicode_Import(const void *data, Py_ssize_t size, - unsigned int format) + uint32_t format) { if (size < 0) { PyErr_SetString(PyExc_ValueError, "Negative size");