mirror of
https://github.com/JulianGro/overte.git
synced 2025-04-26 03:55:08 +02:00
Merge pull request #12279 from druiz17/fix-parenting-crash
fix entity parenting crash
This commit is contained in:
commit
ece72501b9
1 changed files with 13 additions and 4 deletions
|
@ -1679,14 +1679,17 @@ void EntityTree::entityChanged(EntityItemPointer entity) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void EntityTree::fixupNeedsParentFixups() {
|
void EntityTree::fixupNeedsParentFixups() {
|
||||||
PROFILE_RANGE(simulation_physics, "FixupParents");
|
PROFILE_RANGE(simulation_physics, "FixupParents");
|
||||||
MovingEntitiesOperator moveOperator;
|
MovingEntitiesOperator moveOperator;
|
||||||
|
QVector<EntityItemWeakPointer> entitiesToFixup;
|
||||||
|
{
|
||||||
|
QWriteLocker locker(&_needsParentFixupLock);
|
||||||
|
entitiesToFixup = _needsParentFixup;
|
||||||
|
_needsParentFixup.clear();
|
||||||
|
}
|
||||||
|
|
||||||
QWriteLocker locker(&_needsParentFixupLock);
|
QMutableVectorIterator<EntityItemWeakPointer> iter(entitiesToFixup);
|
||||||
|
|
||||||
QMutableVectorIterator<EntityItemWeakPointer> iter(_needsParentFixup);
|
|
||||||
while (iter.hasNext()) {
|
while (iter.hasNext()) {
|
||||||
EntityItemWeakPointer entityWP = iter.next();
|
EntityItemWeakPointer entityWP = iter.next();
|
||||||
EntityItemPointer entity = entityWP.lock();
|
EntityItemPointer entity = entityWP.lock();
|
||||||
|
@ -1749,6 +1752,12 @@ void EntityTree::fixupNeedsParentFixups() {
|
||||||
PerformanceTimer perfTimer("recurseTreeWithOperator");
|
PerformanceTimer perfTimer("recurseTreeWithOperator");
|
||||||
recurseTreeWithOperator(&moveOperator);
|
recurseTreeWithOperator(&moveOperator);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
QWriteLocker locker(&_needsParentFixupLock);
|
||||||
|
// add back the entities that did not get fixup
|
||||||
|
_needsParentFixup.append(entitiesToFixup);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void EntityTree::deleteDescendantsOfAvatar(QUuid avatarID) {
|
void EntityTree::deleteDescendantsOfAvatar(QUuid avatarID) {
|
||||||
|
|
Loading…
Reference in a new issue