Fix v4 crash when accessing invalid attached property
Task-number: QTBUG-21883 Change-Id: Ic14a5d494890fc1bc322c660b97f657d640f2ff8 Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
This commit is contained in:
parent
0c5f918550
commit
1c93b9ce6e
|
@ -311,7 +311,8 @@ void QV4CompilerPrivate::visitName(IR::Name *e)
|
|||
attached.output = currentReg;
|
||||
attached.reg = currentReg;
|
||||
attached.exceptionId = exceptionId(e->line, e->column);
|
||||
Q_ASSERT(e->declarativeType->attachedPropertiesId() != -1);
|
||||
if (e->declarativeType->attachedPropertiesId() == -1)
|
||||
discard();
|
||||
attached.id = e->declarativeType->attachedPropertiesId();
|
||||
gen(attached);
|
||||
} break;
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
import Qt.v4 1.0
|
||||
|
||||
Result {
|
||||
property Result dummy: Result
|
||||
}
|
|
@ -77,6 +77,7 @@ private slots:
|
|||
void qtscript_data();
|
||||
void nestedObjectAccess();
|
||||
void subscriptionsInConditionalExpressions();
|
||||
void qtbug_21883();
|
||||
|
||||
private:
|
||||
QDeclarativeEngine engine;
|
||||
|
@ -239,6 +240,19 @@ void tst_v4::subscriptionsInConditionalExpressions()
|
|||
delete o;
|
||||
}
|
||||
|
||||
// Crash test
|
||||
void tst_v4::qtbug_21883()
|
||||
{
|
||||
QDeclarativeComponent component(&engine, TEST_FILE("qtbug_21883.qml"));
|
||||
|
||||
QString warning = component.url().toString() + ":4: Unable to assign null to ResultObject*";
|
||||
QTest::ignoreMessage(QtWarningMsg, warning.toLatin1().constData());
|
||||
|
||||
QObject *o = component.create();
|
||||
QVERIFY(o != 0);
|
||||
delete o;
|
||||
}
|
||||
|
||||
QTEST_MAIN(tst_v4)
|
||||
|
||||
#include "tst_v4.moc"
|
||||
|
|
Loading…
Reference in New Issue