Issue #8914: fix various warnings from the Clang static analyzer v254.
This commit is contained in:
parent
79da6b7075
commit
b94767ff44
|
@ -26,8 +26,6 @@ PyAPI_DATA(int) Py_UnbufferedStdioFlag;
|
|||
PYTHONPATH and PYTHONHOME from the environment */
|
||||
#define Py_GETENV(s) (Py_IgnoreEnvironmentFlag ? NULL : getenv(s))
|
||||
|
||||
PyAPI_FUNC(void) Py_FatalError(const char *message);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -70,7 +70,17 @@ PyAPI_FUNC(PyObject *) PyErr_Occurred(void);
|
|||
PyAPI_FUNC(void) PyErr_Clear(void);
|
||||
PyAPI_FUNC(void) PyErr_Fetch(PyObject **, PyObject **, PyObject **);
|
||||
PyAPI_FUNC(void) PyErr_Restore(PyObject *, PyObject *, PyObject *);
|
||||
PyAPI_FUNC(void) Py_FatalError(const char *message);
|
||||
|
||||
#if defined(__clang__) || \
|
||||
(defined(__GNUC__) && \
|
||||
((__GNUC_MAJOR__ >= 3) || \
|
||||
(__GNUC_MAJOR__ == 2) && (__GNUC_MINOR__ >= 5)))
|
||||
#define _Py_NO_RETURN __attribute__((__noreturn__))
|
||||
#else
|
||||
#define _Py_NO_RETURN
|
||||
#endif
|
||||
|
||||
PyAPI_FUNC(void) Py_FatalError(const char *message) _Py_NO_RETURN;
|
||||
|
||||
#if defined(Py_DEBUG) || defined(Py_LIMITED_API)
|
||||
#define _PyErr_OCCURRED() PyErr_Occurred()
|
||||
|
|
|
@ -52,7 +52,7 @@ PyCField_FromDesc(PyObject *desc, Py_ssize_t index,
|
|||
{
|
||||
CFieldObject *self;
|
||||
PyObject *proto;
|
||||
Py_ssize_t size, align, length;
|
||||
Py_ssize_t size, align;
|
||||
SETFUNC setfunc = NULL;
|
||||
GETFUNC getfunc = NULL;
|
||||
StgDictObject *dict;
|
||||
|
@ -106,7 +106,6 @@ PyCField_FromDesc(PyObject *desc, Py_ssize_t index,
|
|||
}
|
||||
|
||||
size = dict->size;
|
||||
length = dict->length;
|
||||
proto = desc;
|
||||
|
||||
/* Field descriptors for 'c_char * n' are be scpecial cased to
|
||||
|
|
|
@ -1461,7 +1461,7 @@ delta_to_microseconds(PyDateTime_Delta *self)
|
|||
goto Done;
|
||||
Py_DECREF(x1);
|
||||
Py_DECREF(x2);
|
||||
x1 = x2 = NULL;
|
||||
/* x1 = */ x2 = NULL;
|
||||
|
||||
/* x3 has days+seconds in seconds */
|
||||
x1 = PyNumber_Multiply(x3, us_per_second); /* us */
|
||||
|
|
|
@ -938,13 +938,11 @@ static int
|
|||
bytesiobuf_getbuffer(bytesiobuf *obj, Py_buffer *view, int flags)
|
||||
{
|
||||
int ret;
|
||||
void *ptr;
|
||||
bytesio *b = (bytesio *) obj->source;
|
||||
if (view == NULL) {
|
||||
b->exports++;
|
||||
return 0;
|
||||
}
|
||||
ptr = (void *) obj;
|
||||
ret = PyBuffer_FillInfo(view, (PyObject*)obj, b->buf, b->string_size,
|
||||
0, flags);
|
||||
if (ret >= 0) {
|
||||
|
|
|
@ -335,7 +335,7 @@ scanstring_unicode(PyObject *pystr, Py_ssize_t end, int strict, Py_ssize_t *next
|
|||
PyObject *rval = NULL;
|
||||
Py_ssize_t len = PyUnicode_GET_SIZE(pystr);
|
||||
Py_ssize_t begin = end - 1;
|
||||
Py_ssize_t next = begin;
|
||||
Py_ssize_t next /* = begin */;
|
||||
const Py_UNICODE *buf = PyUnicode_AS_UNICODE(pystr);
|
||||
PyObject *chunks = NULL;
|
||||
PyObject *chunk = NULL;
|
||||
|
@ -1532,13 +1532,12 @@ encoder_listencode_dict(PyEncoderObject *s, PyObject *rval, PyObject *dct, Py_ss
|
|||
goto bail;
|
||||
Py_CLEAR(ident);
|
||||
}
|
||||
/* TODO DOES NOT RUN; dead code
|
||||
if (s->indent != Py_None) {
|
||||
/* TODO: DOES NOT RUN */
|
||||
indent_level -= 1;
|
||||
/*
|
||||
yield '\n' + (' ' * (_indent * _current_indent_level))
|
||||
*/
|
||||
}
|
||||
|
||||
yield '\n' + (' ' * (_indent * _current_indent_level))
|
||||
}*/
|
||||
if (PyList_Append(rval, close_dict))
|
||||
goto bail;
|
||||
return 0;
|
||||
|
@ -1624,13 +1623,13 @@ encoder_listencode_list(PyEncoderObject *s, PyObject *rval, PyObject *seq, Py_ss
|
|||
goto bail;
|
||||
Py_CLEAR(ident);
|
||||
}
|
||||
|
||||
/* TODO: DOES NOT RUN
|
||||
if (s->indent != Py_None) {
|
||||
/* TODO: DOES NOT RUN */
|
||||
indent_level -= 1;
|
||||
/*
|
||||
yield '\n' + (' ' * (_indent * _current_indent_level))
|
||||
*/
|
||||
}
|
||||
|
||||
yield '\n' + (' ' * (_indent * _current_indent_level))
|
||||
}*/
|
||||
if (PyList_Append(rval, close_array))
|
||||
goto bail;
|
||||
Py_DECREF(s_fast);
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
#define PY_SSIZE_T_CLEAN
|
||||
|
||||
#ifdef __sun
|
||||
/* The control message API is only available on Solaris
|
||||
/* The control message API is only available on Solaris
|
||||
if XPG 4.2 or later is requested. */
|
||||
#define _XOPEN_SOURCE 500
|
||||
#endif
|
||||
|
|
|
@ -673,7 +673,6 @@ void _pysqlite_final_callback(sqlite3_context* context)
|
|||
{
|
||||
PyObject* function_result = NULL;
|
||||
PyObject** aggregate_instance;
|
||||
PyObject* aggregate_class;
|
||||
|
||||
#ifdef WITH_THREAD
|
||||
PyGILState_STATE threadstate;
|
||||
|
@ -681,8 +680,6 @@ void _pysqlite_final_callback(sqlite3_context* context)
|
|||
threadstate = PyGILState_Ensure();
|
||||
#endif
|
||||
|
||||
aggregate_class = (PyObject*)sqlite3_user_data(context);
|
||||
|
||||
aggregate_instance = (PyObject**)sqlite3_aggregate_context(context, sizeof(PyObject*));
|
||||
if (!*aggregate_instance) {
|
||||
/* this branch is executed if there was an exception in the aggregate's
|
||||
|
|
|
@ -126,11 +126,9 @@ static int pysqlite_cursor_init(pysqlite_Cursor* self, PyObject* args, PyObject*
|
|||
|
||||
static void pysqlite_cursor_dealloc(pysqlite_Cursor* self)
|
||||
{
|
||||
int rc;
|
||||
|
||||
/* Reset the statement if the user has not closed the cursor */
|
||||
if (self->statement) {
|
||||
rc = pysqlite_statement_reset(self->statement);
|
||||
pysqlite_statement_reset(self->statement);
|
||||
Py_DECREF(self->statement);
|
||||
}
|
||||
|
||||
|
@ -529,7 +527,7 @@ PyObject* _pysqlite_query_execute(pysqlite_Cursor* self, int multiple, PyObject*
|
|||
|
||||
if (self->statement != NULL) {
|
||||
/* There is an active statement */
|
||||
rc = pysqlite_statement_reset(self->statement);
|
||||
pysqlite_statement_reset(self->statement);
|
||||
}
|
||||
|
||||
operation_cstr = _PyUnicode_AsStringAndSize(operation, &operation_len);
|
||||
|
@ -734,7 +732,7 @@ PyObject* _pysqlite_query_execute(pysqlite_Cursor* self, int multiple, PyObject*
|
|||
}
|
||||
|
||||
if (multiple) {
|
||||
rc = pysqlite_statement_reset(self->statement);
|
||||
pysqlite_statement_reset(self->statement);
|
||||
}
|
||||
Py_XDECREF(parameters);
|
||||
}
|
||||
|
|
|
@ -369,11 +369,9 @@ void pysqlite_statement_mark_dirty(pysqlite_Statement* self)
|
|||
|
||||
void pysqlite_statement_dealloc(pysqlite_Statement* self)
|
||||
{
|
||||
int rc;
|
||||
|
||||
if (self->st) {
|
||||
Py_BEGIN_ALLOW_THREADS
|
||||
rc = sqlite3_finalize(self->st);
|
||||
sqlite3_finalize(self->st);
|
||||
Py_END_ALLOW_THREADS
|
||||
}
|
||||
|
||||
|
|
|
@ -354,7 +354,6 @@ static PyObject *PySSL_SSLdo_handshake(PySSLSocket *self)
|
|||
|
||||
/* Actually negotiate SSL connection */
|
||||
/* XXX If SSL_do_handshake() returns 0, it's also a failure. */
|
||||
sockstate = 0;
|
||||
do {
|
||||
PySSL_BEGIN_ALLOW_THREADS
|
||||
ret = SSL_do_handshake(self->ssl);
|
||||
|
@ -1090,7 +1089,6 @@ static PyObject *PySSL_SSLwrite(PySSLSocket *self, PyObject *args)
|
|||
goto error;
|
||||
}
|
||||
do {
|
||||
err = 0;
|
||||
PySSL_BEGIN_ALLOW_THREADS
|
||||
len = SSL_write(self->ssl, buf.buf, buf.len);
|
||||
err = SSL_get_error(self->ssl, len);
|
||||
|
@ -1226,7 +1224,6 @@ static PyObject *PySSL_SSLread(PySSLSocket *self, PyObject *args)
|
|||
}
|
||||
}
|
||||
do {
|
||||
err = 0;
|
||||
PySSL_BEGIN_ALLOW_THREADS
|
||||
count = SSL_read(self->ssl, mem, len);
|
||||
err = SSL_get_error(self->ssl, count);
|
||||
|
|
|
@ -53,8 +53,9 @@ acquire_timed(PyThread_type_lock lock, PY_TIMEOUT_T microseconds)
|
|||
_PyTime_timeval curtime;
|
||||
_PyTime_timeval endtime;
|
||||
|
||||
|
||||
_PyTime_gettimeofday(&endtime);
|
||||
if (microseconds > 0) {
|
||||
_PyTime_gettimeofday(&endtime);
|
||||
endtime.tv_sec += microseconds / (1000 * 1000);
|
||||
endtime.tv_usec += microseconds % (1000 * 1000);
|
||||
}
|
||||
|
|
|
@ -2005,7 +2005,7 @@ static int
|
|||
PythonCmd(ClientData clientData, Tcl_Interp *interp, int argc, char *argv[])
|
||||
{
|
||||
PythonCmd_ClientData *data = (PythonCmd_ClientData *)clientData;
|
||||
PyObject *self, *func, *arg, *res;
|
||||
PyObject *func, *arg, *res;
|
||||
int i, rv;
|
||||
Tcl_Obj *obj_res;
|
||||
|
||||
|
@ -2014,7 +2014,6 @@ PythonCmd(ClientData clientData, Tcl_Interp *interp, int argc, char *argv[])
|
|||
/* TBD: no error checking here since we know, via the
|
||||
* Tkapp_CreateCommand() that the client data is a two-tuple
|
||||
*/
|
||||
self = data->self;
|
||||
func = data->func;
|
||||
|
||||
/* Create argument list (argv1, ..., argvN) */
|
||||
|
|
|
@ -876,7 +876,6 @@ array_inplace_repeat(arrayobject *self, Py_ssize_t n)
|
|||
if (Py_SIZE(self) > 0) {
|
||||
if (n < 0)
|
||||
n = 0;
|
||||
items = self->ob_item;
|
||||
if ((self->ob_descr->itemsize != 0) &&
|
||||
(Py_SIZE(self) > PY_SSIZE_T_MAX / self->ob_descr->itemsize)) {
|
||||
return PyErr_NoMemory();
|
||||
|
|
|
@ -513,7 +513,6 @@ audioop_findfit(PyObject *self, PyObject *args)
|
|||
|
||||
best_result = result;
|
||||
best_j = 0;
|
||||
j = 0;
|
||||
|
||||
for ( j=1; j<=len1-len2; j++) {
|
||||
aj_m1 = (double)cp1[j-1];
|
||||
|
@ -599,7 +598,6 @@ audioop_findmax(PyObject *self, PyObject *args)
|
|||
|
||||
best_result = result;
|
||||
best_j = 0;
|
||||
j = 0;
|
||||
|
||||
for ( j=1; j<=len1-len2; j++) {
|
||||
aj_m1 = (double)cp1[j-1];
|
||||
|
@ -1433,7 +1431,6 @@ audioop_lin2adpcm(PyObject *self, PyObject *args)
|
|||
if ( state == Py_None ) {
|
||||
/* First time, it seems. Set defaults */
|
||||
valpred = 0;
|
||||
step = 7;
|
||||
index = 0;
|
||||
} else if ( !PyArg_ParseTuple(state, "ii", &valpred, &index) )
|
||||
return 0;
|
||||
|
@ -1534,7 +1531,6 @@ audioop_adpcm2lin(PyObject *self, PyObject *args)
|
|||
if ( state == Py_None ) {
|
||||
/* First time, it seems. Set defaults */
|
||||
valpred = 0;
|
||||
step = 7;
|
||||
index = 0;
|
||||
} else if ( !PyArg_ParseTuple(state, "ii", &valpred, &index) )
|
||||
return 0;
|
||||
|
|
|
@ -123,7 +123,7 @@ struct iso2022_config {
|
|||
|
||||
CODEC_INIT(iso2022)
|
||||
{
|
||||
const struct iso2022_designation *desig = CONFIG_DESIGNATIONS;
|
||||
const struct iso2022_designation *desig;
|
||||
for (desig = CONFIG_DESIGNATIONS; desig->mark; desig++)
|
||||
if (desig->initializer != NULL && desig->initializer() != 0)
|
||||
return -1;
|
||||
|
|
|
@ -483,6 +483,7 @@ multibytecodec_encode(MultibyteCodec *codec,
|
|||
return PyBytes_FromStringAndSize(NULL, 0);
|
||||
|
||||
buf.excobj = NULL;
|
||||
buf.outobj = NULL;
|
||||
buf.inbuf = buf.inbuf_top = *data;
|
||||
buf.inbuf_end = buf.inbuf_top + datalen;
|
||||
|
||||
|
|
|
@ -577,7 +577,6 @@ Py_Main(int argc, wchar_t **argv)
|
|||
if ((p = Py_GETENV("PYTHONEXECUTABLE")) && *p != '\0') {
|
||||
wchar_t* buffer;
|
||||
size_t len = strlen(p);
|
||||
size_t r;
|
||||
|
||||
buffer = malloc(len * sizeof(wchar_t));
|
||||
if (buffer == NULL) {
|
||||
|
@ -585,7 +584,7 @@ Py_Main(int argc, wchar_t **argv)
|
|||
"not enough memory to copy PYTHONEXECUTABLE");
|
||||
}
|
||||
|
||||
r = mbstowcs(buffer, p, len);
|
||||
mbstowcs(buffer, p, len);
|
||||
Py_SetProgramName(buffer);
|
||||
/* buffer is now handed off - do not free */
|
||||
} else {
|
||||
|
|
|
@ -3407,7 +3407,7 @@ socket_gethostbyaddr(PyObject *self, PyObject *args)
|
|||
goto finally;
|
||||
af = sa->sa_family;
|
||||
ap = NULL;
|
||||
al = 0;
|
||||
/* al = 0; */
|
||||
switch (af) {
|
||||
case AF_INET:
|
||||
ap = (char *)&((struct sockaddr_in *)sa)->sin_addr;
|
||||
|
|
|
@ -2439,7 +2439,7 @@ If the argument is omitted, strip trailing ASCII whitespace.");
|
|||
static PyObject *
|
||||
bytearray_rstrip(PyByteArrayObject *self, PyObject *args)
|
||||
{
|
||||
Py_ssize_t left, right, mysize, argsize;
|
||||
Py_ssize_t right, mysize, argsize;
|
||||
void *myptr, *argptr;
|
||||
PyObject *arg = Py_None;
|
||||
Py_buffer varg;
|
||||
|
@ -2457,11 +2457,10 @@ bytearray_rstrip(PyByteArrayObject *self, PyObject *args)
|
|||
}
|
||||
myptr = self->ob_bytes;
|
||||
mysize = Py_SIZE(self);
|
||||
left = 0;
|
||||
right = rstrip_helper(myptr, mysize, argptr, argsize);
|
||||
if (arg != Py_None)
|
||||
PyBuffer_Release(&varg);
|
||||
return PyByteArray_FromStringAndSize(self->ob_bytes + left, right - left);
|
||||
return PyByteArray_FromStringAndSize(self->ob_bytes, right);
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(decode_doc,
|
||||
|
|
|
@ -297,8 +297,8 @@ Py_UniversalNewlineFgets(char *buf, int n, FILE *stream, PyObject *fobj)
|
|||
*p++ = c;
|
||||
if (c == '\n') break;
|
||||
}
|
||||
if ( c == EOF && skipnextlf )
|
||||
newlinetypes |= NEWLINE_CR;
|
||||
/* if ( c == EOF && skipnextlf )
|
||||
newlinetypes |= NEWLINE_CR; */
|
||||
FUNLOCKFILE(stream);
|
||||
*p = '\0';
|
||||
if ( skipnextlf ) {
|
||||
|
|
|
@ -197,7 +197,6 @@ PyFloat_FromString(PyObject *v)
|
|||
Py_DECREF(s_buffer);
|
||||
return NULL;
|
||||
}
|
||||
last = s + len;
|
||||
}
|
||||
else if (PyObject_AsCharBuffer(v, &s, &len)) {
|
||||
PyErr_SetString(PyExc_TypeError,
|
||||
|
@ -2246,7 +2245,7 @@ _PyFloat_Pack8(double x, unsigned char *p, int le)
|
|||
|
||||
/* Eighth byte */
|
||||
*p = flo & 0xFF;
|
||||
p += incr;
|
||||
/* p += incr; */
|
||||
|
||||
/* Done */
|
||||
return 0;
|
||||
|
|
|
@ -1775,7 +1775,6 @@ _PyObject_DebugMallocStats(void)
|
|||
* will be living in full pools -- would be a shame to miss them.
|
||||
*/
|
||||
for (i = 0; i < maxarenas; ++i) {
|
||||
uint poolsinarena;
|
||||
uint j;
|
||||
uptr base = arenas[i].address;
|
||||
|
||||
|
@ -1784,7 +1783,6 @@ _PyObject_DebugMallocStats(void)
|
|||
continue;
|
||||
narenas += 1;
|
||||
|
||||
poolsinarena = arenas[i].ntotalpools;
|
||||
numfreepools += arenas[i].nfreepools;
|
||||
|
||||
/* round up to pool alignment */
|
||||
|
|
|
@ -86,7 +86,7 @@ PyTuple_New(register Py_ssize_t size)
|
|||
{
|
||||
return PyErr_NoMemory();
|
||||
}
|
||||
nbytes += sizeof(PyTupleObject) - sizeof(PyObject *);
|
||||
/* nbytes += sizeof(PyTupleObject) - sizeof(PyObject *); */
|
||||
|
||||
op = PyObject_GC_NewVar(PyTupleObject, &PyTuple_Type, size);
|
||||
if (op == NULL)
|
||||
|
|
|
@ -902,7 +902,7 @@ subtype_dealloc(PyObject *self)
|
|||
|
||||
/* Find the nearest base with a different tp_dealloc */
|
||||
base = type;
|
||||
while ((basedealloc = base->tp_dealloc) == subtype_dealloc) {
|
||||
while ((/*basedealloc =*/ base->tp_dealloc) == subtype_dealloc) {
|
||||
base = base->tp_base;
|
||||
assert(base);
|
||||
}
|
||||
|
|
|
@ -5418,7 +5418,6 @@ PyUnicode_BuildEncodingMap(PyObject* string)
|
|||
if (!result)
|
||||
return NULL;
|
||||
for (i = 0; i < 256; i++) {
|
||||
key = value = NULL;
|
||||
key = PyLong_FromLong(decode[i]);
|
||||
value = PyLong_FromLong(i);
|
||||
if (!key || !value)
|
||||
|
@ -6935,7 +6934,7 @@ PyObject *replace(PyUnicodeObject *self,
|
|||
}
|
||||
} else {
|
||||
|
||||
Py_ssize_t n, i, j, e;
|
||||
Py_ssize_t n, i, j;
|
||||
Py_ssize_t product, new_size, delta;
|
||||
Py_UNICODE *p;
|
||||
|
||||
|
@ -6967,7 +6966,6 @@ PyObject *replace(PyUnicodeObject *self,
|
|||
return NULL;
|
||||
i = 0;
|
||||
p = u->str;
|
||||
e = self->length - str1->length;
|
||||
if (str1->length > 0) {
|
||||
while (n-- > 0) {
|
||||
/* look for next match */
|
||||
|
|
|
@ -168,13 +168,20 @@ weakref_repr(PyWeakReference *self)
|
|||
PyErr_Clear();
|
||||
else if (PyUnicode_Check(nameobj))
|
||||
name = _PyUnicode_AsString(nameobj);
|
||||
PyOS_snprintf(buffer, sizeof(buffer),
|
||||
name ? "<weakref at %p; to '%.50s' at %p (%s)>"
|
||||
: "<weakref at %p; to '%.50s' at %p>",
|
||||
self,
|
||||
Py_TYPE(PyWeakref_GET_OBJECT(self))->tp_name,
|
||||
PyWeakref_GET_OBJECT(self),
|
||||
name);
|
||||
if (name)
|
||||
PyOS_snprintf(buffer, sizeof(buffer),
|
||||
"<weakref at %p; to '%.50s' at %p (%s)>",
|
||||
self,
|
||||
Py_TYPE(PyWeakref_GET_OBJECT(self))->tp_name,
|
||||
PyWeakref_GET_OBJECT(self),
|
||||
name);
|
||||
else
|
||||
PyOS_snprintf(buffer, sizeof(buffer),
|
||||
"<weakref at %p; to '%.50s' at %p>",
|
||||
self,
|
||||
Py_TYPE(PyWeakref_GET_OBJECT(self))->tp_name,
|
||||
PyWeakref_GET_OBJECT(self));
|
||||
|
||||
Py_XDECREF(nameobj);
|
||||
}
|
||||
return PyUnicode_FromString(buffer);
|
||||
|
|
|
@ -127,7 +127,7 @@ parsetok(struct tok_state *tok, grammar *g, int start, perrdetail *err_ret,
|
|||
{
|
||||
parser_state *ps;
|
||||
node *n;
|
||||
int started = 0, handling_import = 0, handling_with = 0;
|
||||
int started = 0;
|
||||
|
||||
if ((ps = PyParser_New(g, start)) == NULL) {
|
||||
fprintf(stderr, "no mem for new parser\n");
|
||||
|
@ -154,7 +154,6 @@ parsetok(struct tok_state *tok, grammar *g, int start, perrdetail *err_ret,
|
|||
}
|
||||
if (type == ENDMARKER && started) {
|
||||
type = NEWLINE; /* Add an extra newline */
|
||||
handling_with = handling_import = 0;
|
||||
started = 0;
|
||||
/* Add the right number of dedent tokens,
|
||||
except if a certain flag is given --
|
||||
|
|
|
@ -29,6 +29,8 @@ int Py_IgnoreEnvironmentFlag;
|
|||
/* Forward */
|
||||
grammar *getgrammar(char *filename);
|
||||
|
||||
void Py_Exit(int) _Py_NO_RETURN;
|
||||
|
||||
void
|
||||
Py_Exit(int sts)
|
||||
{
|
||||
|
|
|
@ -3231,7 +3231,6 @@ decode_unicode(struct compiling *c, const char *s, size_t len, int rawmode, cons
|
|||
const char *end;
|
||||
|
||||
if (encoding == NULL) {
|
||||
buf = (char *)s;
|
||||
u = NULL;
|
||||
} else {
|
||||
/* check for integer overflow */
|
||||
|
|
|
@ -37,7 +37,7 @@ builtin___build_class__(PyObject *self, PyObject *args, PyObject *kwds)
|
|||
{
|
||||
PyObject *func, *name, *bases, *mkw, *meta, *prep, *ns, *cell;
|
||||
PyObject *cls = NULL;
|
||||
Py_ssize_t nargs, nbases;
|
||||
Py_ssize_t nargs;
|
||||
|
||||
assert(args != NULL);
|
||||
if (!PyTuple_Check(args)) {
|
||||
|
@ -61,7 +61,6 @@ builtin___build_class__(PyObject *self, PyObject *args, PyObject *kwds)
|
|||
bases = PyTuple_GetSlice(args, 2, nargs);
|
||||
if (bases == NULL)
|
||||
return NULL;
|
||||
nbases = nargs - 2;
|
||||
|
||||
if (kwds == NULL) {
|
||||
meta = NULL;
|
||||
|
@ -766,7 +765,6 @@ builtin_exec(PyObject *self, PyObject *args)
|
|||
{
|
||||
PyObject *v;
|
||||
PyObject *prog, *globals = Py_None, *locals = Py_None;
|
||||
int plain = 0;
|
||||
|
||||
if (!PyArg_UnpackTuple(args, "exec", 1, 3, &prog, &globals, &locals))
|
||||
return NULL;
|
||||
|
@ -775,7 +773,6 @@ builtin_exec(PyObject *self, PyObject *args)
|
|||
globals = PyEval_GetGlobals();
|
||||
if (locals == Py_None) {
|
||||
locals = PyEval_GetLocals();
|
||||
plain = 1;
|
||||
}
|
||||
if (!globals || !locals) {
|
||||
PyErr_SetString(PyExc_SystemError,
|
||||
|
|
|
@ -2690,7 +2690,7 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
|
|||
Py_DECREF(*pfunc);
|
||||
*pfunc = self;
|
||||
na++;
|
||||
n++;
|
||||
/* n++; */
|
||||
} else
|
||||
Py_INCREF(func);
|
||||
sp = stack_pointer;
|
||||
|
@ -3026,7 +3026,7 @@ fast_yield:
|
|||
PyTrace_RETURN, retval)) {
|
||||
Py_XDECREF(retval);
|
||||
retval = NULL;
|
||||
why = WHY_EXCEPTION;
|
||||
/* why = WHY_EXCEPTION; */
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2055,7 +2055,7 @@ _Py_dg_strtod(const char *s00, char **se)
|
|||
+ Exp_msk1
|
||||
;
|
||||
word1(&rv) = 0;
|
||||
dsign = 0;
|
||||
/* dsign = 0; */
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -2092,7 +2092,7 @@ _Py_dg_strtod(const char *s00, char **se)
|
|||
goto undfl;
|
||||
}
|
||||
}
|
||||
dsign = 1 - dsign;
|
||||
/* dsign = 1 - dsign; */
|
||||
break;
|
||||
}
|
||||
if ((aadj = ratio(delta, bs)) <= 2.) {
|
||||
|
|
|
@ -966,9 +966,10 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags,
|
|||
case 'u': /* raw unicode buffer (Py_UNICODE *) */
|
||||
case 'Z': /* raw unicode buffer or None */
|
||||
{
|
||||
Py_UNICODE **p = va_arg(*p_va, Py_UNICODE **);
|
||||
|
||||
if (*format == '#') { /* any buffer-like object */
|
||||
/* "s#" or "Z#" */
|
||||
Py_UNICODE **p = va_arg(*p_va, Py_UNICODE **);
|
||||
FETCH_SIZE;
|
||||
|
||||
if (c == 'Z' && arg == Py_None) {
|
||||
|
@ -984,8 +985,6 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags,
|
|||
format++;
|
||||
} else {
|
||||
/* "s" or "Z" */
|
||||
Py_UNICODE **p = va_arg(*p_va, Py_UNICODE **);
|
||||
|
||||
if (c == 'Z' && arg == Py_None)
|
||||
*p = NULL;
|
||||
else if (PyUnicode_Check(arg)) {
|
||||
|
|
|
@ -954,7 +954,7 @@ format_float_short(double d, char format_code,
|
|||
/* shouldn't get here: Gay's code should always return
|
||||
something starting with a digit, an 'I', or 'N' */
|
||||
strncpy(p, "ERR", 3);
|
||||
p += 3;
|
||||
/* p += 3; */
|
||||
assert(0);
|
||||
}
|
||||
goto exit;
|
||||
|
|
|
@ -1176,7 +1176,6 @@ PySys_AddXOption(const wchar_t *s)
|
|||
PyObject *opts;
|
||||
PyObject *name = NULL, *value = NULL;
|
||||
const wchar_t *name_end;
|
||||
int r;
|
||||
|
||||
opts = get_xoptions();
|
||||
if (opts == NULL)
|
||||
|
@ -1194,7 +1193,7 @@ PySys_AddXOption(const wchar_t *s)
|
|||
}
|
||||
if (name == NULL || value == NULL)
|
||||
goto error;
|
||||
r = PyDict_SetItem(opts, name, value);
|
||||
PyDict_SetItem(opts, name, value);
|
||||
Py_DECREF(name);
|
||||
Py_DECREF(value);
|
||||
return;
|
||||
|
|
Loading…
Reference in New Issue