QObject: Optimize removeEventFilter
We can't have duplicated filters installed, so break the loop when removing event filter after we have found the matching one. Pick-to: 6.7 Change-Id: Idda87f3090954e020b27bf3fab62677128607f03 Reviewed-by: Marc Mutz <marc.mutz@qt.io>bb10
parent
620eb390c0
commit
b909b8dfe8
|
|
@ -2375,9 +2375,11 @@ void QObject::removeEventFilter(QObject *obj)
|
|||
{
|
||||
Q_D(QObject);
|
||||
if (d->extraData) {
|
||||
for (int i = 0; i < d->extraData->eventFilters.size(); ++i) {
|
||||
if (d->extraData->eventFilters.at(i) == obj)
|
||||
d->extraData->eventFilters[i] = nullptr;
|
||||
for (auto &filter : d->extraData->eventFilters) {
|
||||
if (filter == obj) {
|
||||
filter = nullptr;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue