608 static PyObject *
609 urj_pyc_add_register (urj_pychain_t *self, PyObject *args)
610 {
611 char *regname;
612 int reglen;
613 urj_part_t *part;
614 urj_chain_t *urc = self->urchain;
615
616 if (!PyArg_ParseTuple (args, "si", ®name, ®len))
when PyArg_ParseTuple() succeeds
taking False path
617 return NULL;
618 if (!urj_pyc_precheck (urc, UPRC_CBL|UPRC_DET))
when considering value == (int)0 from chain.c:618
taking True path
619 return NULL;
620
621 part = urj_tap_chain_active_part (urc);
622 if (part == NULL)
623 {
624 if (urj_error_get ())
625 {
626 PyErr_SetString (UrjtagError, urj_error_describe ());
627 urj_error_reset ();
628 }
629 else
630 PyErr_SetString (UrjtagError,
631 _("liburjtag BUG: unknown urjtag error"));
632 return NULL;
633 }
634
635 return urj_py_chkret (urj_part_data_register_define (part, regname, reglen));
636 }
returning (PyObject*)NULL without setting an exception