summaryrefslogtreecommitdiffstats
path: root/src/corelib/thread
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/thread')
-rw-r--r--src/corelib/thread/qresultstore.cpp1
-rw-r--r--src/corelib/thread/qresultstore.h7
2 files changed, 8 insertions, 0 deletions
diff --git a/src/corelib/thread/qresultstore.cpp b/src/corelib/thread/qresultstore.cpp
index a239954dbe..5982ae5454 100644
--- a/src/corelib/thread/qresultstore.cpp
+++ b/src/corelib/thread/qresultstore.cpp
@@ -235,6 +235,7 @@ int ResultStoreBase::addResult(int index, const void *result)
int ResultStoreBase::addResults(int index, const void *results, int vectorSize, int totalCount)
{
if (m_filterMode == false || vectorSize == totalCount) {
+ Q_ASSERT(vectorSize != 0);
ResultItem resultItem(results, vectorSize);
return insertResultItem(index, resultItem);
} else {
diff --git a/src/corelib/thread/qresultstore.h b/src/corelib/thread/qresultstore.h
index fb9151fcc6..ced181a91d 100644
--- a/src/corelib/thread/qresultstore.h
+++ b/src/corelib/thread/qresultstore.h
@@ -194,6 +194,9 @@ public:
template<typename T>
int addResults(int index, const QList<T> *results)
{
+ if (results->empty()) // reject if results are empty
+ return -1;
+
if (containsValidResultItem(index)) // reject if already present
return -1;
@@ -203,6 +206,10 @@ public:
template<typename T>
int addResults(int index, const QList<T> *results, int totalCount)
{
+ // reject if results are empty, and nothing is filtered away
+ if ((m_filterMode == false || results->count() == totalCount) && results->empty())
+ return -1;
+
if (containsValidResultItem(index)) // reject if already present
return -1;