mirror of
https://github.com/python/cpython.git
synced 2025-11-03 11:23:31 +00:00
Fix more ssize_t problems.
This commit is contained in:
parent
8694a6db0e
commit
26fd9607c7
3 changed files with 16 additions and 8 deletions
|
|
@ -831,7 +831,7 @@ decoder_feed_buffer(MultibyteStatefulDecoderContext *ctx,
|
||||||
{
|
{
|
||||||
while (buf->inbuf < buf->inbuf_end) {
|
while (buf->inbuf < buf->inbuf_end) {
|
||||||
Py_ssize_t inleft, outleft;
|
Py_ssize_t inleft, outleft;
|
||||||
int r;
|
Py_ssize_t r;
|
||||||
|
|
||||||
inleft = (Py_ssize_t)(buf->inbuf_end - buf->inbuf);
|
inleft = (Py_ssize_t)(buf->inbuf_end - buf->inbuf);
|
||||||
outleft = (Py_ssize_t)(buf->outbuf_end - buf->outbuf);
|
outleft = (Py_ssize_t)(buf->outbuf_end - buf->outbuf);
|
||||||
|
|
|
||||||
|
|
@ -48,6 +48,12 @@ used for special class methods; variants without leading and trailing\n\
|
||||||
if(-1 == (r=AOP(a1,a2))) return NULL; \
|
if(-1 == (r=AOP(a1,a2))) return NULL; \
|
||||||
return PyInt_FromLong(r); }
|
return PyInt_FromLong(r); }
|
||||||
|
|
||||||
|
#define spamn2(OP,AOP) static PyObject *OP(PyObject *s, PyObject *a) { \
|
||||||
|
PyObject *a1, *a2; Py_ssize_t r; \
|
||||||
|
if(! PyArg_UnpackTuple(a,#OP,2,2,&a1,&a2)) return NULL; \
|
||||||
|
if(-1 == (r=AOP(a1,a2))) return NULL; \
|
||||||
|
return PyInt_FromSsize_t(r); }
|
||||||
|
|
||||||
#define spami2b(OP,AOP) static PyObject *OP(PyObject *s, PyObject *a) { \
|
#define spami2b(OP,AOP) static PyObject *OP(PyObject *s, PyObject *a) { \
|
||||||
PyObject *a1, *a2; long r; \
|
PyObject *a1, *a2; long r; \
|
||||||
if(! PyArg_UnpackTuple(a,#OP,2,2,&a1,&a2)) return NULL; \
|
if(! PyArg_UnpackTuple(a,#OP,2,2,&a1,&a2)) return NULL; \
|
||||||
|
|
@ -99,8 +105,8 @@ spam2(op_iconcat , PySequence_InPlaceConcat)
|
||||||
spamoi(op_irepeat , PySequence_InPlaceRepeat)
|
spamoi(op_irepeat , PySequence_InPlaceRepeat)
|
||||||
spami2b(op_contains , PySequence_Contains)
|
spami2b(op_contains , PySequence_Contains)
|
||||||
spami2b(sequenceIncludes, PySequence_Contains)
|
spami2b(sequenceIncludes, PySequence_Contains)
|
||||||
spami2(indexOf , PySequence_Index)
|
spamn2(indexOf , PySequence_Index)
|
||||||
spami2(countOf , PySequence_Count)
|
spamn2(countOf , PySequence_Count)
|
||||||
spami(isMappingType , PyMapping_Check)
|
spami(isMappingType , PyMapping_Check)
|
||||||
spam2(op_getitem , PyObject_GetItem)
|
spam2(op_getitem , PyObject_GetItem)
|
||||||
spam2n(op_delitem , PyObject_DelItem)
|
spam2n(op_delitem , PyObject_DelItem)
|
||||||
|
|
|
||||||
|
|
@ -2440,7 +2440,7 @@ posix_execve(PyObject *self, PyObject *args)
|
||||||
PyObject *key, *val, *keys=NULL, *vals=NULL;
|
PyObject *key, *val, *keys=NULL, *vals=NULL;
|
||||||
Py_ssize_t i, pos, argc, envc;
|
Py_ssize_t i, pos, argc, envc;
|
||||||
PyObject *(*getitem)(PyObject *, Py_ssize_t);
|
PyObject *(*getitem)(PyObject *, Py_ssize_t);
|
||||||
int lastarg = 0;
|
Py_ssize_t lastarg = 0;
|
||||||
|
|
||||||
/* execve has three arguments: (path, argv, env), where
|
/* execve has three arguments: (path, argv, env), where
|
||||||
argv is a list or tuple of strings and env is a dictionary
|
argv is a list or tuple of strings and env is a dictionary
|
||||||
|
|
@ -2581,7 +2581,8 @@ posix_spawnv(PyObject *self, PyObject *args)
|
||||||
char *path;
|
char *path;
|
||||||
PyObject *argv;
|
PyObject *argv;
|
||||||
char **argvlist;
|
char **argvlist;
|
||||||
int mode, i, argc;
|
int mode, i;
|
||||||
|
Py_ssize_t argc;
|
||||||
Py_intptr_t spawnval;
|
Py_intptr_t spawnval;
|
||||||
PyObject *(*getitem)(PyObject *, Py_ssize_t);
|
PyObject *(*getitem)(PyObject *, Py_ssize_t);
|
||||||
|
|
||||||
|
|
@ -2670,10 +2671,11 @@ posix_spawnve(PyObject *self, PyObject *args)
|
||||||
char **argvlist;
|
char **argvlist;
|
||||||
char **envlist;
|
char **envlist;
|
||||||
PyObject *key, *val, *keys=NULL, *vals=NULL, *res=NULL;
|
PyObject *key, *val, *keys=NULL, *vals=NULL, *res=NULL;
|
||||||
int mode, i, pos, argc, envc;
|
int mode, pos, envc;
|
||||||
|
Py_ssize_t argc, i;
|
||||||
Py_intptr_t spawnval;
|
Py_intptr_t spawnval;
|
||||||
PyObject *(*getitem)(PyObject *, Py_ssize_t);
|
PyObject *(*getitem)(PyObject *, Py_ssize_t);
|
||||||
int lastarg = 0;
|
Py_ssize_t lastarg = 0;
|
||||||
|
|
||||||
/* spawnve has four arguments: (mode, path, argv, env), where
|
/* spawnve has four arguments: (mode, path, argv, env), where
|
||||||
argv is a list or tuple of strings and env is a dictionary
|
argv is a list or tuple of strings and env is a dictionary
|
||||||
|
|
@ -4374,7 +4376,7 @@ _PyPopenCreateProcess(char *cmdstring,
|
||||||
char modulepath[_MAX_PATH];
|
char modulepath[_MAX_PATH];
|
||||||
struct stat statinfo;
|
struct stat statinfo;
|
||||||
GetModuleFileName(NULL, modulepath, sizeof(modulepath));
|
GetModuleFileName(NULL, modulepath, sizeof(modulepath));
|
||||||
for (i = x = 0; modulepath[i]; i++)
|
for (x = i = 0; modulepath[i]; i++)
|
||||||
if (modulepath[i] == SEP)
|
if (modulepath[i] == SEP)
|
||||||
x = i+1;
|
x = i+1;
|
||||||
modulepath[x] = '\0';
|
modulepath[x] = '\0';
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue