From 4d3b9aa83cf7f6d9f9b88d9936e5980629daac2a Mon Sep 17 00:00:00 2001 From: Cristiano di Flora Date: Tue, 22 Feb 2011 05:27:51 +0200 Subject: Fix QNetworkConfigurationManager crash due to null private pointer. Reviewed-by: Aaron McCarthy Task-Number: QTBUG-17305 (cherry picked from commit 7388fcb83592a90aace054314e0c3e7e7a94fdae) --- src/network/bearer/qnetworkconfigmanager.cpp | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/src/network/bearer/qnetworkconfigmanager.cpp b/src/network/bearer/qnetworkconfigmanager.cpp index 0e3c519..7eadb82 100644 --- a/src/network/bearer/qnetworkconfigmanager.cpp +++ b/src/network/bearer/qnetworkconfigmanager.cpp @@ -57,16 +57,17 @@ QT_BEGIN_NAMESPACE { \ delete this_##NAME.pointer; \ this_##NAME.pointer = 0; \ - this_##NAME.destroyed = true; \ } \ static TYPE *NAME() \ { \ - if (!this_##NAME.pointer && !this_##NAME.destroyed) { \ + if (!this_##NAME.pointer) { \ TYPE *x = new TYPE; \ if (!this_##NAME.pointer.testAndSetOrdered(0, x)) \ delete x; \ - else \ + else { \ qAddPostRoutine(NAME##_cleanup); \ + this_##NAME.pointer->updateConfigurations(); \ + } \ } \ return this_##NAME.pointer; \ } @@ -75,15 +76,7 @@ Q_GLOBAL_STATIC_QAPP_DESTRUCTION(QNetworkConfigurationManagerPrivate, connManage QNetworkConfigurationManagerPrivate *qNetworkConfigurationManagerPrivate() { - static bool initialized = false; - - QNetworkConfigurationManagerPrivate *m = connManager(); - if (!initialized) { - initialized = true; - m->updateConfigurations(); - } - - return m; + return connManager(); } /*! -- cgit v0.12 From e02d7079ca2851831c8a08e7c4994fe4428363ed Mon Sep 17 00:00:00 2001 From: Cristiano di Flora Date: Tue, 22 Feb 2011 05:32:10 +0200 Subject: Removing tabs from 7388fcb83592a90aace054314e0c3e7e7a94fdae changeset (cherry picked from commit 44373d71dde16c4899377703e724d46d803ade9e) --- src/network/bearer/qnetworkconfigmanager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/network/bearer/qnetworkconfigmanager.cpp b/src/network/bearer/qnetworkconfigmanager.cpp index 7eadb82..dc4e4f7 100644 --- a/src/network/bearer/qnetworkconfigmanager.cpp +++ b/src/network/bearer/qnetworkconfigmanager.cpp @@ -67,7 +67,7 @@ QT_BEGIN_NAMESPACE else { \ qAddPostRoutine(NAME##_cleanup); \ this_##NAME.pointer->updateConfigurations(); \ - } \ + } \ } \ return this_##NAME.pointer; \ } -- cgit v0.12