From 82499f81478032911d8f788aa28e8d780b31c973 Mon Sep 17 00:00:00 2001 From: Ivan Solovev Date: Wed, 7 Jul 2021 14:51:36 +0200 Subject: QMultiHash::find - prevent detaching shared null Do not detach when find(key, value) is called on an empty QMultiHash. As a drive-by: fix return value for QMultiHash::remove() in case of empty QMultiHash. Task-number: QTBUG-91736 Pick-to: 6.2 6.1 Change-Id: I1e32f359e7ee9ce8403dae79d02e0b88a20ec4a5 Reviewed-by: Edward Welbourne Reviewed-by: Lars Knoll --- src/corelib/tools/qhash.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/corelib/tools/qhash.h b/src/corelib/tools/qhash.h index 392371ce5e..6866dfebf3 100644 --- a/src/corelib/tools/qhash.h +++ b/src/corelib/tools/qhash.h @@ -1782,7 +1782,7 @@ public: qsizetype remove(const Key &key, const T &value) { if (isEmpty()) // prevents detaching shared null - return false; + return 0; detach(); auto it = d->find(key); @@ -1844,6 +1844,8 @@ public: iterator find(const Key &key, const T &value) { + if (isEmpty()) + return end(); detach(); auto it = constFind(key, value); return iterator(it.i, it.e); -- cgit v1.2.3