1490 int
1491 _mysql__fetch_row(
1492 _mysql_ResultObject *self,
1493 PyObject **r,
1494 int skiprows,
1495 int maxrows,
1496 _PYFUNC *convert_row)
1497 {
1498 unsigned int i;
1499 MYSQL_ROW row;
1500
1501 for (i = skiprows; i<(skiprows+maxrows); i++) {
when taking True path
1502 PyObject *v;
1503 if (!self->use)
when considering range: -0x80000000 <= value <= -1
taking False path
1504 row = mysql_fetch_row(self->result);
1505 else {
1506 Py_BEGIN_ALLOW_THREADS;
releasing the GIL by calling PyEval_SaveThread()
1507 row = mysql_fetch_row(self->result);
1508 Py_END_ALLOW_THREADS;
reacquiring the GIL by calling PyEval_RestoreThread()
1509 }
1510 if (!row && mysql_errno(&(((_mysql_ConnectionObject *)(self->conn))->connection))) {
when treating unknown char * * from _mysql.c:1507 as NULL
taking True path
when treating unknown struct PyObject * from _mysql.c:1510 as non-NULL
when considering range: 1 <= value <= 0xffffffff
taking True path
1511 _mysql_Exception((_mysql_ConnectionObject *)self->conn);
when _mysql_Exception() succeeds
new ref from (unknown) _mysql_Exception was allocated at: _mysql_Exception((_mysql_ConnectionObject *)self->conn);
ob_refcnt is now refs: 1 owned
1512 goto error;
1513 }
1514 if (!row) {
1515 if (MyTuple_Resize(r, i, 0) == -1) goto error;
1516 break;
1517 }
1518 v = convert_row(self, row);
1519 if (!v) goto error;
1520 PyTuple_SET_ITEM(*r, i, v);
1521 }
1522 return i-skiprows;
1523 error:
1524 return -1;
memory leak: ob_refcnt of new ref from (unknown) _mysql_Exception is 1 too high
was expecting final owned ob_refcnt of new ref from (unknown) _mysql_Exception to be 0 since nothing references it but final ob_refcnt is refs: 1 owned
found 2 similar trace(s) to this
1525 }