static PyObject * |
_mysql_ResultObject_fetch_row( |
_mysql_ResultObject *self, |
PyObject *args, |
PyObject *kwargs) |
{ |
typedef PyObject *_PYFUNC(_mysql_ResultObject *, MYSQL_ROW); |
static char *kwlist[] = { "maxrows", "how", NULL }; |
static _PYFUNC *row_converters[] = |
{ |
_mysql_row_to_tuple, |
_mysql_row_to_dict, |
_mysql_row_to_dict_old |
}; |
_PYFUNC *convert_row; |
unsigned int maxrows=1, how=0, skiprows=0, rowsadded; |
PyObject *r=NULL; |
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|ii:fetch_row", kwlist, |
&maxrows, &how)) |
return NULL; |
check_result_connection(self); |
if (how < 0 || how >= sizeof(row_converters)) { |
PyErr_SetString(PyExc_ValueError, "how out of range"); |
return NULL; |
} |
convert_row = row_converters[how]; |
if (maxrows) { |
if (!(r = PyTuple_New(maxrows))) goto error; |
rowsadded = _mysql__fetch_row(self, &r, skiprows, maxrows, |
convert_row); |
if (rowsadded == -1) goto error; |
} else { |
if (self->use) { |
maxrows = 1000; |
if (!(r = PyTuple_New(maxrows))) goto error; |
while (1) { |
rowsadded = _mysql__fetch_row(self, &r, skiprows, |
maxrows, convert_row); |
if (rowsadded == -1) goto error; |
skiprows += rowsadded; |
if (rowsadded < maxrows) break; |
if (MyTuple_Resize(&r, skiprows+maxrows, 0) == -1) |
goto error; |
} |
} else { |
/* XXX if overflow, maxrows<0? */ |
maxrows = (int) mysql_num_rows(self->result); |
if (!(r = PyTuple_New(maxrows))) goto error; |
rowsadded = _mysql__fetch_row(self, &r, 0, |
maxrows, convert_row); |
if (rowsadded == -1) goto error; |
} |
} |
return r; |
error: |
Py_XDECREF(r); |
return NULL; |
} |
was expecting final owned ob_refcnt of '*r.68' to be 0 since nothing references it but final ob_refcnt is refs: 1 owned
found 3 similar trace(s) to this
when PyArg_ParseTupleAndKeywords() succeeds
taking False path
when treating unknown struct PyObject * from _mysql.c:1557 as non-NULL
when considering range: -0x80000000 <= value <= -1
taking False path
when considering range: -0x80000000 <= value <= 23
taking False path
when considering range: -0x80000000 <= value <= -1
taking True path
when PyTuple_New() succeeds
taking False path
'*r.68' was allocated at: if (!(r = PyTuple_New(maxrows))) goto error;
taking False path
static PyObject * |
_mysql_ResultObject_fetch_row( |
_mysql_ResultObject *self, |
PyObject *args, |
PyObject *kwargs) |
{ |
typedef PyObject *_PYFUNC(_mysql_ResultObject *, MYSQL_ROW); |
static char *kwlist[] = { "maxrows", "how", NULL }; |
static _PYFUNC *row_converters[] = |
{ |
_mysql_row_to_tuple, |
_mysql_row_to_dict, |
_mysql_row_to_dict_old |
}; |
_PYFUNC *convert_row; |
unsigned int maxrows=1, how=0, skiprows=0, rowsadded; |
PyObject *r=NULL; |
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|ii:fetch_row", kwlist, |
&maxrows, &how)) |
return NULL; |
check_result_connection(self); |
if (how < 0 || how >= sizeof(row_converters)) { |
PyErr_SetString(PyExc_ValueError, "how out of range"); |
return NULL; |
} |
convert_row = row_converters[how]; |
if (maxrows) { |
if (!(r = PyTuple_New(maxrows))) goto error; |
rowsadded = _mysql__fetch_row(self, &r, skiprows, maxrows, |
convert_row); |
if (rowsadded == -1) goto error; |
} else { |
if (self->use) { |
maxrows = 1000; |
if (!(r = PyTuple_New(maxrows))) goto error; |
while (1) { |
rowsadded = _mysql__fetch_row(self, &r, skiprows, |
maxrows, convert_row); |
if (rowsadded == -1) goto error; |
skiprows += rowsadded; |
if (rowsadded < maxrows) break; |
if (MyTuple_Resize(&r, skiprows+maxrows, 0) == -1) |
goto error; |
} |
} else { |
/* XXX if overflow, maxrows<0? */ |
maxrows = (int) mysql_num_rows(self->result); |
if (!(r = PyTuple_New(maxrows))) goto error; |
rowsadded = _mysql__fetch_row(self, &r, 0, |
maxrows, convert_row); |
if (rowsadded == -1) goto error; |
} |
} |
return r; |
error: |
Py_XDECREF(r); |
return NULL; |
} |
was expecting final owned ob_refcnt of '*r.72' to be 0 since nothing references it but final ob_refcnt is refs: 1 owned
found 19 similar trace(s) to this
when PyArg_ParseTupleAndKeywords() succeeds
taking False path
when treating unknown struct PyObject * from _mysql.c:1557 as non-NULL
when considering range: -0x80000000 <= value <= -1
taking False path
when considering range: -0x80000000 <= value <= 23
taking False path
when considering value == (int)0 from _mysql.c:1554
taking False path
when considering range: -0x80000000 <= value <= -1
taking True path
when PyTuple_New() succeeds
taking False path
'*r.72' was allocated at: if (!(r = PyTuple_New(maxrows))) goto error;
taking False path
when considering range: -0x80000000 <= value <= 999
taking True path
static PyObject * |
_mysql_ResultObject_fetch_row( |
_mysql_ResultObject *self, |
PyObject *args, |
PyObject *kwargs) |
{ |
typedef PyObject *_PYFUNC(_mysql_ResultObject *, MYSQL_ROW); |
static char *kwlist[] = { "maxrows", "how", NULL }; |
static _PYFUNC *row_converters[] = |
{ |
_mysql_row_to_tuple, |
_mysql_row_to_dict, |
_mysql_row_to_dict_old |
}; |
_PYFUNC *convert_row; |
unsigned int maxrows=1, how=0, skiprows=0, rowsadded; |
PyObject *r=NULL; |
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|ii:fetch_row", kwlist, |
&maxrows, &how)) |
return NULL; |
check_result_connection(self); |
if (how < 0 || how >= sizeof(row_converters)) { |
PyErr_SetString(PyExc_ValueError, "how out of range"); |
return NULL; |
} |
convert_row = row_converters[how]; |
if (maxrows) { |
if (!(r = PyTuple_New(maxrows))) goto error; |
rowsadded = _mysql__fetch_row(self, &r, skiprows, maxrows, |
convert_row); |
if (rowsadded == -1) goto error; |
} else { |
if (self->use) { |
maxrows = 1000; |
if (!(r = PyTuple_New(maxrows))) goto error; |
while (1) { |
rowsadded = _mysql__fetch_row(self, &r, skiprows, |
maxrows, convert_row); |
if (rowsadded == -1) goto error; |
skiprows += rowsadded; |
if (rowsadded < maxrows) break; |
if (MyTuple_Resize(&r, skiprows+maxrows, 0) == -1) |
goto error; |
} |
} else { |
/* XXX if overflow, maxrows<0? */ |
maxrows = (int) mysql_num_rows(self->result); |
if (!(r = PyTuple_New(maxrows))) goto error; |
rowsadded = _mysql__fetch_row(self, &r, 0, |
maxrows, convert_row); |
if (rowsadded == -1) goto error; |
} |
} |
return r; |
error: |
Py_XDECREF(r); |
return NULL; |
} |
found 15 similar trace(s) to this
when PyArg_ParseTupleAndKeywords() succeeds
taking False path
when treating unknown struct PyObject * from _mysql.c:1557 as non-NULL
when considering range: -0x80000000 <= value <= -1
taking False path
when considering range: -0x80000000 <= value <= 23
taking False path
when considering value == (int)0 from _mysql.c:1554
taking False path
when considering range: -0x80000000 <= value <= -1
taking True path
when PyTuple_New() succeeds
taking False path
taking False path
when considering range: 1000 <= value <= 0x7fffffff
taking False path
when considering value == (int)-1 from _mysql.c:1578
taking True path
when treating unknown struct PyObject * * from _mysql.c:1578 as non-NULL
taking False path
when considering range: -0x8000000000000000 <= value <= -1
taking True path
static PyObject * |
_mysql_ResultObject_fetch_row( |
_mysql_ResultObject *self, |
PyObject *args, |
PyObject *kwargs) |
{ |
typedef PyObject *_PYFUNC(_mysql_ResultObject *, MYSQL_ROW); |
static char *kwlist[] = { "maxrows", "how", NULL }; |
static _PYFUNC *row_converters[] = |
{ |
_mysql_row_to_tuple, |
_mysql_row_to_dict, |
_mysql_row_to_dict_old |
}; |
_PYFUNC *convert_row; |
unsigned int maxrows=1, how=0, skiprows=0, rowsadded; |
PyObject *r=NULL; |
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|ii:fetch_row", kwlist, |
&maxrows, &how)) |
return NULL; |
check_result_connection(self); |
if (how < 0 || how >= sizeof(row_converters)) { |
PyErr_SetString(PyExc_ValueError, "how out of range"); |
return NULL; |
} |
convert_row = row_converters[how]; |
if (maxrows) { |
if (!(r = PyTuple_New(maxrows))) goto error; |
rowsadded = _mysql__fetch_row(self, &r, skiprows, maxrows, |
convert_row); |
if (rowsadded == -1) goto error; |
} else { |
if (self->use) { |
maxrows = 1000; |
if (!(r = PyTuple_New(maxrows))) goto error; |
while (1) { |
rowsadded = _mysql__fetch_row(self, &r, skiprows, |
maxrows, convert_row); |
if (rowsadded == -1) goto error; |
skiprows += rowsadded; |
if (rowsadded < maxrows) break; |
if (MyTuple_Resize(&r, skiprows+maxrows, 0) == -1) |
goto error; |
} |
} else { |
/* XXX if overflow, maxrows<0? */ |
maxrows = (int) mysql_num_rows(self->result); |
if (!(r = PyTuple_New(maxrows))) goto error; |
rowsadded = _mysql__fetch_row(self, &r, 0, |
maxrows, convert_row); |
if (rowsadded == -1) goto error; |
} |
} |
return r; |
error: |
Py_XDECREF(r); |
return NULL; |
} |
was expecting final owned ob_refcnt of '*r.74' to be 0 since nothing references it but final ob_refcnt is refs: 1 owned
found 1 similar trace(s) to this
when PyArg_ParseTupleAndKeywords() succeeds
taking False path
when treating unknown struct PyObject * from _mysql.c:1557 as non-NULL
when considering range: -0x80000000 <= value <= -1
taking False path
when considering range: -0x80000000 <= value <= 23
taking False path
when considering value == (int)0 from _mysql.c:1554
taking False path
when considering value == (int)0 from _mysql.c:1569
taking False path
when PyTuple_New() succeeds
taking False path
'*r.74' was allocated at: if (!(r = PyTuple_New(maxrows))) goto error;
taking False path