]> sigrok.org Git - libsigrokdecode.git/blobdiff - decoder.c
Check library initialization before handling decoders
[libsigrokdecode.git] / decoder.c
index ef7e15d1bf40c8db63848a2a562bdb9972e5b354..c379d4bdc5150dab53eef390f4d8e0030a680eb5 100644 (file)
--- a/decoder.c
+++ b/decoder.c
@@ -253,6 +253,9 @@ SRD_API int srd_decoder_load(const char *module_name)
        struct srd_probe *p;
        GSList *l;
 
+       if (!srd_check_init())
+               return SRD_ERR;
+
        if (!module_name)
                return SRD_ERR_ARG;
 
@@ -446,6 +449,12 @@ SRD_API char *srd_decoder_doc_get(const struct srd_decoder *dec)
        PyObject *py_str;
        char *doc;
 
+       if (!srd_check_init())
+               return NULL;
+
+       if (!dec)
+               return NULL;
+
        if (!PyObject_HasAttrString(dec->py_mod, "__doc__"))
                return NULL;
 
@@ -495,6 +504,12 @@ SRD_API int srd_decoder_unload(struct srd_decoder *dec)
        struct srd_session *sess;
        GSList *l;
 
+       if (!srd_check_init())
+               return SRD_ERR;
+
+       if (!dec)
+               return SRD_ERR_ARG;
+
        srd_dbg("Unloading protocol decoder '%s'.", dec->name);
 
        /*
@@ -548,6 +563,9 @@ SRD_API int srd_decoder_load_all(void)
        GError *error;
        const gchar *direntry;
 
+       if (!srd_check_init())
+               return SRD_ERR;
+
        if (!(dir = g_dir_open(DECODERS_DIR, 0, &error))) {
                srd_err("Unable to open %s for reading.", DECODERS_DIR);
                return SRD_ERR_DECODERS_DIR;