diff options
author | Maximilian Goldstein <max.goldstein@qt.io> | 2020-01-08 13:51:59 +0100 |
---|---|---|
committer | Maximilian Goldstein <max.goldstein@qt.io> | 2020-01-09 09:16:42 +0100 |
commit | 3e92cd7391855ff7189a3802db1e9fcc5e96ed13 (patch) | |
tree | dd9f70ee49a3a80e2c3df2f71a6f5c90df1689c9 /tools/qmlformat | |
parent | 653c25d48298fb747cf6f3b012816855c51d4260 (diff) |
qmlformat/dumpastvisitor: Fix a few segfaults
Change-Id: Ic8e95944cf36000a004d010293a532101433c3af
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Diffstat (limited to 'tools/qmlformat')
-rw-r--r-- | tools/qmlformat/dumpastvisitor.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/tools/qmlformat/dumpastvisitor.cpp b/tools/qmlformat/dumpastvisitor.cpp index 1ab09e463b..716be0a9a7 100644 --- a/tools/qmlformat/dumpastvisitor.cpp +++ b/tools/qmlformat/dumpastvisitor.cpp @@ -436,7 +436,7 @@ QString DumpAstVisitor::parseExportsList(ExportsList *list) QString DumpAstVisitor::parseBlock(Block *block, bool hasNext, bool allowBraceless) { - bool hasOneLine = block->statements->next == nullptr && allowBraceless; + bool hasOneLine = (block->statements == nullptr || block->statements->next == nullptr) && allowBraceless; QString result = hasOneLine ? "\n" : "{\n"; m_indentLevel++; @@ -449,7 +449,7 @@ QString DumpAstVisitor::parseBlock(Block *block, bool hasNext, bool allowBracele if (!hasNext && !hasOneLine) result += formatLine("}", false); - m_blockNeededBraces |= (block->statements->next != nullptr); + m_blockNeededBraces |= (block->statements && block->statements->next != nullptr); return result; } @@ -554,7 +554,12 @@ QString DumpAstVisitor::parseStatement(Statement *statement, bool blockHasNext, QString result = "for ("; - result += parsePatternElement(cast<PatternElement *>(forEachStatement->lhs)); + PatternElement *patternElement = cast<PatternElement *>(forEachStatement->lhs); + + if (patternElement != nullptr) + result += parsePatternElement(patternElement); + else + result += parseExpression(forEachStatement->lhs->expressionCast()); switch (forEachStatement->type) { |