aboutsummaryrefslogtreecommitdiff
path: root/PhysX_3.4/Source/LowLevelAABB/src/BpSimpleAABBManager.cpp
diff options
context:
space:
mode:
authorSheikh Dawood Abdul Ajees <[email protected]>2018-09-25 11:33:48 -0500
committerSheikh Dawood Abdul Ajees <[email protected]>2018-09-25 11:33:48 -0500
commitad993f2926db6fe4ba2c75e17c4f099d9d853038 (patch)
tree426f831e7aa870a4704b8dd082538ff292e751f9 /PhysX_3.4/Source/LowLevelAABB/src/BpSimpleAABBManager.cpp
parentPhysX 3.4, APEX 1.4 patch release @24698370 (diff)
downloadphysx-3.4-ad993f2926db6fe4ba2c75e17c4f099d9d853038.tar.xz
physx-3.4-ad993f2926db6fe4ba2c75e17c4f099d9d853038.zip
PhysX 3.4, APEX 1.4 patch release @24990349
Diffstat (limited to 'PhysX_3.4/Source/LowLevelAABB/src/BpSimpleAABBManager.cpp')
-rw-r--r--PhysX_3.4/Source/LowLevelAABB/src/BpSimpleAABBManager.cpp10
1 files changed, 9 insertions, 1 deletions
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);