diff --git a/modules/dnn/misc/python/pyopencv_dnn.hpp b/modules/dnn/misc/python/pyopencv_dnn.hpp index 69c14240c3802146d3cbf9fd28a2c7a960a5e29a..d729cd8b977938e2bc4caa774bae4421ce3c91ca 100644 --- a/modules/dnn/misc/python/pyopencv_dnn.hpp +++ b/modules/dnn/misc/python/pyopencv_dnn.hpp @@ -160,12 +160,13 @@ public: PyObject* args = pyopencv_from(inputs); PyObject* res = PyObject_CallMethodObjArgs(o, PyString_FromString("forward"), args, NULL); Py_DECREF(args); - PyGILState_Release(gstate); if (!res) CV_Error(Error::StsNotImplemented, "Failed to call \"forward\" method"); std::vector pyOutputs; CV_Assert(pyopencv_to(res, pyOutputs, ArgInfo("", 0))); + Py_DECREF(res); + PyGILState_Release(gstate); CV_Assert(pyOutputs.size() == outputs.size()); for (size_t i = 0; i < outputs.size(); ++i)