don't crash in debugger if QScriptEngine is deleted

upstream commits:
0a4e802f18.patch

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
Ivailo Monev 2016-01-12 15:49:16 +02:00
parent e012cdc1a0
commit 020b98780f
2 changed files with 3 additions and 1 deletions

View file

@ -154,6 +154,7 @@ void QScriptDebuggerBackendPrivate::postEvent(QEvent *e)
{ {
if (!eventReceiver) { if (!eventReceiver) {
eventReceiver = new QScriptDebuggerBackendEventReceiver(this); eventReceiver = new QScriptDebuggerBackendEventReceiver(this);
Q_ASSERT(agent != 0);
eventReceiver->moveToThread(agent->engine()->thread()); eventReceiver->moveToThread(agent->engine()->thread());
} }
QCoreApplication::postEvent(eventReceiver, e); QCoreApplication::postEvent(eventReceiver, e);

View file

@ -201,7 +201,8 @@ QScriptEngineDebuggerBackend::~QScriptEngineDebuggerBackend()
void QScriptEngineDebuggerBackend::processCommand(int id, const QScriptDebuggerCommand &command) void QScriptEngineDebuggerBackend::processCommand(int id, const QScriptDebuggerCommand &command)
{ {
Q_D(QScriptEngineDebuggerBackend); Q_D(QScriptEngineDebuggerBackend);
d->postEvent(new QScriptDebuggerCommandEvent(id, command)); if (d->agent)
d->postEvent(new QScriptDebuggerCommandEvent(id, command));
} }
/*! /*!