mirror of
https://github.com/python/cpython.git
synced 2025-07-19 01:05:26 +00:00
bpo-39943: Add the const qualifier to pointers on non-mutable PyUnicode data. (GH-19345)
This commit is contained in:
parent
7ec43a7309
commit
cd8295ff75
27 changed files with 250 additions and 221 deletions
|
@ -435,7 +435,7 @@ normalize_module(PyObject *filename)
|
|||
{
|
||||
PyObject *module;
|
||||
int kind;
|
||||
void *data;
|
||||
const void *data;
|
||||
Py_ssize_t len;
|
||||
|
||||
len = PyUnicode_GetLength(filename);
|
||||
|
@ -519,7 +519,7 @@ show_warning(PyObject *filename, int lineno, PyObject *text,
|
|||
/* Print " source_line\n" */
|
||||
if (sourceline) {
|
||||
int kind;
|
||||
void *data;
|
||||
const void *data;
|
||||
Py_ssize_t i, len;
|
||||
Py_UCS4 ch;
|
||||
PyObject *truncated;
|
||||
|
|
|
@ -4588,7 +4588,7 @@ decode_unicode_with_escapes(struct compiling *c, const node *n, const char *s,
|
|||
if (*s & 0x80) { /* XXX inefficient */
|
||||
PyObject *w;
|
||||
int kind;
|
||||
void *data;
|
||||
const void *data;
|
||||
Py_ssize_t len, i;
|
||||
w = decode_utf8(c, &s, end);
|
||||
if (w == NULL) {
|
||||
|
|
|
@ -701,8 +701,7 @@ PyObject *PyCodec_ReplaceErrors(PyObject *exc)
|
|||
|
||||
if (PyObject_TypeCheck(exc, (PyTypeObject *)PyExc_UnicodeEncodeError)) {
|
||||
PyObject *res;
|
||||
int kind;
|
||||
void *data;
|
||||
Py_UCS1 *outp;
|
||||
if (PyUnicodeEncodeError_GetStart(exc, &start))
|
||||
return NULL;
|
||||
if (PyUnicodeEncodeError_GetEnd(exc, &end))
|
||||
|
@ -711,10 +710,10 @@ PyObject *PyCodec_ReplaceErrors(PyObject *exc)
|
|||
res = PyUnicode_New(len, '?');
|
||||
if (res == NULL)
|
||||
return NULL;
|
||||
kind = PyUnicode_KIND(res);
|
||||
data = PyUnicode_DATA(res);
|
||||
assert(PyUnicode_KIND(res) == PyUnicode_1BYTE_KIND);
|
||||
outp = PyUnicode_1BYTE_DATA(res);
|
||||
for (i = 0; i < len; ++i)
|
||||
PyUnicode_WRITE(kind, data, i, '?');
|
||||
outp[i] = '?';
|
||||
assert(_PyUnicode_CheckConsistency(res, 1));
|
||||
return Py_BuildValue("(Nn)", res, end);
|
||||
}
|
||||
|
@ -727,8 +726,7 @@ PyObject *PyCodec_ReplaceErrors(PyObject *exc)
|
|||
}
|
||||
else if (PyObject_TypeCheck(exc, (PyTypeObject *)PyExc_UnicodeTranslateError)) {
|
||||
PyObject *res;
|
||||
int kind;
|
||||
void *data;
|
||||
Py_UCS2 *outp;
|
||||
if (PyUnicodeTranslateError_GetStart(exc, &start))
|
||||
return NULL;
|
||||
if (PyUnicodeTranslateError_GetEnd(exc, &end))
|
||||
|
@ -737,10 +735,10 @@ PyObject *PyCodec_ReplaceErrors(PyObject *exc)
|
|||
res = PyUnicode_New(len, Py_UNICODE_REPLACEMENT_CHARACTER);
|
||||
if (res == NULL)
|
||||
return NULL;
|
||||
kind = PyUnicode_KIND(res);
|
||||
data = PyUnicode_DATA(res);
|
||||
for (i=0; i < len; i++)
|
||||
PyUnicode_WRITE(kind, data, i, Py_UNICODE_REPLACEMENT_CHARACTER);
|
||||
assert(PyUnicode_KIND(res) == PyUnicode_2BYTE_KIND);
|
||||
outp = PyUnicode_2BYTE_DATA(res);
|
||||
for (i = 0; i < len; i++)
|
||||
outp[i] = Py_UNICODE_REPLACEMENT_CHARACTER;
|
||||
assert(_PyUnicode_CheckConsistency(res, 1));
|
||||
return Py_BuildValue("(Nn)", res, end);
|
||||
}
|
||||
|
@ -759,7 +757,7 @@ PyObject *PyCodec_XMLCharRefReplaceErrors(PyObject *exc)
|
|||
Py_ssize_t start;
|
||||
Py_ssize_t end;
|
||||
PyObject *res;
|
||||
unsigned char *outp;
|
||||
Py_UCS1 *outp;
|
||||
Py_ssize_t ressize;
|
||||
Py_UCS4 ch;
|
||||
if (PyUnicodeEncodeError_GetStart(exc, &start))
|
||||
|
@ -855,7 +853,7 @@ PyObject *PyCodec_BackslashReplaceErrors(PyObject *exc)
|
|||
Py_ssize_t start;
|
||||
Py_ssize_t end;
|
||||
PyObject *res;
|
||||
unsigned char *outp;
|
||||
Py_UCS1 *outp;
|
||||
int ressize;
|
||||
Py_UCS4 c;
|
||||
|
||||
|
@ -966,7 +964,7 @@ PyObject *PyCodec_NameReplaceErrors(PyObject *exc)
|
|||
Py_ssize_t start;
|
||||
Py_ssize_t end;
|
||||
PyObject *res;
|
||||
unsigned char *outp;
|
||||
Py_UCS1 *outp;
|
||||
Py_ssize_t ressize;
|
||||
int replsize;
|
||||
Py_UCS4 c;
|
||||
|
|
|
@ -62,7 +62,7 @@ get_integer(PyObject *str, Py_ssize_t *ppos, Py_ssize_t end,
|
|||
Py_ssize_t accumulator, digitval, pos = *ppos;
|
||||
int numdigits;
|
||||
int kind = PyUnicode_KIND(str);
|
||||
void *data = PyUnicode_DATA(str);
|
||||
const void *data = PyUnicode_DATA(str);
|
||||
|
||||
accumulator = numdigits = 0;
|
||||
for (; pos < end; pos++, numdigits++) {
|
||||
|
@ -170,7 +170,7 @@ parse_internal_render_format_spec(PyObject *format_spec,
|
|||
{
|
||||
Py_ssize_t pos = start;
|
||||
int kind = PyUnicode_KIND(format_spec);
|
||||
void *data = PyUnicode_DATA(format_spec);
|
||||
const void *data = PyUnicode_DATA(format_spec);
|
||||
/* end-pos is used throughout this code to specify the length of
|
||||
the input string */
|
||||
#define READ_spec(index) PyUnicode_READ(kind, data, index)
|
||||
|
@ -443,7 +443,7 @@ parse_number(PyObject *s, Py_ssize_t pos, Py_ssize_t end,
|
|||
{
|
||||
Py_ssize_t remainder;
|
||||
int kind = PyUnicode_KIND(s);
|
||||
void *data = PyUnicode_DATA(s);
|
||||
const void *data = PyUnicode_DATA(s);
|
||||
|
||||
while (pos<end && Py_ISDIGIT(PyUnicode_READ(kind, data, pos)))
|
||||
++pos;
|
||||
|
|
|
@ -923,7 +923,7 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags,
|
|||
case 'C': {/* unicode char */
|
||||
int *p = va_arg(*p_va, int *);
|
||||
int kind;
|
||||
void *data;
|
||||
const void *data;
|
||||
|
||||
if (!PyUnicode_Check(arg))
|
||||
return converterr("a unicode character", arg, msgbuf, bufsize);
|
||||
|
|
|
@ -376,7 +376,7 @@ _Py_DisplaySourceLine(PyObject *f, PyObject *filename, int lineno, int indent)
|
|||
int fd;
|
||||
int i;
|
||||
char *found_encoding;
|
||||
char *encoding;
|
||||
const char *encoding;
|
||||
PyObject *io;
|
||||
PyObject *binary;
|
||||
PyObject *fob = NULL;
|
||||
|
@ -384,7 +384,7 @@ _Py_DisplaySourceLine(PyObject *f, PyObject *filename, int lineno, int indent)
|
|||
PyObject *res;
|
||||
char buf[MAXPATHLEN+1];
|
||||
int kind;
|
||||
void *data;
|
||||
const void *data;
|
||||
|
||||
/* open the file */
|
||||
if (filename == NULL)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue