forked from qt-creator/qt-creator
QmlJS: Fix crash
Fixes: QTCREATORBUG-24477 Change-Id: I45ab28fd11d8c9e51fb3b537a677620ecee5985b Reviewed-by: Fawzi Mohamed <fawzi.mohamed@qt.io>
This commit is contained in:
@@ -198,12 +198,15 @@ protected:
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
int argCount = 0;
|
||||
for (const ExpressionListAST *list = ast->expression_list; list && list->value;
|
||||
list = list->next) {
|
||||
++argCount;
|
||||
}
|
||||
|
||||
// must have at least four arguments
|
||||
if (!ast->expression_list
|
||||
|| !ast->expression_list->value || !ast->expression_list->next
|
||||
|| !ast->expression_list->next->value || !ast->expression_list->next->next
|
||||
|| !ast->expression_list->next->next->value || !ast->expression_list->next->next->next
|
||||
|| !ast->expression_list->next->next->next->value)
|
||||
if (argCount < 4)
|
||||
return false;
|
||||
switch (registrationFunction) {
|
||||
case InvalidRegistrationFunction:
|
||||
@@ -215,15 +218,11 @@ protected:
|
||||
case QmlRegisterSingletonTypeCallback2:
|
||||
case QmlRegisterSingletonTypeUrl:
|
||||
case QmlRegisterUncreatableType:
|
||||
if (!ast->expression_list->next->next->next->next
|
||||
|| !ast->expression_list->next->next->next->next->value
|
||||
|| ast->expression_list->next->next->next->next->next)
|
||||
if (argCount != 5)
|
||||
return false;
|
||||
break;
|
||||
case QmlRegisterUncreatableMetaObject:
|
||||
if (!ast->expression_list->next->next->next->next->next
|
||||
|| !ast->expression_list->next->next->next->next->next->value
|
||||
|| ast->expression_list->next->next->next->next->next->next)
|
||||
if (argCount != 6)
|
||||
return false;
|
||||
}
|
||||
ExpressionAST *uriExp = nullptr;
|
||||
|
Reference in New Issue
Block a user