Use eachMatchingNode instead of eachNode

This commit is contained in:
Simon Walton 2018-06-19 12:01:27 -07:00
parent 5bf075457c
commit c8c135a985

View file

@ -613,9 +613,24 @@ void AvatarMixer::handleAvatarIdentityRequestPacket(QSharedPointer<ReceivedMessa
if (!avatarID.isNull()) {
auto nodeList = DependencyManager::get<NodeList>();
nodeList->eachNode([&](SharedNodePointer node) {
nodeList->eachMatchingNode(
// Predicate:
[&](SharedNodePointer node) -> bool {
QMutexLocker lock(&node->getMutex());
if (node->getType() == NodeType::Agent && node->getLinkedData()) {
AvatarMixerClientData* avatarClientData = dynamic_cast<AvatarMixerClientData*>(node->getLinkedData());
if (avatarClientData) {
const AvatarData& avatarData = avatarClientData->getAvatar();
if (avatarData.getID() == avatarID) {
return true;
}
}
}
return false;
},
// Action:
[&](SharedNodePointer node) {
QMutexLocker lock(&node->getMutex());
AvatarMixerClientData* avatarClientData = dynamic_cast<AvatarMixerClientData*>(node->getLinkedData());
if (avatarClientData) {
const AvatarData& avatarData = avatarClientData->getAvatar();
@ -627,9 +642,7 @@ void AvatarMixer::handleAvatarIdentityRequestPacket(QSharedPointer<ReceivedMessa
}
}
}
}
);
}
}