From 79ad3de7bfdb5da56e815993216852a6f3db2809 Mon Sep 17 00:00:00 2001 From: Timur Pocheptsov Date: Thu, 21 May 2015 17:11:26 +0200 Subject: QCoreWlanEngine - null the pointer QCoreWlanEngine is using a global variable but fails to reset it to nil when deleted, thus re-creating this WLAN manager we use a dangling pointer (found in qnetworkconfigurationmanagerqappless). Since our API allows to (re)create object(s) of these class, the pointer must be set to nil after -release call. Ideally, of course, this class has to be re-factored. Change-Id: I08662f55dc6cd2ceb0e0cad2574ee3dee6b8e3fd Reviewed-by: Alex Blasche --- src/plugins/bearer/corewlan/qcorewlanengine.mm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/plugins/bearer/corewlan/qcorewlanengine.mm') diff --git a/src/plugins/bearer/corewlan/qcorewlanengine.mm b/src/plugins/bearer/corewlan/qcorewlanengine.mm index 9530dd83d0..a30d8f69c4 100644 --- a/src/plugins/bearer/corewlan/qcorewlanengine.mm +++ b/src/plugins/bearer/corewlan/qcorewlanengine.mm @@ -85,8 +85,11 @@ extern "C" { // Otherwise it won't find CWKeychain* symbols at link time return self; } +static QT_MANGLE_NAMESPACE(QNSListener) *listener = 0; + -(void)dealloc { + listener = nil; [super dealloc]; } @@ -117,7 +120,6 @@ extern "C" { // Otherwise it won't find CWKeychain* symbols at link time } @end -static QT_MANGLE_NAMESPACE(QNSListener) *listener = 0; QT_BEGIN_NAMESPACE -- cgit v1.2.3 From 386aca1ba4da3383cd6b6253a7240417ff2d91a0 Mon Sep 17 00:00:00 2001 From: Lorn Potter Date: Fri, 22 May 2015 09:13:51 +1000 Subject: Fix no bearermanagement build As pointed out in the bug, it also fixes API use when configured with no bearermanagement. Task-number: QTBUG-46239 Change-Id: Ief8df85ad6acf61e8d5bb3eed54e7d6ecb84c1a0 Reviewed-by: Alex Blasche --- src/plugins/bearer/corewlan/qcorewlanengine.mm | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/plugins/bearer/corewlan/qcorewlanengine.mm') diff --git a/src/plugins/bearer/corewlan/qcorewlanengine.mm b/src/plugins/bearer/corewlan/qcorewlanengine.mm index 2b38409723..3cee70044f 100644 --- a/src/plugins/bearer/corewlan/qcorewlanengine.mm +++ b/src/plugins/bearer/corewlan/qcorewlanengine.mm @@ -52,6 +52,7 @@ #include #include +#ifndef QT_NO_BEARERMANAGEMENT extern "C" { // Otherwise it won't find CWKeychain* symbols at link time #import @@ -896,3 +897,5 @@ quint64 QCoreWlanEngine::getBytes(const QString &interfaceName, bool b) } QT_END_NAMESPACE + +#endif -- cgit v1.2.3