From 1dc3236825ccd7d4b7dcf97e290ba8dd1b7d2f98 Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Tue, 2 May 2017 12:31:52 +0200 Subject: [PATCH] BUG: fixed odd sizing for hash tables (fixes #460) --- src/OpenFOAM/containers/HashTables/HashSet/HashSet.C | 8 ++++---- src/OpenFOAM/containers/HashTables/HashTable/HashTable.C | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/OpenFOAM/containers/HashTables/HashSet/HashSet.C b/src/OpenFOAM/containers/HashTables/HashSet/HashSet.C index fb33e0e2c7..5c1b579829 100644 --- a/src/OpenFOAM/containers/HashTables/HashSet/HashSet.C +++ b/src/OpenFOAM/containers/HashTables/HashSet/HashSet.C @@ -120,7 +120,7 @@ Foam::HashSet::HashSet const HashTable& tbl ) : - HashTable(tbl.size()) + HashTable(tbl.capacity()) { using other_iter = typename HashTable::const_iterator; @@ -159,7 +159,7 @@ Foam::label Foam::HashSet::insert(std::initializer_list lst) template void Foam::HashSet::operator=(const UList& lst) { - assignMultiple(lst.begin(), lst.end(), lst.size()); + assignMultiple(lst.begin(), lst.end(), 2*lst.size()); } @@ -167,14 +167,14 @@ template template void Foam::HashSet::operator=(const FixedList& lst) { - assignMultiple(lst.begin(), lst.end(), lst.size()); + assignMultiple(lst.begin(), lst.end(), 2*lst.size()); } template void Foam::HashSet::operator=(std::initializer_list lst) { - assignMultiple(lst.begin(), lst.end(), lst.size()); + assignMultiple(lst.begin(), lst.end(), 2*lst.size()); } diff --git a/src/OpenFOAM/containers/HashTables/HashTable/HashTable.C b/src/OpenFOAM/containers/HashTables/HashTable/HashTable.C index 5e559cf058..db3256bcb1 100644 --- a/src/OpenFOAM/containers/HashTables/HashTable/HashTable.C +++ b/src/OpenFOAM/containers/HashTables/HashTable/HashTable.C @@ -115,7 +115,7 @@ Foam::HashTable::HashTable std::initializer_list> lst ) : - HashTable(lst.size()) + HashTable(2*lst.size()) { for (const Tuple2& pair : lst) { @@ -638,7 +638,7 @@ void Foam::HashTable::operator= // Could be zero-sized from a previous transfer() if (!tableSize_) { - resize(lst.size()); + resize(2*lst.size()); } else {