File: chain.c
Function: urj_pyc_addpart
Error: returning (PyObject*)NULL without setting an exception
567 static PyObject *
568 urj_pyc_addpart (urj_pychain_t *self, PyObject *args)
569 {
570     urj_chain_t *urc = self->urchain;
571     long unsigned len;
572 
573     if (!PyArg_ParseTuple (args, "i", &len))
when PyArg_ParseTuple() succeeds
taking False path
574         return NULL;
575 
576     if (!urj_pyc_precheck (urc, UPRC_CBL))
when considering value == (int)0 from chain.c:576
taking True path
577         return NULL;
578 
579     if (urj_tap_manual_add (urc, len) < 0)
580     {
581             PyErr_SetString (PyExc_RuntimeError,
582                              _("urj_tap_manual_add failed"));
583             return NULL;
584     }
585 
586     if (urc->parts == NULL)
587     {
588         PyErr_SetString (PyExc_RuntimeError,
589                          _("addpart: internal error; no parts."));
590         return NULL;
591     }
592 
593     // @@@@ RFHH this cannot be
594     if (urc->parts->len == 0)
595     {
596         urj_part_parts_free (urc->parts);
597         self->urchain->parts = NULL;
598         PyErr_SetString (PyExc_RuntimeError,
599                          _("addpart: internal error; parts->len==0."));
600         return NULL;
601     }
602 
603     urj_part_parts_set_instruction (urc->parts, "BYPASS");
604     urj_tap_chain_shift_instructions (urc);
605     return Py_BuildValue ("");
606 }
returning (PyObject*)NULL without setting an exception