From 9bce5830638e9e8d2380941cab071473a03cc869 Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Wed, 14 Jan 2009 10:15:01 +0100 Subject: [PATCH 01/32] SortableList, sortedOrder - micro-optimization --- .../Lists/ListOps/ListOpsTemplates.C | 9 ++++++- .../Lists/SortableList/SortableList.C | 16 ++++++----- .../Lists/SortableList/SortableList.H | 4 +-- .../meshReader/starcd/STARCDMeshReader.C | 11 ++++---- .../meshWriter/starcd/STARCDMeshWriter.C | 1 + .../fvMesh/extendedStencil/extendedStencil.C | 2 +- .../searchableSurfacesQueries.C | 27 ++++++++----------- 7 files changed, 39 insertions(+), 31 deletions(-) diff --git a/src/OpenFOAM/containers/Lists/ListOps/ListOpsTemplates.C b/src/OpenFOAM/containers/Lists/ListOps/ListOpsTemplates.C index 1b17991ed5..f12b5efd55 100644 --- a/src/OpenFOAM/containers/Lists/ListOps/ListOpsTemplates.C +++ b/src/OpenFOAM/containers/Lists/ListOps/ListOpsTemplates.C @@ -173,7 +173,14 @@ void Foam::sortedOrder labelList& order ) { - order.setSize(lst.size()); + // list lengths must be identical + if (order.size() != lst.size()) + { + // avoid copying any elements, they are overwritten anyhow + order.clear(); + order.setSize(lst.size()); + } + forAll(order, elemI) { order[elemI] = elemI; diff --git a/src/OpenFOAM/containers/Lists/SortableList/SortableList.C b/src/OpenFOAM/containers/Lists/SortableList/SortableList.C index cc0c52776d..221df85229 100644 --- a/src/OpenFOAM/containers/Lists/SortableList/SortableList.C +++ b/src/OpenFOAM/containers/Lists/SortableList/SortableList.C @@ -27,17 +27,21 @@ License // * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * * // template -void Foam::SortableList::sortIndices(List