Added the const qualifier to char* variables that refer to readonly internal

UTF-8 represenatation of Unicode objects.
This commit is contained in:
Serhiy Storchaka 2016-11-20 10:16:47 +02:00
parent a98c4a984b
commit 85b0f5beb1
29 changed files with 60 additions and 61 deletions

View File

@ -1829,7 +1829,7 @@ static PyCArgObject *
PyCSimpleType_paramfunc(CDataObject *self)
{
StgDictObject *dict;
char *fmt;
const char *fmt;
PyCArgObject *parg;
struct fielddesc *fd;
@ -2039,7 +2039,7 @@ static PyObject *
PyCSimpleType_from_param(PyObject *type, PyObject *value)
{
StgDictObject *dict;
char *fmt;
const char *fmt;
PyCArgObject *parg;
struct fielddesc *fd;
PyObject *as_parameter;

View File

@ -488,8 +488,8 @@ PyCStructUnionType_update_stgdict(PyObject *type, PyObject *fields, int isStruct
bitsize = 0;
if (isStruct && !isPacked) {
char *fieldfmt = dict->format ? dict->format : "B";
char *fieldname = PyUnicode_AsUTF8(name);
const char *fieldfmt = dict->format ? dict->format : "B";
const char *fieldname = PyUnicode_AsUTF8(name);
char *ptr;
Py_ssize_t len;
char *buf;

View File

@ -3613,7 +3613,7 @@ _elementtree_XMLParser__setevents_impl(XMLParserObject *self,
for (i = 0; i < PySequence_Size(events_seq); ++i) {
PyObject *event_name_obj = PySequence_Fast_GET_ITEM(events_seq, i);
char *event_name = NULL;
const char *event_name = NULL;
if (PyUnicode_Check(event_name_obj)) {
event_name = PyUnicode_AsUTF8(event_name_obj);
} else if (PyBytes_Check(event_name_obj)) {

View File

@ -305,7 +305,7 @@ _enter_buffered_busy(buffered *self)
"could not acquire lock for %A at interpreter "
"shutdown, possibly due to daemon threads",
(PyObject *) self);
char *msg = PyUnicode_AsUTF8(msgobj);
const char *msg = PyUnicode_AsUTF8(msgobj);
Py_FatalError(msg);
}
return 1;

View File

@ -693,7 +693,7 @@ _io_StringIO___init___impl(stringio *self, PyObject *value,
PyObject *newline_obj)
/*[clinic end generated code: output=a421ea023b22ef4e input=cee2d9181b2577a3]*/
{
char *newline = "\n";
const char *newline = "\n";
Py_ssize_t value_len;
/* Parse the newline argument. We only want to allow unicode objects or

View File

@ -1941,7 +1941,7 @@ save_long(PicklerObject *self, PyObject *obj)
goto error;
}
else {
char *string;
const char *string;
/* proto < 2: write the repr and newline. This is quadratic-time (in
the number of digits), in both directions. We add a trailing 'L'
@ -2218,7 +2218,7 @@ write_unicode_binary(PicklerObject *self, PyObject *obj)
{
PyObject *encoded = NULL;
Py_ssize_t size;
char *data;
const char *data;
int r;
if (PyUnicode_READY(obj))

View File

@ -1489,7 +1489,7 @@ pysqlite_connection_create_collation(pysqlite_Connection* self, PyObject* args)
PyObject* retval;
Py_ssize_t i, len;
_Py_IDENTIFIER(upper);
char *uppercase_name_str;
const char *uppercase_name_str;
int rc;
unsigned int kind;
void *data;

View File

@ -79,12 +79,12 @@ PyObject* pysqlite_row_item(pysqlite_Row* self, Py_ssize_t idx)
PyObject* pysqlite_row_subscript(pysqlite_Row* self, PyObject* idx)
{
Py_ssize_t _idx;
char* key;
const char *key;
Py_ssize_t nitems, i;
char* compare_key;
const char *compare_key;
char* p1;
char* p2;
const char *p1;
const char *p2;
PyObject* item;

View File

@ -112,7 +112,7 @@ int pysqlite_statement_create(pysqlite_Statement* self, pysqlite_Connection* con
int pysqlite_statement_bind_parameter(pysqlite_Statement* self, int pos, PyObject* parameter)
{
int rc = SQLITE_OK;
char* string;
const char *string;
Py_ssize_t buflen;
parameter_type paramtype;

View File

@ -536,7 +536,7 @@ SplitObj(PyObject *arg)
else if (PyUnicode_Check(arg)) {
int argc;
const char **argv;
char *list = PyUnicode_AsUTF8(arg);
const char *list = PyUnicode_AsUTF8(arg);
if (list == NULL ||
Tcl_SplitList((Tcl_Interp *)NULL, list, &argc, &argv) != TCL_OK) {
@ -993,7 +993,7 @@ asBignumObj(PyObject *value)
Tcl_Obj *result;
int neg;
PyObject *hexstr;
char *hexchars;
const char *hexchars;
mp_int bigValue;
neg = Py_SIZE(value) < 0;
@ -1723,7 +1723,7 @@ class varname_converter(CConverter):
static int
varname_converter(PyObject *in, void *_out)
{
char *s;
const char *s;
const char **out = (const char**)_out;
if (PyBytes_Check(in)) {
if (PyBytes_GET_SIZE(in) > INT_MAX) {

View File

@ -5982,7 +5982,7 @@ socket_getaddrinfo(PyObject *self, PyObject *args, PyObject* kwargs)
PyObject *hobj = NULL;
PyObject *pobj = (PyObject *)NULL;
char pbuf[30];
char *hptr, *pptr;
const char *hptr, *pptr;
int family, socktype, protocol, flags;
int error;
PyObject *all = (PyObject *)NULL;

View File

@ -116,7 +116,7 @@ syslog_openlog(PyObject * self, PyObject * args, PyObject *kwds)
long facility = LOG_USER;
PyObject *new_S_ident_o = NULL;
static char *keywords[] = {"ident", "logoption", "facility", 0};
char *ident = NULL;
const char *ident = NULL;
if (!PyArg_ParseTupleAndKeywords(args, kwds,
"|Ull:openlog", keywords, &new_S_ident_o, &logopt, &facility))

View File

@ -367,7 +367,7 @@ stdprinter_write(PyStdPrinter_Object *self, PyObject *args)
{
PyObject *unicode;
PyObject *bytes = NULL;
char *str;
const char *str;
Py_ssize_t n;
int err;
@ -389,10 +389,8 @@ stdprinter_write(PyStdPrinter_Object *self, PyObject *args)
bytes = _PyUnicode_AsUTF8String(unicode, "backslashreplace");
if (bytes == NULL)
return NULL;
if (PyBytes_AsStringAndSize(bytes, &str, &n) < 0) {
Py_DECREF(bytes);
return NULL;
}
str = PyBytes_AS_STRING(bytes);
n = PyBytes_GET_SIZE(bytes);
}
n = _Py_write(self->fd, str, n);

View File

@ -1225,7 +1225,7 @@ float_fromhex(PyObject *cls, PyObject *arg)
PyObject *result;
double x;
long exp, top_exp, lsb, key_digit;
char *s, *coeff_start, *s_store, *coeff_end, *exp_start, *s_end;
const char *s, *coeff_start, *s_store, *coeff_end, *exp_start, *s_end;
int half_eps, digit, round_up, negate=0;
Py_ssize_t length, ndigits, fdigits, i;
@ -1288,7 +1288,7 @@ float_fromhex(PyObject *cls, PyObject *arg)
s++;
/* infinities and nans */
x = _Py_parse_inf_or_nan(s, &coeff_end);
x = _Py_parse_inf_or_nan(s, (char **)&coeff_end);
if (coeff_end != s) {
s = coeff_end;
goto finished;
@ -1619,7 +1619,7 @@ static float_format_type detected_double_format, detected_float_format;
static PyObject *
float_getformat(PyTypeObject *v, PyObject* arg)
{
char* s;
const char *s;
float_format_type r;
if (!PyUnicode_Check(arg)) {

View File

@ -2491,7 +2491,8 @@ PyObject *
PyLong_FromUnicodeObject(PyObject *u, int base)
{
PyObject *result, *asciidig;
char *buffer, *end = NULL;
const char *buffer;
char *end = NULL;
Py_ssize_t buflen;
asciidig = _PyUnicode_TransformDecimalAndSpaceToASCII(u);

View File

@ -231,7 +231,7 @@ PyModule_FromDefAndSpec2(struct PyModuleDef* def, PyObject *spec, int module_api
PyObject *nameobj;
PyObject *m = NULL;
int has_execution_slots = 0;
char *name;
const char *name;
int ret;
PyModuleDef_Init(def);
@ -512,7 +512,7 @@ const char *
PyModule_GetFilename(PyObject *m)
{
PyObject *fileobj;
char *utf8;
const char *utf8;
fileobj = PyModule_GetFilenameObject(m);
if (fileobj == NULL)
return NULL;

View File

@ -2398,7 +2398,7 @@ static PyObject *
test_c_api(PySetObject *so)
{
Py_ssize_t count;
char *s;
const char *s;
Py_ssize_t i;
PyObject *elem=NULL, *dup=NULL, *t, *f, *dup2, *x=NULL;
PyObject *ob = (PyObject *)so;

View File

@ -182,7 +182,7 @@ structseq_repr(PyStructSequence *obj)
for (i=0; i < VISIBLE_SIZE(obj); i++) {
PyObject *val, *repr;
char *cname, *crepr;
const char *cname, *crepr;
cname = typ->tp_members[i].name;
if (cname == NULL) {

View File

@ -1624,7 +1624,7 @@ consistent method resolution\norder (MRO) for bases");
i = 0;
while (PyDict_Next(set, &i, &k, &v) && (size_t)off < sizeof(buf)) {
PyObject *name = class_name(k);
char *name_str;
const char *name_str;
if (name != NULL) {
name_str = PyUnicode_AsUTF8(name);
if (name_str == NULL)
@ -2572,7 +2572,7 @@ type_new(PyTypeObject *metatype, PyObject *args, PyObject *kwds)
PyObject *doc = _PyDict_GetItemId(dict, &PyId___doc__);
if (doc != NULL && PyUnicode_Check(doc)) {
Py_ssize_t len;
char *doc_str;
const char *doc_str;
char *tp_doc;
doc_str = PyUnicode_AsUTF8(doc);

View File

@ -1893,7 +1893,7 @@ builtin_input_impl(PyObject *module, PyObject *prompt)
char *s = NULL;
PyObject *stdin_encoding = NULL, *stdin_errors = NULL;
PyObject *stdout_encoding = NULL, *stdout_errors = NULL;
char *stdin_encoding_str, *stdin_errors_str;
const char *stdin_encoding_str, *stdin_errors_str;
PyObject *result;
size_t len;
@ -1914,7 +1914,7 @@ builtin_input_impl(PyObject *module, PyObject *prompt)
Py_DECREF(tmp);
if (prompt != NULL) {
/* We have a prompt, encode it as stdout would */
char *stdout_encoding_str, *stdout_errors_str;
const char *stdout_encoding_str, *stdout_errors_str;
PyObject *stringpo;
stdout_encoding = _PyObject_GetAttrId(fout, &PyId_encoding);
stdout_errors = _PyObject_GetAttrId(fout, &PyId_errors);

View File

@ -5440,8 +5440,8 @@ _PyEval_RequestCodeExtraIndex(freefunc free)
static void
dtrace_function_entry(PyFrameObject *f)
{
char* filename;
char* funcname;
const char *filename;
const char *funcname;
int lineno;
filename = PyUnicode_AsUTF8(f->f_code->co_filename);
@ -5454,8 +5454,8 @@ dtrace_function_entry(PyFrameObject *f)
static void
dtrace_function_return(PyFrameObject *f)
{
char* filename;
char* funcname;
const char *filename;
const char *funcname;
int lineno;
filename = PyUnicode_AsUTF8(f->f_code->co_filename);
@ -5471,7 +5471,7 @@ maybe_dtrace_line(PyFrameObject *frame,
int *instr_lb, int *instr_ub, int *instr_prev)
{
int line = frame->f_lineno;
char *co_filename, *co_name;
const char *co_filename, *co_name;
/* If the last instruction executed isn't in the current
instruction window, reset the window.

View File

@ -1131,7 +1131,7 @@ PyCodec_SurrogatePassErrors(PyObject *exc)
PyObject *restuple;
PyObject *object;
PyObject *encode;
char *encoding;
const char *encoding;
int code;
int bytelength;
Py_ssize_t i;

View File

@ -4039,7 +4039,7 @@ compiler_visit_keyword(struct compiler *c, keyword_ty k)
static int
expr_constant(struct compiler *c, expr_ty e)
{
char *id;
const char *id;
switch (e->kind) {
case Ellipsis_kind:
return 1;

View File

@ -74,7 +74,7 @@ static const char *converttuple(PyObject *, const char **, va_list *, int,
int *, char *, size_t, int, freelist_t *);
static const char *convertsimple(PyObject *, const char **, va_list *, int,
char *, size_t, freelist_t *);
static Py_ssize_t convertbuffer(PyObject *, void **p, const char **);
static Py_ssize_t convertbuffer(PyObject *, const void **p, const char **);
static int getbuffer(PyObject *, Py_buffer *, const char**);
static int vgetargskeywords(PyObject *, PyObject *,
@ -625,7 +625,7 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags,
const char *format = *p_format;
char c = *format++;
char *sarg;
const char *sarg;
switch (c) {
@ -897,7 +897,7 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags,
}
break;
}
count = convertbuffer(arg, p, &buf);
count = convertbuffer(arg, (const void **)p, &buf);
if (count < 0)
return converterr(buf, arg, msgbuf, bufsize);
if (*format == '#') {
@ -928,7 +928,7 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags,
if (sarg == NULL)
return converterr(CONV_UNICODE,
arg, msgbuf, bufsize);
PyBuffer_FillInfo(p, arg, sarg, len, 1, 0);
PyBuffer_FillInfo(p, arg, (void *)sarg, len, 1, 0);
}
else { /* any bytes-like object */
const char *buf;
@ -943,7 +943,7 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags,
format++;
} else if (*format == '#') { /* a string or read-only bytes-like object */
/* "s#" or "z#" */
void **p = (void **)va_arg(*p_va, char **);
const void **p = (const void **)va_arg(*p_va, const char **);
FETCH_SIZE;
if (c == 'z' && arg == Py_None) {
@ -970,7 +970,7 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags,
format++;
} else {
/* "s" or "z" */
char **p = va_arg(*p_va, char **);
const char **p = va_arg(*p_va, const char **);
Py_ssize_t len;
sarg = NULL;
@ -1300,7 +1300,7 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags,
}
static Py_ssize_t
convertbuffer(PyObject *arg, void **p, const char **errmsg)
convertbuffer(PyObject *arg, const void **p, const char **errmsg)
{
PyBufferProcs *pb = Py_TYPE(arg)->tp_as_buffer;
Py_ssize_t count;

View File

@ -1035,7 +1035,7 @@ _imp_create_builtin(PyObject *module, PyObject *spec)
{
struct _inittab *p;
PyObject *name;
char *namestr;
const char *namestr;
PyObject *mod;
name = PyObject_GetAttrString(spec, "name");

View File

@ -193,7 +193,8 @@ add_flag(int flag, const char *envs)
static char*
get_codec_name(const char *encoding)
{
char *name_utf8, *name_str;
const char *name_utf8;
char *name_str;
PyObject *codec, *name = NULL;
codec = _PyCodec_Lookup(encoding);
@ -1284,8 +1285,7 @@ initstdio(void)
when import.c tries to write to stderr in verbose mode. */
encoding_attr = PyObject_GetAttrString(std, "encoding");
if (encoding_attr != NULL) {
const char * std_encoding;
std_encoding = PyUnicode_AsUTF8(encoding_attr);
const char *std_encoding = PyUnicode_AsUTF8(encoding_attr);
if (std_encoding != NULL) {
PyObject *codec_info = _PyCodec_Lookup(std_encoding);
Py_XDECREF(codec_info);

View File

@ -154,7 +154,7 @@ PyRun_InteractiveOneObject(FILE *fp, PyObject *filename, PyCompilerFlags *flags)
PyObject *m, *d, *v, *w, *oenc = NULL, *mod_name;
mod_ty mod;
PyArena *arena;
char *ps1 = "", *ps2 = "", *enc = NULL;
const char *ps1 = "", *ps2 = "", *enc = NULL;
int errcode = 0;
_Py_IDENTIFIER(encoding);
_Py_IDENTIFIER(__main__);
@ -511,8 +511,8 @@ PyErr_Print(void)
static void
print_error_text(PyObject *f, int offset, PyObject *text_obj)
{
char *text;
char *nl;
const char *text;
const char *nl;
text = PyUnicode_AsUTF8(text_obj);
if (text == NULL)

View File

@ -249,7 +249,7 @@ PyMember_SetOne(char *addr, PyMemberDef *l, PyObject *v)
Py_XDECREF(oldv);
break;
case T_CHAR: {
char *string;
const char *string;
Py_ssize_t len;
string = PyUnicode_AsUTF8AndSize(v, &len);

View File

@ -108,7 +108,7 @@ sys_displayhook_unencodable(PyObject *outf, PyObject *o)
{
PyObject *stdout_encoding = NULL;
PyObject *encoded, *escaped_str, *repr_str, *buffer, *result;
char *stdout_encoding_str;
const char *stdout_encoding_str;
int ret;
stdout_encoding = _PyObject_GetAttrId(outf, &PyId_encoding);
@ -2404,7 +2404,7 @@ sys_format(_Py_Identifier *key, FILE *fp, const char *format, va_list va)
{
PyObject *file, *message;
PyObject *error_type, *error_value, *error_traceback;
char *utf8;
const char *utf8;
PyErr_Fetch(&error_type, &error_value, &error_traceback);
file = _PySys_GetObjectId(key);