diff --git a/qrenderdoc/Code/pyrenderdoc/PythonContext.cpp b/qrenderdoc/Code/pyrenderdoc/PythonContext.cpp index ac1d44c6f..490b55f7c 100644 --- a/qrenderdoc/Code/pyrenderdoc/PythonContext.cpp +++ b/qrenderdoc/Code/pyrenderdoc/PythonContext.cpp @@ -1210,6 +1210,8 @@ QString PythonContext::LoadExtension(ICaptureContext &ctx, const rdcstr &extensi int finalLine = -1; QList frames; + bool reload = false; + if(extensions[extension] == NULL) { qInfo() << "First load of " << QString(extension); @@ -1219,6 +1221,8 @@ QString PythonContext::LoadExtension(ICaptureContext &ctx, const rdcstr &extensi { qInfo() << "Reloading " << QString(extension); + reload = true; + // call unregister() if it exists PyObject *unregister_func = PyObject_SafeGetAttrString(extensions[extension], "unregister"); @@ -1412,6 +1416,9 @@ QString PythonContext::LoadExtension(ICaptureContext &ctx, const rdcstr &extensi } } } + + if(!ret.isEmpty() && reload) + m_ExtensionContext->addText(extension, true, ret); } Py_ssize_t len = PyList_Size(syspath);