770 static PyObject *
771 urj_pyc_flashmem (urj_pychain_t *self, PyObject *args)
772 {
773 urj_chain_t *urc = self->urchain;
774 int msbin;
775 int noverify = 0;
776 long unsigned adr = 0;
777 FILE *f;
778 char *optstr = NULL;
779 char *fname = NULL;
780 int r;
781
782 if (!urj_pyc_precheck (urc, UPRC_CBL|UPRC_BUS))
when considering range: 1 <= value <= 0x7fffffff
taking False path
783 return NULL;
784
785 if (!PyArg_ParseTuple
taking False path
786 (args, "ss|i", &optstr, &fname, &noverify))
when PyArg_ParseTuple() succeeds
787 return NULL;
788
789 msbin = strcasecmp ("msbin", optstr) == 0;
when considering range: 1 <= value <= 0x7fffffff
790 if (!msbin && urj_cmd_get_number (optstr, &adr) != URJ_STATUS_OK)
taking True path
when considering range: -0x80000000 <= value <= -1
taking True path
791 return NULL;
792
793 f = fopen (fname, FOPEN_R);
794 if (!f)
795 {
796 PyErr_SetFromErrnoWithFilename(PyExc_IOError, fname);
797 return NULL;
798 }
799
800 if (msbin)
801 r = urj_flashmsbin (urj_bus, f, noverify);
802 else
803 r = urj_flashmem (urj_bus, f, adr, noverify);
804
805 fclose (f);
806 return Py_BuildValue ("i", r);
807 }
returning (PyObject*)NULL without setting an exception
found 7 similar trace(s) to this