aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/corelib/generators
diff options
context:
space:
mode:
authorJake Petroules <jake.petroules@qt.io>2018-01-05 00:22:37 -0800
committerChristian Kandeler <christian.kandeler@qt.io>2018-01-05 09:25:21 +0000
commit3bde712fa2c1f926720e85d20ae7fd5f9f378fef (patch)
treed2e461e7c439d2482bfd5fd4e04af4db8f2c2cc9 /src/lib/corelib/generators
parent68a2c7a94439812f964bcb2ead4cd2cbb88d49a5 (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>
Diffstat (limited to 'src/lib/corelib/generators')
-rw-r--r--src/lib/corelib/generators/generatordata.h2
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) {