X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=decoder.c;h=dde067ee45eb9520aa3f6c0a846ec8ac885d02da;hb=9e681b1b7f7c1d6d4d56ad476647e21fd6f835c6;hp=6b5fc95f0fadbef2bc0636618121b82516555181;hpb=451680f192b97d652fb02186f5201efa0d668a2a;p=libsigrokdecode.git diff --git a/decoder.c b/decoder.c index 6b5fc95..dde067e 100644 --- a/decoder.c +++ b/decoder.c @@ -193,10 +193,21 @@ err_out: char *srd_decoder_doc(struct srd_decoder *dec) { + PyObject *py_str; char *doc; + if (!PyObject_HasAttrString(dec->py_mod, "__doc__")) + return NULL; + + if (!(py_str = PyObject_GetAttrString(dec->py_mod, "__doc__"))) { + PyErr_Clear(); + return NULL; + } + doc = NULL; - py_attr_as_str(dec->py_mod, "__doc__", &doc); + if (py_str != Py_None) + py_str_as_str(py_str, &doc); + Py_DecRef(py_str); return doc; }