File: | _mysql.c |
Function: | _mysql_ResultObject_fetch_row |
Error: | memory leak: ob_refcnt of '*r.68' is 1 too high |
1536 static PyObject *
1537 _mysql_ResultObject_fetch_row(
1538 _mysql_ResultObject *self,
1539 PyObject *args,
1540 PyObject *kwargs)
1541 {
1542 typedef PyObject *_PYFUNC(_mysql_ResultObject *, MYSQL_ROW);
1543 static char *kwlist[] = { "maxrows", "how", NULL };
1544 static _PYFUNC *row_converters[] =
1545 {
1546 _mysql_row_to_tuple,
1547 _mysql_row_to_dict,
1548 _mysql_row_to_dict_old
1549 };
1550 _PYFUNC *convert_row;
1551 unsigned int maxrows=1, how=0, skiprows=0, rowsadded;
1552 PyObject *r=NULL;
1553
1554 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|ii:fetch_row", kwlist,
when PyArg_ParseTupleAndKeywords() succeeds
taking False path
1555 &maxrows, &how))
1556 return NULL;
1557 check_result_connection(self);
when treating unknown struct PyObject * from _mysql.c:1557 as non-NULL
when considering range: -0x80000000 <= value <= -1
taking False path
1558 if (how < 0 || how >= sizeof(row_converters)) {
when considering range: -0x80000000 <= value <= 23
taking False path
1559 PyErr_SetString(PyExc_ValueError, "how out of range");
1560 return NULL;
1561 }
1562 convert_row = row_converters[how];
1563 if (maxrows) {
when considering range: -0x80000000 <= value <= -1
taking True path
1564 if (!(r = PyTuple_New(maxrows))) goto error;
when PyTuple_New() succeeds
taking False path
'*r.68' was allocated at: if (!(r = PyTuple_New(maxrows))) goto error;
ob_refcnt is now refs: 1 owned
1565 rowsadded = _mysql__fetch_row(self, &r, skiprows, maxrows,
1566 convert_row);
1567 if (rowsadded == -1) goto error;
taking False path
1568 } else {
1569 if (self->use) {
1570 maxrows = 1000;
1571 if (!(r = PyTuple_New(maxrows))) goto error;
1572 while (1) {
1573 rowsadded = _mysql__fetch_row(self, &r, skiprows,
1574 maxrows, convert_row);
1575 if (rowsadded == -1) goto error;
1576 skiprows += rowsadded;
1577 if (rowsadded < maxrows) break;
1578 if (MyTuple_Resize(&r, skiprows+maxrows, 0) == -1)
1579 goto error;
1580 }
1581 } else {
1582 /* XXX if overflow, maxrows<0? */
1583 maxrows = (int) mysql_num_rows(self->result);
1584 if (!(r = PyTuple_New(maxrows))) goto error;
1585 rowsadded = _mysql__fetch_row(self, &r, 0,
1586 maxrows, convert_row);
1587 if (rowsadded == -1) goto error;
1588 }
1589 }
1590 return r;
1591 error:
1592 Py_XDECREF(r);
1593 return NULL;
1594 }
File: | _mysql.c |
Function: | _mysql_ResultObject_fetch_row |
Error: | memory leak: ob_refcnt of '*r.72' is 1 too high |
1536 static PyObject *
1537 _mysql_ResultObject_fetch_row(
1538 _mysql_ResultObject *self,
1539 PyObject *args,
1540 PyObject *kwargs)
1541 {
1542 typedef PyObject *_PYFUNC(_mysql_ResultObject *, MYSQL_ROW);
1543 static char *kwlist[] = { "maxrows", "how", NULL };
1544 static _PYFUNC *row_converters[] =
1545 {
1546 _mysql_row_to_tuple,
1547 _mysql_row_to_dict,
1548 _mysql_row_to_dict_old
1549 };
1550 _PYFUNC *convert_row;
1551 unsigned int maxrows=1, how=0, skiprows=0, rowsadded;
1552 PyObject *r=NULL;
1553
1554 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|ii:fetch_row", kwlist,
when PyArg_ParseTupleAndKeywords() succeeds
taking False path
1555 &maxrows, &how))
1556 return NULL;
1557 check_result_connection(self);
when treating unknown struct PyObject * from _mysql.c:1557 as non-NULL
when considering range: -0x80000000 <= value <= -1
taking False path
1558 if (how < 0 || how >= sizeof(row_converters)) {
when considering range: -0x80000000 <= value <= 23
taking False path
1559 PyErr_SetString(PyExc_ValueError, "how out of range");
1560 return NULL;
1561 }
1562 convert_row = row_converters[how];
1563 if (maxrows) {
when considering value == (int)0 from _mysql.c:1554
taking False path
1564 if (!(r = PyTuple_New(maxrows))) goto error;
1565 rowsadded = _mysql__fetch_row(self, &r, skiprows, maxrows,
1566 convert_row);
1567 if (rowsadded == -1) goto error;
1568 } else {
1569 if (self->use) {
when considering range: -0x80000000 <= value <= -1
taking True path
1570 maxrows = 1000;
1571 if (!(r = PyTuple_New(maxrows))) goto error;
when PyTuple_New() succeeds
taking False path
'*r.72' was allocated at: if (!(r = PyTuple_New(maxrows))) goto error;
ob_refcnt is now refs: 1 owned
1572 while (1) {
1573 rowsadded = _mysql__fetch_row(self, &r, skiprows,
1574 maxrows, convert_row);
1575 if (rowsadded == -1) goto error;
taking False path
1576 skiprows += rowsadded;
1577 if (rowsadded < maxrows) break;
when considering range: -0x80000000 <= value <= 999
taking True path
1578 if (MyTuple_Resize(&r, skiprows+maxrows, 0) == -1)
1579 goto error;
1580 }
1581 } else {
1582 /* XXX if overflow, maxrows<0? */
1583 maxrows = (int) mysql_num_rows(self->result);
1584 if (!(r = PyTuple_New(maxrows))) goto error;
1585 rowsadded = _mysql__fetch_row(self, &r, 0,
1586 maxrows, convert_row);
1587 if (rowsadded == -1) goto error;
1588 }
1589 }
1590 return r;
1591 error:
1592 Py_XDECREF(r);
1593 return NULL;
1594 }
File: | _mysql.c |
Function: | _mysql_ResultObject_fetch_row |
Error: | returning (PyObject*)NULL without setting an exception |
1536 static PyObject *
1537 _mysql_ResultObject_fetch_row(
1538 _mysql_ResultObject *self,
1539 PyObject *args,
1540 PyObject *kwargs)
1541 {
1542 typedef PyObject *_PYFUNC(_mysql_ResultObject *, MYSQL_ROW);
1543 static char *kwlist[] = { "maxrows", "how", NULL };
1544 static _PYFUNC *row_converters[] =
1545 {
1546 _mysql_row_to_tuple,
1547 _mysql_row_to_dict,
1548 _mysql_row_to_dict_old
1549 };
1550 _PYFUNC *convert_row;
1551 unsigned int maxrows=1, how=0, skiprows=0, rowsadded;
1552 PyObject *r=NULL;
1553
1554 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|ii:fetch_row", kwlist,
when PyArg_ParseTupleAndKeywords() succeeds
taking False path
1555 &maxrows, &how))
1556 return NULL;
1557 check_result_connection(self);
when treating unknown struct PyObject * from _mysql.c:1557 as non-NULL
when considering range: -0x80000000 <= value <= -1
taking False path
1558 if (how < 0 || how >= sizeof(row_converters)) {
when considering range: -0x80000000 <= value <= 23
taking False path
1559 PyErr_SetString(PyExc_ValueError, "how out of range");
1560 return NULL;
1561 }
1562 convert_row = row_converters[how];
1563 if (maxrows) {
when considering value == (int)0 from _mysql.c:1554
taking False path
1564 if (!(r = PyTuple_New(maxrows))) goto error;
1565 rowsadded = _mysql__fetch_row(self, &r, skiprows, maxrows,
1566 convert_row);
1567 if (rowsadded == -1) goto error;
1568 } else {
1569 if (self->use) {
when considering range: -0x80000000 <= value <= -1
taking True path
1570 maxrows = 1000;
1571 if (!(r = PyTuple_New(maxrows))) goto error;
when PyTuple_New() succeeds
taking False path
1572 while (1) {
1573 rowsadded = _mysql__fetch_row(self, &r, skiprows,
1574 maxrows, convert_row);
1575 if (rowsadded == -1) goto error;
taking False path
1576 skiprows += rowsadded;
1577 if (rowsadded < maxrows) break;
when considering range: 1000 <= value <= 0x7fffffff
taking False path
1578 if (MyTuple_Resize(&r, skiprows+maxrows, 0) == -1)
when considering value == (int)-1 from _mysql.c:1578
taking True path
1579 goto error;
1580 }
1581 } else {
1582 /* XXX if overflow, maxrows<0? */
1583 maxrows = (int) mysql_num_rows(self->result);
1584 if (!(r = PyTuple_New(maxrows))) goto error;
1585 rowsadded = _mysql__fetch_row(self, &r, 0,
1586 maxrows, convert_row);
1587 if (rowsadded == -1) goto error;
1588 }
1589 }
1590 return r;
1591 error:
1592 Py_XDECREF(r);
when treating unknown struct PyObject * * from _mysql.c:1578 as non-NULL
taking False path
when considering range: -0x8000000000000000 <= value <= -1
taking True path
1593 return NULL;
1594 }
File: | _mysql.c |
Function: | _mysql_ResultObject_fetch_row |
Error: | memory leak: ob_refcnt of '*r.74' is 1 too high |
1536 static PyObject *
1537 _mysql_ResultObject_fetch_row(
1538 _mysql_ResultObject *self,
1539 PyObject *args,
1540 PyObject *kwargs)
1541 {
1542 typedef PyObject *_PYFUNC(_mysql_ResultObject *, MYSQL_ROW);
1543 static char *kwlist[] = { "maxrows", "how", NULL };
1544 static _PYFUNC *row_converters[] =
1545 {
1546 _mysql_row_to_tuple,
1547 _mysql_row_to_dict,
1548 _mysql_row_to_dict_old
1549 };
1550 _PYFUNC *convert_row;
1551 unsigned int maxrows=1, how=0, skiprows=0, rowsadded;
1552 PyObject *r=NULL;
1553
1554 if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|ii:fetch_row", kwlist,
when PyArg_ParseTupleAndKeywords() succeeds
taking False path
1555 &maxrows, &how))
1556 return NULL;
1557 check_result_connection(self);
when treating unknown struct PyObject * from _mysql.c:1557 as non-NULL
when considering range: -0x80000000 <= value <= -1
taking False path
1558 if (how < 0 || how >= sizeof(row_converters)) {
when considering range: -0x80000000 <= value <= 23
taking False path
1559 PyErr_SetString(PyExc_ValueError, "how out of range");
1560 return NULL;
1561 }
1562 convert_row = row_converters[how];
1563 if (maxrows) {
when considering value == (int)0 from _mysql.c:1554
taking False path
1564 if (!(r = PyTuple_New(maxrows))) goto error;
1565 rowsadded = _mysql__fetch_row(self, &r, skiprows, maxrows,
1566 convert_row);
1567 if (rowsadded == -1) goto error;
1568 } else {
1569 if (self->use) {
when considering value == (int)0 from _mysql.c:1569
taking False path
1570 maxrows = 1000;
1571 if (!(r = PyTuple_New(maxrows))) goto error;
1572 while (1) {
1573 rowsadded = _mysql__fetch_row(self, &r, skiprows,
1574 maxrows, convert_row);
1575 if (rowsadded == -1) goto error;
1576 skiprows += rowsadded;
1577 if (rowsadded < maxrows) break;
1578 if (MyTuple_Resize(&r, skiprows+maxrows, 0) == -1)
1579 goto error;
1580 }
1581 } else {
1582 /* XXX if overflow, maxrows<0? */
1583 maxrows = (int) mysql_num_rows(self->result);
1584 if (!(r = PyTuple_New(maxrows))) goto error;
when PyTuple_New() succeeds
taking False path
'*r.74' was allocated at: if (!(r = PyTuple_New(maxrows))) goto error;
ob_refcnt is now refs: 1 owned
1585 rowsadded = _mysql__fetch_row(self, &r, 0,
1586 maxrows, convert_row);
1587 if (rowsadded == -1) goto error;
taking False path
1588 }
1589 }
1590 return r;
1591 error:
1592 Py_XDECREF(r);
1593 return NULL;
1594 }