From a24bf3db83d81d7d7677a1f0f750f208d32998a8 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Sat, 28 Jul 2018 22:29:35 +0200 Subject: Avoid unnecessary Identifier conversions in performance ciritical code. This fixes the performance regressions to a state where we are roughly at the same performance as pre Identifier (but not any better either). --- common/datastorequery.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'common/datastorequery.cpp') diff --git a/common/datastorequery.cpp b/common/datastorequery.cpp index 52243da..43b4660 100644 --- a/common/datastorequery.cpp +++ b/common/datastorequery.cpp @@ -46,14 +46,10 @@ class Source : public FilterBase { QVector mIncrementalIds; QVector::ConstIterator mIncrementalIt; - Source (const QVector &ids, DataStoreQuery *store) + Source (const QVector &ids, DataStoreQuery *store) : FilterBase(store), - mIds() + mIds(ids) { - mIds.reserve(ids.size()); - for (const auto &id : ids) { - mIds.append(Identifier::fromDisplayByteArray(id)); - } mIt = mIds.constBegin(); } @@ -614,7 +610,11 @@ void DataStoreQuery::setupQuery(const Sink::QueryBase &query_) mSource = [&]() { if (!query.ids().isEmpty()) { //We have a set of ids as a starting point - return Source::Ptr::create(query.ids().toVector(), this); + QVector ids; + for (const auto & id: query.ids()) { + ids.append(Identifier::fromDisplayByteArray(id)); + } + return Source::Ptr::create(ids, this); } else { QSet appliedFilters; auto resultSet = mStore.indexLookup(mType, query, appliedFilters, appliedSorting); -- cgit v1.2.3