From 36a95ccb0c741cd9fe0c6e3f9e921eb4fc955e36 Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 27 Aug 2026 18:18:47 +0100 Subject: [PATCH] Use m_DeferredInit to guard waiting in python calls that need reflector --- qrenderdoc/Code/pyrenderdoc/PythonContext.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/qrenderdoc/Code/pyrenderdoc/PythonContext.cpp b/qrenderdoc/Code/pyrenderdoc/PythonContext.cpp index 5a109cf46..effe85a1b 100644 --- a/qrenderdoc/Code/pyrenderdoc/PythonContext.cpp +++ b/qrenderdoc/Code/pyrenderdoc/PythonContext.cpp @@ -1767,14 +1767,16 @@ QWidget *PythonContext::QWidgetFromPy(PyObject *widget) void PythonContext::reflectSource(QString src) { - if(!m_Reflector) + if(m_DeferredInit == 0) { for(int i = 0; i < 50 && m_DeferredInit == 0; i++) QThread::msleep(20); - m_DeferredInit = 1; if(!m_Reflector) + { + m_DeferredInit = 1; return; + } } PyGILState_STATE gil = PyGILState_Ensure(); @@ -1799,15 +1801,16 @@ void PythonContext::reflectSource(QString src) void PythonContext::makeHelpContext() { // expand out members of renderdoc and qrenderdoc using the stubs - if(!m_StubRD || !m_StubQRD) + if(m_DeferredInit == 0) { for(int i = 0; i < 50 && m_DeferredInit == 0; i++) QThread::msleep(20); - m_DeferredInit = 1; - if(!m_StubRD || !m_StubQRD) + { + m_DeferredInit = 1; return; + } } PyGILState_STATE gil = PyGILState_Ensure();