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());
else if (dd->control)
v = dd->control->inputMethodQuery(query, QVariant());
if (v.userType() == QMetaType::QRectF)
v = v.toRectF().translated(-dd->controlOffset());
else if (v.userType() == QMetaType::QPointF)
v = v.toPointF() - dd->controlOffset();
else if (v.userType() == QMetaType::QRect)
v = v.toRect().translated(-dd->controlOffset().toPoint());
else if (v.userType() == QMetaType::QPoint)
v = v.toPoint() - dd->controlOffset().toPoint();
if (dd->control) {
if (v.userType() == QMetaType::QRectF)
v = v.toRectF().translated(-dd->controlOffset());
else if (v.userType() == QMetaType::QPointF)
v = v.toPointF() - dd->controlOffset();
else if (v.userType() == QMetaType::QRect)
v = v.toRect().translated(-dd->controlOffset().toPoint());
else if (v.userType() == QMetaType::QPoint)
v = v.toPoint() - dd->controlOffset().toPoint();
}
return v;
}