719 static PyObject *
720 urj_pyc_peek (urj_pychain_t *self, PyObject *args)
721 {
722 long unsigned adr;
723 uint32_t val;
724 urj_bus_area_t area;
725 urj_chain_t *urc = self->urchain;
726
727 if (!PyArg_ParseTuple (args, "i", &adr))
when PyArg_ParseTuple() succeeds
taking False path
728 return NULL;
729
730 if (!urj_pyc_precheck (urc, UPRC_CBL|UPRC_BUS))
when considering value == (int)0 from chain.c:730
taking True path
731 return NULL;
732
733 URJ_BUS_PREPARE (urj_bus);
734 URJ_BUS_AREA (urj_bus, adr, &area);
735 val = URJ_BUS_READ (urj_bus, adr);
736
737 switch (area.width)
738 {
739 case 8:
740 val &= 0xff;
741 break;
742 case 16:
743 val &= 0xffff;
744 break;
745 default:
746 break;
747 }
748 return Py_BuildValue ("i", val);
749 }
returning (PyObject*)NULL without setting an exception