summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTor Arne Vestbø <tor.arne.vestbo@digia.com>2013-09-25 17:18:38 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-25 21:21:24 +0200
commitf04b46f34e9446417cd5681f511332344679ef30 (patch)
tree0a8ece2c31e777c596dc3b96dca388cc33a8fd46
parent1749bab56538316a579c8f02da0bdaadfe75c11d (diff)
Don't assume QCoreApplication::applicationName() will never changev5.2.0-alpha1
Tests will typically create multiple QCoreApplications, some of them with different argv[0] than others, so we can't use a static variable to keep the cached application name. Change-Id: Icd97527730558944473a71373326b4a82f1b7cf7 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
-rw-r--r--src/corelib/kernel/qcoreapplication.cpp14
-rw-r--r--src/corelib/kernel/qcoreapplication_p.h1
2 files changed, 9 insertions, 6 deletions
diff --git a/src/corelib/kernel/qcoreapplication.cpp b/src/corelib/kernel/qcoreapplication.cpp
index f3caa1d918..553eaf0820 100644
--- a/src/corelib/kernel/qcoreapplication.cpp
+++ b/src/corelib/kernel/qcoreapplication.cpp
@@ -146,15 +146,17 @@ QString QCoreApplicationPrivate::macMenuBarName()
#endif
QString QCoreApplicationPrivate::appName() const
{
- static QString applName;
+ if (applicationName.isNull()) {
#ifdef Q_OS_MAC
- applName = macMenuBarName();
+ applicationName = macMenuBarName();
#endif
- if (applName.isEmpty() && argv[0]) {
- char *p = strrchr(argv[0], '/');
- applName = QString::fromLocal8Bit(p ? p + 1 : argv[0]);
+ if (applicationName.isEmpty() && argv[0]) {
+ char *p = strrchr(argv[0], '/');
+ applicationName = QString::fromLocal8Bit(p ? p + 1 : argv[0]);
+ }
}
- return applName;
+
+ return applicationName;
}
#endif
diff --git a/src/corelib/kernel/qcoreapplication_p.h b/src/corelib/kernel/qcoreapplication_p.h
index 6a3bea9c9e..477b8cfcfe 100644
--- a/src/corelib/kernel/qcoreapplication_p.h
+++ b/src/corelib/kernel/qcoreapplication_p.h
@@ -83,6 +83,7 @@ public:
~QCoreApplicationPrivate();
QString appName() const;
+ mutable QString applicationName;
#ifdef Q_OS_MAC
static QString macMenuBarName();