X-Git-Url: https://sigrok.org/gitweb/?p=libsigrokdecode.git;a=blobdiff_plain;f=util.c;h=442d0a6e1433c47abd035cc0f42839b8df9b4e73;hp=430a7fb5e5c5bff8800ae7fd711425d276cc20bc;hb=3a67b032235e719dc4e74f735d1c95ef2d481a33;hpb=514b2edc54efda9c6698456748c4256bb901eddd diff --git a/util.c b/util.c index 430a7fb..442d0a6 100644 --- a/util.c +++ b/util.c @@ -281,6 +281,8 @@ SRD_PRIV int py_pydictitem_as_str(PyObject *py_obj, PyObject *py_key, goto err; } + PyGILState_Release(gstate); + return py_str_as_str(py_value, outstr); err: @@ -445,6 +447,8 @@ SRD_PRIV int py_strseq_to_char(PyObject *py_strseq, char ***out_strv) } *out_strv = strv; + PyGILState_Release(gstate); + return SRD_OK; err_out: @@ -486,7 +490,6 @@ SRD_PRIV GVariant *py_obj_to_variant(PyObject *py_obj) } if (!var) srd_exception_catch("Failed to extract string value"); - } else if (PyLong_Check(py_obj)) { /* integer */ int64_t val; @@ -495,7 +498,6 @@ SRD_PRIV GVariant *py_obj_to_variant(PyObject *py_obj) var = g_variant_new_int64(val); else srd_exception_catch("Failed to extract integer value"); - } else if (PyFloat_Check(py_obj)) { /* float */ double val; @@ -504,7 +506,6 @@ SRD_PRIV GVariant *py_obj_to_variant(PyObject *py_obj) var = g_variant_new_double(val); else srd_exception_catch("Failed to extract float value"); - } else { srd_err("Failed to extract value of unsupported type."); }