X-Git-Url: https://sigrok.org/gitweb/?p=libsigrokdecode.git;a=blobdiff_plain;f=type_decoder.c;h=e69b3c4e0b11e32f870bf35861a2a0368e09c430;hp=dfa3fa9e269bb5d5ae984b74290edee775a6dba6;hb=4e7ccaf9f133106786fd85a432ae23e11d9dcea2;hpb=48518538aef9dc7ceb2c603319a26ff8750f361e diff --git a/type_decoder.c b/type_decoder.c index dfa3fa9..e69b3c4 100644 --- a/type_decoder.c +++ b/type_decoder.c @@ -125,8 +125,7 @@ static void release_binary(struct srd_proto_data_binary *pdb) { if (!pdb) return; - if (pdb->data) - g_free((void *)pdb->data); + g_free((void *)pdb->data); g_free(pdb); } @@ -186,12 +185,12 @@ static int convert_binary(struct srd_decoder_inst *di, PyObject *obj, goto err; } - pdb = g_malloc(sizeof(struct srd_proto_data_binary)); if (PyBytes_AsStringAndSize(py_tmp, &buf, &size) == -1) goto err; PyGILState_Release(gstate); + pdb = g_malloc(sizeof(struct srd_proto_data_binary)); pdb->bin_class = bin_class; pdb->size = size; if (!(pdb->data = g_try_malloc(pdb->size))) { @@ -497,6 +496,8 @@ static int get_term_type(const char *v) return SRD_TERM_EITHER_EDGE; case 'n': return SRD_TERM_NO_EDGE; + default: + return -1; } return -1; @@ -836,7 +837,9 @@ static PyObject *Decoder_wait(PyObject *self, PyObject *args) * while the termination request still gets signalled. */ found_match = FALSE; - ret = process_samples_until_condition_match(di, &found_match); + + /* Ignore return value for now, should never be negative. */ + (void)process_samples_until_condition_match(di, &found_match); Py_END_ALLOW_THREADS