From ad993f2926db6fe4ba2c75e17c4f099d9d853038 Mon Sep 17 00:00:00 2001 From: Sheikh Dawood Abdul Ajees Date: Tue, 25 Sep 2018 11:33:48 -0500 Subject: PhysX 3.4, APEX 1.4 patch release @24990349 --- PhysX_3.4/Source/LowLevelAABB/src/BpSimpleAABBManager.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'PhysX_3.4/Source/LowLevelAABB/src/BpSimpleAABBManager.cpp') diff --git a/PhysX_3.4/Source/LowLevelAABB/src/BpSimpleAABBManager.cpp b/PhysX_3.4/Source/LowLevelAABB/src/BpSimpleAABBManager.cpp index 2e0bc7e0..298f3f00 100644 --- a/PhysX_3.4/Source/LowLevelAABB/src/BpSimpleAABBManager.cpp +++ b/PhysX_3.4/Source/LowLevelAABB/src/BpSimpleAABBManager.cpp @@ -2767,6 +2767,9 @@ static void processAggregatePairsParallel(AggPairMap& map, SimpleAABBManager& ma ProcessAggPairsParallelTask* task = PX_PLACEMENT_NEW(flushPool.allocate(sizeof(ProcessAggPairsParallelTask)), ProcessAggPairsParallelTask)(0, &manager.mMapLock, &manager, &map, taskName); + + PxU32 startIdx = pairTasks.size(); + for (AggPairMap::Iterator iter = map.getIterator(); !iter.done(); ++iter) { task->mAggPairs[task->mNbPairs] = iter->first; @@ -2775,7 +2778,6 @@ static void processAggregatePairsParallel(AggPairMap& map, SimpleAABBManager& ma { pairTasks.pushBack(task); task->setContinuation(continuation); - task->removeReference(); //task->runInternal(); task = PX_PLACEMENT_NEW(flushPool.allocate(sizeof(ProcessAggPairsParallelTask)), ProcessAggPairsParallelTask)(0, &manager.mMapLock, &manager, &map, taskName); } @@ -2783,6 +2785,12 @@ static void processAggregatePairsParallel(AggPairMap& map, SimpleAABBManager& ma manager.mMapLock.unlock(); + for (PxU32 i = startIdx; i < pairTasks.size(); ++i) + { + pairTasks[i]->removeReference(); + } + + if (task->mNbPairs) { pairTasks.pushBack(task); -- cgit v1.2.3