Moved PyGILState_Ensure in srd_decoder_inst to before PyTuple_New is called. Fixes segmentation fault

This commit is contained in:
Electro707 2020-12-08 18:11:14 -05:00
parent 26db5b2cb2
commit 4a73d00967

View File

@ -370,6 +370,8 @@ SRD_API struct srd_decoder_inst *srd_inst_new(struct srd_session *sess,
}
}
gstate = PyGILState_Ensure();
/*
* Prepare a default channel map, where samples come in the
* order in which the decoder class defined them.
@ -389,8 +391,6 @@ SRD_API struct srd_decoder_inst *srd_inst_new(struct srd_session *sess,
/* Default to the initial pins being the same as in sample 0. */
oldpins_array_seed(di);
gstate = PyGILState_Ensure();
/* Create a new instance of this decoder class. */
if (!(di->py_inst = PyObject_CallObject(dec->py_dec, NULL))) {
if (PyErr_Occurred())