File: cpyrit/_cpyrit_cpu.c
Function: cpyrit_grouper
Error: ob_refcnt of PyStringObject is 1 too high
1692 static PyObject *
1693 cpyrit_grouper(PyObject *self, PyObject *args)
1694 {
1695     PyObject *result;
1696     int i, stringsize, groupsize;
1697     char *string;
1698     
1699     if (!PyArg_ParseTuple(args, "s#i", &string, &stringsize, &groupsize))
when PyArg_ParseTuple() succeeds
taking False path
1700         return NULL;
1701 
1702     if (stringsize % groupsize != 0)
when considering value == (int)0 from cpyrit/_cpyrit_cpu.c:1702
taking False path
1703     {
1704         PyErr_SetString(PyExc_ValueError, "Invalid size of input string.");
1705         return NULL;
1706     }
1707     
1708     result = PyTuple_New(stringsize / groupsize);
when PyTuple_New() succeeds
1709     if (!result)
taking False path
1710     {
1711         PyErr_NoMemory();
1712         return NULL;
1713     }
1714     for (i = 0; i < stringsize / groupsize; i++)
when considering value == (int)1 from cpyrit/_cpyrit_cpu.c:1714
taking True path
taking False path
1715         PyTuple_SetItem(result, i, PyString_FromStringAndSize(&string[i * groupsize], groupsize));
when PyString_FromStringAndSize() succeeds
when considering range: -2 <= value <= 0
when PyTuple_SetItem() fails (index out of range)
PyStringObject allocated at:         PyTuple_SetItem(result, i, PyString_FromStringAndSize(&string[i * groupsize], groupsize));
ob_refcnt is now refs: 1 + N where N >= 0
1716 
1717     return result;
1718 }
ob_refcnt of PyStringObject is 1 too high
was expecting final ob_refcnt to be N + 0 (for some unknown N)
but final ob_refcnt is N + 1