From 97f1a1597f85006d20226104f8194cc5d1255f84 Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 15 May 2019 19:02:25 +0200 Subject: Use std::unordered_map for m_storageIndices Makes the Ir event count go from ~8.28 billion to ~8.12 for a Qt Creator null build. Change-Id: I02714cd922fd9d42abe67e5115e3ffd64778f77a Reviewed-by: Christian Kandeler --- src/lib/corelib/tools/persistence.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/lib/corelib/tools/persistence.h b/src/lib/corelib/tools/persistence.h index 3688cc32f..4bda59f7c 100644 --- a/src/lib/corelib/tools/persistence.h +++ b/src/lib/corelib/tools/persistence.h @@ -171,7 +171,7 @@ private: HeadData m_headData; std::vector m_loadedRaw; std::vector> m_loaded; - QHash m_storageIndices; + std::unordered_map m_storageIndices; PersistentObjectId m_lastStoredObjectId = 0; std::vector m_stringStorage; @@ -198,14 +198,14 @@ template inline void PersistentPool::storeSharedObject(const T *obje return; } const void * const addr = uniqueAddress(object); - PersistentObjectId id = m_storageIndices.value(addr, -1); - if (id < 0) { - id = m_lastStoredObjectId++; - m_storageIndices.insert(addr, id); + const auto found = m_storageIndices.find(addr); + if (found == m_storageIndices.end()) { + PersistentObjectId id = m_lastStoredObjectId++; + m_storageIndices[addr] = id; m_stream << id; store(*object); } else { - m_stream << id; + m_stream << found->second; } } -- cgit v1.2.3