From e3a4cf013c8cc1424a4418c9382786d05a8082f0 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Thu, 6 Oct 2016 09:51:32 +0200 Subject: [PATCH] QBrush: enable -Wswitch in strategic places Since we rely on the brush style to distinguish between the three different QBrushData subclasses, we should grab all the help we need to not mess up, so replace default case labels with the expanded list of brush styles, so that -Wswitch shall always prompt those adding new styles to add them to the the correct branch of each switch, rather than having them treated as Basic by default. Coverity-Id: 11772 Coverity-Id: 218724 Change-Id: Id6280695a4d9cb8af6dedd283aa4cc4be73806fa Reviewed-by: Volker Hilsheimer --- src/gui/painting/qbrush.cpp | 47 ++++++++++++++++++++++++++++++++++--- 1 file changed, 44 insertions(+), 3 deletions(-) diff --git a/src/gui/painting/qbrush.cpp b/src/gui/painting/qbrush.cpp index bf013f57574..2e56b15bb94 100644 --- a/src/gui/painting/qbrush.cpp +++ b/src/gui/painting/qbrush.cpp @@ -227,7 +227,21 @@ static void deleteData(QBrushData *d) case Qt::ConicalGradientPattern: delete static_cast(d); break; - default: + case Qt::NoBrush: + case Qt::SolidPattern: + case Qt::Dense1Pattern: + case Qt::Dense2Pattern: + case Qt::Dense3Pattern: + case Qt::Dense4Pattern: + case Qt::Dense5Pattern: + case Qt::Dense6Pattern: + case Qt::Dense7Pattern: + case Qt::HorPattern: + case Qt::VerPattern: + case Qt::CrossPattern: + case Qt::BDiagPattern: + case Qt::FDiagPattern: + case Qt::DiagCrossPattern: delete static_cast(d); break; } @@ -381,7 +395,20 @@ void QBrush::init(const QColor &color, Qt::BrushStyle style) case Qt::ConicalGradientPattern: d.reset(new QGradientBrushData); break; - default: + case Qt::SolidPattern: + case Qt::Dense1Pattern: + case Qt::Dense2Pattern: + case Qt::Dense3Pattern: + case Qt::Dense4Pattern: + case Qt::Dense5Pattern: + case Qt::Dense6Pattern: + case Qt::Dense7Pattern: + case Qt::HorPattern: + case Qt::VerPattern: + case Qt::CrossPattern: + case Qt::BDiagPattern: + case Qt::FDiagPattern: + case Qt::DiagCrossPattern: d.reset(new QBasicBrushData); break; } @@ -590,7 +617,21 @@ void QBrush::detach(Qt::BrushStyle newStyle) x.reset(gbd); break; } - default: + case Qt::NoBrush: + case Qt::SolidPattern: + case Qt::Dense1Pattern: + case Qt::Dense2Pattern: + case Qt::Dense3Pattern: + case Qt::Dense4Pattern: + case Qt::Dense5Pattern: + case Qt::Dense6Pattern: + case Qt::Dense7Pattern: + case Qt::HorPattern: + case Qt::VerPattern: + case Qt::CrossPattern: + case Qt::BDiagPattern: + case Qt::FDiagPattern: + case Qt::DiagCrossPattern: x.reset(new QBasicBrushData); break; }