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