diff options
author | Tor Arne Vestbø <tor.arne.vestbo@digia.com> | 2013-09-25 17:18:38 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-25 21:21:24 +0200 |
commit | f04b46f34e9446417cd5681f511332344679ef30 (patch) | |
tree | 0a8ece2c31e777c596dc3b96dca388cc33a8fd46 | |
parent | 1749bab56538316a579c8f02da0bdaadfe75c11d (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.cpp | 14 | ||||
-rw-r--r-- | src/corelib/kernel/qcoreapplication_p.h | 1 |
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(); |