diff options
author | Jake Petroules <jake.petroules@qt.io> | 2018-01-05 00:22:37 -0800 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2018-01-05 09:25:21 +0000 |
commit | 3bde712fa2c1f926720e85d20ae7fd5f9f378fef (patch) | |
tree | d2e461e7c439d2482bfd5fd4e04af4db8f2c2cc9 | |
parent | 68a2c7a94439812f964bcb2ead4cd2cbb88d49a5 (diff) |
Don't crash when calling methods on empty IMultiplexableContainers
Default-constructed GeneratableProjectData objects may be passed to
generator methods as placeholders (in the case of the Visual Studio
generator) and calling methods on such objects must not dereference
invalid iterators.
Task-number: QBS-1257
Change-Id: I1c2bfff015efc98cbfb66d02b497320429b6c6da
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
-rw-r--r-- | src/lib/corelib/generators/generatordata.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/lib/corelib/generators/generatordata.h b/src/lib/corelib/generators/generatordata.h index 21e8a1ab4..decb1edfe 100644 --- a/src/lib/corelib/generators/generatordata.h +++ b/src/lib/corelib/generators/generatordata.h @@ -59,6 +59,8 @@ template <typename U> struct IMultiplexableContainer { template <typename T> T uniqueValue(const std::function<T(const U &data)> &func, const QString &errorMessage) const { + if (data.empty()) + return T(); auto it = data.begin(), end = data.end(); auto value = func(*it++); for (; it != end; ++it) { |