Consistently check for nullptr in QGraphicsTextItem::inputMethodQuery

If dd->control is nullptr, then it's nullptr all the way, so don't
dereference it in the calls to dd->controlOffset.

Fixes static analyzer warning 9c33d9bc9b8cf438dccb63aa52afcbe0.

Pick-to: 6.1 6.0 5.15
Change-Id: I7a61b6438422373678d4fcb66255b750c550724d
Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
This commit is contained in:
Volker Hilsheimer 2021-03-17 15:26:11 +01:00
parent 98e4652a96
commit 7edf0fbb9e

View File

@ -10311,14 +10311,16 @@ QVariant QGraphicsTextItem::inputMethodQuery(Qt::InputMethodQuery query) const
v = int(inputMethodHints()); v = int(inputMethodHints());
else if (dd->control) else if (dd->control)
v = dd->control->inputMethodQuery(query, QVariant()); v = dd->control->inputMethodQuery(query, QVariant());
if (v.userType() == QMetaType::QRectF) if (dd->control) {
v = v.toRectF().translated(-dd->controlOffset()); if (v.userType() == QMetaType::QRectF)
else if (v.userType() == QMetaType::QPointF) v = v.toRectF().translated(-dd->controlOffset());
v = v.toPointF() - dd->controlOffset(); else if (v.userType() == QMetaType::QPointF)
else if (v.userType() == QMetaType::QRect) v = v.toPointF() - dd->controlOffset();
v = v.toRect().translated(-dd->controlOffset().toPoint()); else if (v.userType() == QMetaType::QRect)
else if (v.userType() == QMetaType::QPoint) v = v.toRect().translated(-dd->controlOffset().toPoint());
v = v.toPoint() - dd->controlOffset().toPoint(); else if (v.userType() == QMetaType::QPoint)
v = v.toPoint() - dd->controlOffset().toPoint();
}
return v; return v;
} }