summaryrefslogtreecommitdiff
path: root/decoder.c
diff options
context:
space:
mode:
authorBert Vermeulen <bert@biot.com>2013-11-18 10:44:28 +0100
committerBert Vermeulen <bert@biot.com>2013-11-18 10:44:28 +0100
commitaac68131f8ab9aa6dc1f1392a4f9a131a1c54d36 (patch)
tree1c9a804885af1f8ea94e9239c84dd6fd50324e6e /decoder.c
parent22c9bc2a4e958fccf498f4480965ec03884bc058 (diff)
downloadlibsigrokdecode-aac68131f8ab9aa6dc1f1392a4f9a131a1c54d36.tar.gz
libsigrokdecode-aac68131f8ab9aa6dc1f1392a4f9a131a1c54d36.zip
Don't try to load an already-loaded module
Python silently uses the existing module anyway, but the library was counting it as an extra module. This was exposed by a test case in the test suite.
Diffstat (limited to 'decoder.c')
-rw-r--r--decoder.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/decoder.c b/decoder.c
index f6032f5..e3ffb01 100644
--- a/decoder.c
+++ b/decoder.c
@@ -260,6 +260,11 @@ SRD_API int srd_decoder_load(const char *module_name)
if (!module_name)
return SRD_ERR_ARG;
+ if (PyDict_GetItemString(PyImport_GetModuleDict(), module_name)) {
+ /* Module was already imported. */
+ return SRD_OK;
+ }
+
srd_dbg("Loading protocol decoder '%s'.", module_name);
py_basedec = py_method = py_attr = NULL;