static GSList *pd_list = NULL;
/* srd.c */
-extern GSList *searchpaths;
+extern SRD_PRIV GSList *searchpaths;
/* session.c */
-extern GSList *sessions;
-extern int max_session_id;
+extern SRD_PRIV GSList *sessions;
+extern SRD_PRIV int max_session_id;
/* module_sigrokdecode.c */
extern SRD_PRIV PyObject *mod_sigrokdecode;
}
Py_CLEAR(py_basedec);
+ /*
+ * Check that thіs decoder has the correct PD API version.
+ * PDs of different API versions are incompatible and cannot work.
+ */
+ py_long = PyObject_GetAttrString(d->py_dec, "api_version");
+ if (PyLong_AsLong(py_long) != 2) {
+ srd_err("Only PDs of API version 2 are supported.");
+ goto err_out;
+ }
+ Py_CLEAR(py_long);
+
/* Check for a proper start() method. */
if (!PyObject_HasAttrString(d->py_dec, "start")) {
srd_err("Protocol decoder %s has no start() method Decoder "