From 1d9f3097da5c0506083c6278137f1611c851baf8 Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Mon, 21 Dec 2015 15:16:55 -0800 Subject: [PATCH] trying to track down why equips fail after a few minutes --- libraries/physics/src/ObjectAction.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/libraries/physics/src/ObjectAction.cpp b/libraries/physics/src/ObjectAction.cpp index 17b565ba21..e8e1188dc9 100644 --- a/libraries/physics/src/ObjectAction.cpp +++ b/libraries/physics/src/ObjectAction.cpp @@ -23,15 +23,15 @@ ObjectAction::~ObjectAction() { } void ObjectAction::updateAction(btCollisionWorld* collisionWorld, btScalar deltaTimeStep) { - bool ownerEntityExpired = false; quint64 expiresWhen = 0; + EntityItemPointer ownerEntity = nullptr; withReadLock([&]{ - ownerEntityExpired = _ownerEntity.expired(); + ownerEntity = _ownerEntity.lock(); expiresWhen = _expires; }); - if (ownerEntityExpired) { + if (!ownerEntity) { qDebug() << "warning -- action with no entity removing self from btCollisionWorld."; btDynamicsWorld* dynamicsWorld = static_cast(collisionWorld); if (dynamicsWorld) { @@ -43,10 +43,8 @@ void ObjectAction::updateAction(btCollisionWorld* collisionWorld, btScalar delta if (expiresWhen > 0) { quint64 now = usecTimestampNow(); if (now > expiresWhen) { - EntityItemPointer ownerEntity = nullptr; QUuid myID; withWriteLock([&]{ - ownerEntity = _ownerEntity.lock(); _active = false; myID = getID(); });