diff options
Diffstat (limited to 'src/corelib/thread')
-rw-r--r-- | src/corelib/thread/qresultstore.cpp | 1 | ||||
-rw-r--r-- | src/corelib/thread/qresultstore.h | 7 |
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; |