<pre style='margin:0'>
Christopher Nielsen (mascguy) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/1f4a153bf8c81224be5dc6edfc757baaab455710">https://github.com/macports/macports-ports/commit/1f4a153bf8c81224be5dc6edfc757baaab455710</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 1f4a153bf8c81224be5dc6edfc757baaab455710
</span>Author: Christopher Chavez <chrischavez@gmx.us>
AuthorDate: Tue Jul 26 13:54:19 2022 -0500

<span style='display:block; white-space:pre;color:#404040;'>    qt(55|57|58)-qtconnectivity: fix for recent compilers
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    See: https://trac.macports.org/ticket/60889
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    [skip ci]
</span>---
 aqua/qt55/Portfile                                 |   2 +
 .../files/patch-qtconnectivity_qtbug_76847.diff    | 250 ++++++++++++++++++
 aqua/qt57/Portfile                                 |   2 +
 .../files/patch-qtconnectivity_qtbug_76847.diff    | 281 +++++++++++++++++++++
 aqua/qt58/Portfile                                 |   2 +
 .../files/patch-qtconnectivity_qtbug_76847.diff    | 281 +++++++++++++++++++++
 6 files changed, 818 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/aqua/qt55/Portfile b/aqua/qt55/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index e2472d81950..3229d2196e9 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/aqua/qt55/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/aqua/qt55/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1396,6 +1396,8 @@ foreach {module module_info} [array get modules] {
</span> 
             # special case
             if { ${module} eq "qtconnectivity" } {
<span style='display:block; white-space:pre;background:#e0ffe0;'>+                patchfiles-append patch-qtconnectivity_qtbug_76847.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>                 # https://codereview.qt-project.org/#/c/172619/
                 patchfiles-append patch-qtconn-for-10.12.diff
 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/aqua/qt55/files/patch-qtconnectivity_qtbug_76847.diff b/aqua/qt55/files/patch-qtconnectivity_qtbug_76847.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..acf80b3fe33
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/aqua/qt55/files/patch-qtconnectivity_qtbug_76847.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,250 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/bluetooth/qbluetoothdevicediscoveryagent_osx.mm src/bluetooth/qbluetoothdevicediscoveryagent_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 18cda39..db982a5 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/bluetooth/qbluetoothdevicediscoveryagent_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/bluetooth/qbluetoothdevicediscoveryagent_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -217,8 +217,8 @@ bool QBluetoothDeviceDiscoveryAgentPrivate::isValid() const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // can fail to initialize some important data-members
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // (and the error is probably not even related to Bluetooth at all)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // - say, allocation error - this is what meant here by valid/invalid.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    return hostController && [hostController powerState] == kBluetoothHCIPowerStateON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-           && inquiry && inquiryLE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return hostController.data() && [hostController powerState] == kBluetoothHCIPowerStateON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++           && inquiry.data() && inquiryLE.data();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool QBluetoothDeviceDiscoveryAgentPrivate::isActive() const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -427,7 +427,7 @@ void QBluetoothDeviceDiscoveryAgentPrivate::setError(QBluetoothDeviceDiscoveryAg
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void QBluetoothDeviceDiscoveryAgentPrivate::checkLETimeout()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Q_ASSERT_X(agentState == LEScan, Q_FUNC_INFO, "invalid agent state");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    Q_ASSERT_X(inquiryLE, Q_FUNC_INFO, "LE device inquiry is nil");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    Q_ASSERT_X(inquiryLE.data(), Q_FUNC_INFO, "LE device inquiry is nil");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     const int timeout = [LEDeviceInquiryObjC inquiryLength];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Q_ASSERT(timeout > 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/bluetooth/qbluetoothlocaldevice_osx.mm src/bluetooth/qbluetoothlocaldevice_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 24cc2bb..f204774 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/bluetooth/qbluetoothlocaldevice_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/bluetooth/qbluetoothlocaldevice_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -147,7 +147,7 @@ QBluetoothLocalDevicePrivate::QBluetoothLocalDevicePrivate(QBluetoothLocalDevice
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool QBluetoothLocalDevicePrivate::isValid() const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    return hostController;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return hostController.data();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void QBluetoothLocalDevicePrivate::requestPairing(const QBluetoothAddress &address, Pairing pairing)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/bluetooth/qbluetoothserver_osx.mm src/bluetooth/qbluetoothserver_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 99fcf58..352c793 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/bluetooth/qbluetoothserver_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/bluetooth/qbluetoothserver_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -114,7 +114,7 @@ bool QBluetoothServerPrivate::startListener(quint16 realPort)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (!listener)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (!listener.data())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         listener.reset([[ObjCListener alloc] initWithListener:this]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     bool result = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -136,7 +136,7 @@ void QBluetoothServerPrivate::stopListener()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void QBluetoothServerPrivate::openNotify(IOBluetoothRFCOMMChannel *channel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    Q_ASSERT_X(listener, Q_FUNC_INFO, "invalid listener (nil)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    Q_ASSERT_X(listener.data(), Q_FUNC_INFO, "invalid listener (nil)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Q_ASSERT_X(channel, Q_FUNC_INFO, "invalid channel (nil)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Q_ASSERT_X(q_ptr, Q_FUNC_INFO, "invalid q_ptr (null)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -148,7 +148,7 @@ void QBluetoothServerPrivate::openNotify(IOBluetoothRFCOMMChannel *channel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void QBluetoothServerPrivate::openNotify(IOBluetoothL2CAPChannel *channel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    Q_ASSERT_X(listener, Q_FUNC_INFO, "invalid listener (nil)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    Q_ASSERT_X(listener.data(), Q_FUNC_INFO, "invalid listener (nil)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Q_ASSERT_X(channel, Q_FUNC_INFO, "invalid channel (nil)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Q_ASSERT_X(q_ptr, Q_FUNC_INFO, "invalid q_ptr (null)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -285,7 +285,7 @@ bool QBluetoothServer::listen(const QBluetoothAddress &address, quint16 port)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     typedef QBluetoothServerPrivate::ObjCListener ObjCListener;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (d_ptr->listener) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (d_ptr->listener.data()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         qCWarning(QT_BT_OSX) << Q_FUNC_INFO << "already in listen mode, "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                 "close server first";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/bluetooth/qbluetoothserviceinfo_osx.mm src/bluetooth/qbluetoothserviceinfo_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ee19f1d..f540b1f 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/bluetooth/qbluetoothserviceinfo_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/bluetooth/qbluetoothserviceinfo_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -239,7 +239,7 @@ bool QBluetoothServiceInfoPrivate::unregisterService()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (!registered)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    Q_ASSERT_X(serviceRecord, Q_FUNC_INFO, "service registered, but serviceRecord is nil");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    Q_ASSERT_X(serviceRecord.data(), Q_FUNC_INFO, "service registered, but serviceRecord is nil");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if QT_OSX_PLATFORM_SDK_EQUAL_OR_ABOVE(__MAC_10_9)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (QSysInfo::MacintoshVersion >= QSysInfo::MV_10_9) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/bluetooth/qbluetoothsocket_osx.mm src/bluetooth/qbluetoothsocket_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index aa99455..c6ccde8 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/bluetooth/qbluetoothsocket_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/bluetooth/qbluetoothsocket_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -97,13 +97,13 @@ void QBluetoothSocketPrivate::connectToService(const QBluetoothAddress &address,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (socketType == QBluetoothServiceInfo::RfcommProtocol) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         rfcommChannel.reset([[ObjCRFCOMMChannel alloc] initWithDelegate:this]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        if (rfcommChannel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if (rfcommChannel.data())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             status = [rfcommChannel connectAsyncToDevice:address withChannelID:port];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             status = kIOReturnNoMemory;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     } else if (socketType == QBluetoothServiceInfo::L2capProtocol) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         l2capChannel.reset([[ObjCL2CAPChannel alloc] initWithDelegate:this]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        if (l2capChannel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if (l2capChannel.data())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             status = [l2capChannel connectAsyncToDevice:address withPSM:port];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             status = kIOReturnNoMemory;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -177,10 +177,10 @@ QString QBluetoothSocketPrivate::peerName() const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     NSString *nsName = nil;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (socketType == QBluetoothServiceInfo::RfcommProtocol) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        if (rfcommChannel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if (rfcommChannel.data())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             nsName = [rfcommChannel peerName];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     } else if (socketType == QBluetoothServiceInfo::L2capProtocol) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        if (l2capChannel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if (l2capChannel.data())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             nsName = [l2capChannel peerName];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -194,10 +194,10 @@ QBluetoothAddress QBluetoothSocketPrivate::peerAddress() const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     BluetoothDeviceAddress addr = {};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (socketType == QBluetoothServiceInfo::RfcommProtocol) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        if (rfcommChannel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if (rfcommChannel.data())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             addr = [rfcommChannel peerAddress];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     } else if (socketType == QBluetoothServiceInfo::L2capProtocol) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        if (l2capChannel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if (l2capChannel.data())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             addr = [l2capChannel peerAddress];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -207,10 +207,10 @@ QBluetoothAddress QBluetoothSocketPrivate::peerAddress() const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ quint16 QBluetoothSocketPrivate::peerPort() const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (socketType == QBluetoothServiceInfo::RfcommProtocol) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        if (rfcommChannel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if (rfcommChannel.data())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return [rfcommChannel getChannelID];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     } else if (socketType == QBluetoothServiceInfo::L2capProtocol) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        if (l2capChannel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if (l2capChannel.data())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return [l2capChannel getPSM];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -227,7 +227,7 @@ void QBluetoothSocketPrivate::_q_writeNotify()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Q_ASSERT_X(socketType == QBluetoothServiceInfo::L2capProtocol
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                || socketType == QBluetoothServiceInfo::RfcommProtocol,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                Q_FUNC_INFO, "invalid socket type");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    Q_ASSERT_X(l2capChannel || rfcommChannel, Q_FUNC_INFO,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    Q_ASSERT_X(l2capChannel.data() || rfcommChannel.data(), Q_FUNC_INFO,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                "invalid socket (no open channel)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Q_ASSERT_X(q_ptr, Q_FUNC_INFO, "invalid q_ptr (null)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -271,13 +271,13 @@ bool QBluetoothSocketPrivate::setChannel(IOBluetoothRFCOMMChannel *channel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     openMode = QIODevice::ReadWrite;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     rfcommChannel.reset([[ObjCRFCOMMChannel alloc] initWithDelegate:this channel:channel]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (rfcommChannel) {// We do not handle errors, up to an external user.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (rfcommChannel.data()) {// We do not handle errors, up to an external user.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         q_ptr->setOpenMode(QIODevice::ReadWrite);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         state = QBluetoothSocket::ConnectedState;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         socketType = QBluetoothServiceInfo::RfcommProtocol;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    return rfcommChannel;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return rfcommChannel.data();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool QBluetoothSocketPrivate::setChannel(IOBluetoothL2CAPChannel *channel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -295,13 +295,13 @@ bool QBluetoothSocketPrivate::setChannel(IOBluetoothL2CAPChannel *channel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     openMode = QIODevice::ReadWrite;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     l2capChannel.reset([[ObjCL2CAPChannel alloc] initWithDelegate:this channel:channel]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (l2capChannel) {// We do not handle errors, up to an external user.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (l2capChannel.data()) {// We do not handle errors, up to an external user.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         q_ptr->setOpenMode(QIODevice::ReadWrite);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         state = QBluetoothSocket::ConnectedState;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         socketType = QBluetoothServiceInfo::L2capProtocol;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    return l2capChannel;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return l2capChannel.data();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/bluetooth/qbluetoothtransferreply_osx.mm src/bluetooth/qbluetoothtransferreply_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 1b84626..fd55e50 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/bluetooth/qbluetoothtransferreply_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/bluetooth/qbluetoothtransferreply_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -130,13 +130,13 @@ QBluetoothTransferReplyOSXPrivate::~QBluetoothTransferReplyOSXPrivate()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // The OBEX session will be closed then. If
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // somehow IOBluetooth/OBEX still has a reference to our
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // session, it will not call any of delegate's callbacks.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (session)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (session.data())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         [session closeSession];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool QBluetoothTransferReplyOSXPrivate::isActive() const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    return agent || (session && [session hasActiveRequest]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return agent.data() || (session.data() && [session hasActiveRequest]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool QBluetoothTransferReplyOSXPrivate::startOPP(const QBluetoothAddress &device)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -212,7 +212,7 @@ void QBluetoothTransferReplyOSXPrivate::sendConnect(const QBluetoothAddress &dev
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void QBluetoothTransferReplyOSXPrivate::sendPut()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Q_ASSERT_X(inputStream, Q_FUNC_INFO, "invalid input stream (null)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    Q_ASSERT_X(session, Q_FUNC_INFO, "invalid OBEX session (nil)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    Q_ASSERT_X(session.data(), Q_FUNC_INFO, "invalid OBEX session (nil)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Q_ASSERT_X([session isConnected], Q_FUNC_INFO, "not connected");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Q_ASSERT_X(![session hasActiveRequest], Q_FUNC_INFO,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                "session already has an active request");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -262,7 +262,7 @@ void QBluetoothTransferReplyOSXPrivate::OBEXConnectError(OBEXError errorCode, OB
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Q_UNUSED(errorCode)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Q_UNUSED(response)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (session) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (session.data()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         setReplyError(QBluetoothTransferReply::SessionError,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                       QCoreApplication::translate(TRANSFER_REPLY, TR_CONNECT_FAILED));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -277,7 +277,7 @@ void QBluetoothTransferReplyOSXPrivate::OBEXConnectError(OBEXError errorCode, OB
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void QBluetoothTransferReplyOSXPrivate::OBEXConnectSuccess()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // Now that OBEX connect succeeded, we can send an OBEX put request.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (!session) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (!session.data()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         // We're still in OBEXConnect(), it'll take care of next steps.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/bluetooth/qlowenergycontroller_osx.mm src/bluetooth/qlowenergycontroller_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a0b33a9..fa6e32a 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/bluetooth/qlowenergycontroller_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/bluetooth/qlowenergycontroller_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -173,7 +173,7 @@ QLowEnergyControllerPrivateOSX::~QLowEnergyControllerPrivateOSX()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // isValid means only "was able to allocate all resources",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // nothing more.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    return centralManager;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return centralManager.data();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void QLowEnergyControllerPrivateOSX::LEnotSupported()
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/aqua/qt57/Portfile b/aqua/qt57/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index a866dde1988..9586159bcd3 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/aqua/qt57/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/aqua/qt57/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1498,6 +1498,8 @@ foreach {module module_info} [array get modules] {
</span> 
             # special case
             if { ${module} eq "qtconnectivity" } {
<span style='display:block; white-space:pre;background:#e0ffe0;'>+                patchfiles-append patch-qtconnectivity_qtbug_76847.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>                 # see https://bugreports.qt.io/browse/QTBUG-62658
                 patchfiles-append patch-qtconnectivity-sdk10_13.diff
             }
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/aqua/qt57/files/patch-qtconnectivity_qtbug_76847.diff b/aqua/qt57/files/patch-qtconnectivity_qtbug_76847.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..696def63937
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/aqua/qt57/files/patch-qtconnectivity_qtbug_76847.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,281 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/bluetooth/osx/osxbtledeviceinquiry.mm src/bluetooth/osx/osxbtledeviceinquiry.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 4c000a2..d2ff1d4 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/bluetooth/osx/osxbtledeviceinquiry.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/bluetooth/osx/osxbtledeviceinquiry.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -117,7 +117,7 @@ QT_USE_NAMESPACE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ - (void)dealloc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (manager) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (manager.data()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         [manager setDelegate:nil];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if (internalState == InquiryActive)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             [manager stopScan];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/bluetooth/qbluetoothdevicediscoveryagent_osx.mm src/bluetooth/qbluetoothdevicediscoveryagent_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 18cda39..db982a5 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/bluetooth/qbluetoothdevicediscoveryagent_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/bluetooth/qbluetoothdevicediscoveryagent_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -197,7 +197,7 @@ QBluetoothDeviceDiscoveryAgentPrivate::QBluetoothDeviceDiscoveryAgentPrivate(con
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ QBluetoothDeviceDiscoveryAgentPrivate::~QBluetoothDeviceDiscoveryAgentPrivate()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (inquiryLE && agentState != NonActive) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (inquiryLE.data() && agentState != NonActive) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         // We want the LE scan to stop as soon as possible.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if (dispatch_queue_t leQueue = OSXBluetooth::qt_LE_queue()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             // Local variable to be retained ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -215,8 +215,8 @@ bool QBluetoothDeviceDiscoveryAgentPrivate::isValid() const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // can fail to initialize some important data-members
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // (and the error is probably not even related to Bluetooth at all)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // - say, allocation error - this is what meant here by valid/invalid.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    return hostController && [hostController powerState] == kBluetoothHCIPowerStateON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-           && inquiry;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return hostController.data() && [hostController powerState] == kBluetoothHCIPowerStateON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++           && inquiry.data();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool QBluetoothDeviceDiscoveryAgentPrivate::isActive() const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -266,7 +266,7 @@ void QBluetoothDeviceDiscoveryAgentPrivate::startLE()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     inquiryLE.reset([[LEDeviceInquiryObjC alloc] init]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     dispatch_queue_t leQueue(qt_LE_queue());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (!leQueue || !inquiryLE) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (!leQueue || !inquiryLE.data()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         setError(QBluetoothDeviceDiscoveryAgent::UnknownError,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                  QCoreApplication::translate(DEV_DISCOVERY, DD_NOT_STARTED_LE));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         agentState = NonActive;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -442,7 +442,7 @@ void QBluetoothDeviceDiscoveryAgentPrivate::setError(QBluetoothDeviceDiscoveryAg
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void QBluetoothDeviceDiscoveryAgentPrivate::checkLETimeout()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Q_ASSERT_X(agentState == LEScan, Q_FUNC_INFO, "invalid agent state");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    Q_ASSERT_X(inquiryLE, Q_FUNC_INFO, "LE device inquiry is nil");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    Q_ASSERT_X(inquiryLE.data(), Q_FUNC_INFO, "LE device inquiry is nil");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     using namespace OSXBluetooth;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/bluetooth/qbluetoothlocaldevice_osx.mm src/bluetooth/qbluetoothlocaldevice_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 24cc2bb..f204774 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/bluetooth/qbluetoothlocaldevice_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/bluetooth/qbluetoothlocaldevice_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -147,7 +147,7 @@ QBluetoothLocalDevicePrivate::QBluetoothLocalDevicePrivate(QBluetoothLocalDevice
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool QBluetoothLocalDevicePrivate::isValid() const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    return hostController;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return hostController.data();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void QBluetoothLocalDevicePrivate::requestPairing(const QBluetoothAddress &address, Pairing pairing)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/bluetooth/qbluetoothserver_osx.mm src/bluetooth/qbluetoothserver_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 99fcf58..352c793 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/bluetooth/qbluetoothserver_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/bluetooth/qbluetoothserver_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -114,7 +114,7 @@ bool QBluetoothServerPrivate::startListener(quint16 realPort)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (!listener)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (!listener.data())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         listener.reset([[ObjCListener alloc] initWithListener:this]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     bool result = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -136,7 +136,7 @@ void QBluetoothServerPrivate::stopListener()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void QBluetoothServerPrivate::openNotify(IOBluetoothRFCOMMChannel *channel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    Q_ASSERT_X(listener, Q_FUNC_INFO, "invalid listener (nil)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    Q_ASSERT_X(listener.data(), Q_FUNC_INFO, "invalid listener (nil)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Q_ASSERT_X(channel, Q_FUNC_INFO, "invalid channel (nil)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Q_ASSERT_X(q_ptr, Q_FUNC_INFO, "invalid q_ptr (null)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -148,7 +148,7 @@ void QBluetoothServerPrivate::openNotify(IOBluetoothRFCOMMChannel *channel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void QBluetoothServerPrivate::openNotify(IOBluetoothL2CAPChannel *channel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    Q_ASSERT_X(listener, Q_FUNC_INFO, "invalid listener (nil)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    Q_ASSERT_X(listener.data(), Q_FUNC_INFO, "invalid listener (nil)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Q_ASSERT_X(channel, Q_FUNC_INFO, "invalid channel (nil)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Q_ASSERT_X(q_ptr, Q_FUNC_INFO, "invalid q_ptr (null)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -285,7 +285,7 @@ bool QBluetoothServer::listen(const QBluetoothAddress &address, quint16 port)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     typedef QBluetoothServerPrivate::ObjCListener ObjCListener;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (d_ptr->listener) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (d_ptr->listener.data()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         qCWarning(QT_BT_OSX) << Q_FUNC_INFO << "already in listen mode, "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                 "close server first";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/bluetooth/qbluetoothserviceinfo_osx.mm src/bluetooth/qbluetoothserviceinfo_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ee19f1d..f540b1f 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/bluetooth/qbluetoothserviceinfo_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/bluetooth/qbluetoothserviceinfo_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -239,7 +239,7 @@ bool QBluetoothServiceInfoPrivate::unregisterService()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (!registered)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    Q_ASSERT_X(serviceRecord, Q_FUNC_INFO, "service registered, but serviceRecord is nil");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    Q_ASSERT_X(serviceRecord.data(), Q_FUNC_INFO, "service registered, but serviceRecord is nil");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if QT_OSX_PLATFORM_SDK_EQUAL_OR_ABOVE(__MAC_10_9)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (QSysInfo::MacintoshVersion >= QSysInfo::MV_10_9) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/bluetooth/qbluetoothsocket_osx.mm src/bluetooth/qbluetoothsocket_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index aa99455..c6ccde8 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/bluetooth/qbluetoothsocket_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/bluetooth/qbluetoothsocket_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -97,13 +97,13 @@ void QBluetoothSocketPrivate::connectToService(const QBluetoothAddress &address,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (socketType == QBluetoothServiceInfo::RfcommProtocol) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         rfcommChannel.reset([[ObjCRFCOMMChannel alloc] initWithDelegate:this]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        if (rfcommChannel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if (rfcommChannel.data())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             status = [rfcommChannel connectAsyncToDevice:address withChannelID:port];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             status = kIOReturnNoMemory;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     } else if (socketType == QBluetoothServiceInfo::L2capProtocol) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         l2capChannel.reset([[ObjCL2CAPChannel alloc] initWithDelegate:this]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        if (l2capChannel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if (l2capChannel.data())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             status = [l2capChannel connectAsyncToDevice:address withPSM:port];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             status = kIOReturnNoMemory;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -177,10 +177,10 @@ QString QBluetoothSocketPrivate::peerName() const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     NSString *nsName = nil;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (socketType == QBluetoothServiceInfo::RfcommProtocol) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        if (rfcommChannel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if (rfcommChannel.data())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             nsName = [rfcommChannel peerName];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     } else if (socketType == QBluetoothServiceInfo::L2capProtocol) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        if (l2capChannel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if (l2capChannel.data())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             nsName = [l2capChannel peerName];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -194,10 +194,10 @@ QBluetoothAddress QBluetoothSocketPrivate::peerAddress() const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     BluetoothDeviceAddress addr = {};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (socketType == QBluetoothServiceInfo::RfcommProtocol) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        if (rfcommChannel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if (rfcommChannel.data())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             addr = [rfcommChannel peerAddress];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     } else if (socketType == QBluetoothServiceInfo::L2capProtocol) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        if (l2capChannel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if (l2capChannel.data())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             addr = [l2capChannel peerAddress];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -207,10 +207,10 @@ QBluetoothAddress QBluetoothSocketPrivate::peerAddress() const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ quint16 QBluetoothSocketPrivate::peerPort() const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (socketType == QBluetoothServiceInfo::RfcommProtocol) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        if (rfcommChannel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if (rfcommChannel.data())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return [rfcommChannel getChannelID];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     } else if (socketType == QBluetoothServiceInfo::L2capProtocol) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        if (l2capChannel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if (l2capChannel.data())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return [l2capChannel getPSM];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -227,7 +227,7 @@ void QBluetoothSocketPrivate::_q_writeNotify()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Q_ASSERT_X(socketType == QBluetoothServiceInfo::L2capProtocol
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                || socketType == QBluetoothServiceInfo::RfcommProtocol,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                Q_FUNC_INFO, "invalid socket type");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    Q_ASSERT_X(l2capChannel || rfcommChannel, Q_FUNC_INFO,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    Q_ASSERT_X(l2capChannel.data() || rfcommChannel.data(), Q_FUNC_INFO,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                "invalid socket (no open channel)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Q_ASSERT_X(q_ptr, Q_FUNC_INFO, "invalid q_ptr (null)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -271,13 +271,13 @@ bool QBluetoothSocketPrivate::setChannel(IOBluetoothRFCOMMChannel *channel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     openMode = QIODevice::ReadWrite;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     rfcommChannel.reset([[ObjCRFCOMMChannel alloc] initWithDelegate:this channel:channel]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (rfcommChannel) {// We do not handle errors, up to an external user.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (rfcommChannel.data()) {// We do not handle errors, up to an external user.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         q_ptr->setOpenMode(QIODevice::ReadWrite);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         state = QBluetoothSocket::ConnectedState;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         socketType = QBluetoothServiceInfo::RfcommProtocol;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    return rfcommChannel;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return rfcommChannel.data();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool QBluetoothSocketPrivate::setChannel(IOBluetoothL2CAPChannel *channel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -295,13 +295,13 @@ bool QBluetoothSocketPrivate::setChannel(IOBluetoothL2CAPChannel *channel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     openMode = QIODevice::ReadWrite;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     l2capChannel.reset([[ObjCL2CAPChannel alloc] initWithDelegate:this channel:channel]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (l2capChannel) {// We do not handle errors, up to an external user.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (l2capChannel.data()) {// We do not handle errors, up to an external user.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         q_ptr->setOpenMode(QIODevice::ReadWrite);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         state = QBluetoothSocket::ConnectedState;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         socketType = QBluetoothServiceInfo::L2capProtocol;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    return l2capChannel;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return l2capChannel.data();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/bluetooth/qbluetoothtransferreply_osx.mm src/bluetooth/qbluetoothtransferreply_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 1b84626..fd55e50 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/bluetooth/qbluetoothtransferreply_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/bluetooth/qbluetoothtransferreply_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -130,13 +130,13 @@ QBluetoothTransferReplyOSXPrivate::~QBluetoothTransferReplyOSXPrivate()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // The OBEX session will be closed then. If
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // somehow IOBluetooth/OBEX still has a reference to our
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // session, it will not call any of delegate's callbacks.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (session)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (session.data())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         [session closeSession];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool QBluetoothTransferReplyOSXPrivate::isActive() const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    return agent || (session && [session hasActiveRequest]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return agent.data() || (session.data() && [session hasActiveRequest]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool QBluetoothTransferReplyOSXPrivate::startOPP(const QBluetoothAddress &device)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -212,7 +212,7 @@ void QBluetoothTransferReplyOSXPrivate::sendConnect(const QBluetoothAddress &dev
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void QBluetoothTransferReplyOSXPrivate::sendPut()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Q_ASSERT_X(inputStream, Q_FUNC_INFO, "invalid input stream (null)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    Q_ASSERT_X(session, Q_FUNC_INFO, "invalid OBEX session (nil)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    Q_ASSERT_X(session.data(), Q_FUNC_INFO, "invalid OBEX session (nil)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Q_ASSERT_X([session isConnected], Q_FUNC_INFO, "not connected");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Q_ASSERT_X(![session hasActiveRequest], Q_FUNC_INFO,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                "session already has an active request");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -262,7 +262,7 @@ void QBluetoothTransferReplyOSXPrivate::OBEXConnectError(OBEXError errorCode, OB
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Q_UNUSED(errorCode)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Q_UNUSED(response)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (session) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (session.data()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         setReplyError(QBluetoothTransferReply::SessionError,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                       QCoreApplication::translate(TRANSFER_REPLY, TR_CONNECT_FAILED));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -277,7 +277,7 @@ void QBluetoothTransferReplyOSXPrivate::OBEXConnectError(OBEXError errorCode, OB
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void QBluetoothTransferReplyOSXPrivate::OBEXConnectSuccess()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // Now that OBEX connect succeeded, we can send an OBEX put request.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (!session) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (!session.data()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         // We're still in OBEXConnect(), it'll take care of next steps.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/bluetooth/qlowenergycontroller_osx.mm src/bluetooth/qlowenergycontroller_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a0b33a9..fa6e32a 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/bluetooth/qlowenergycontroller_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/bluetooth/qlowenergycontroller_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -202,7 +202,7 @@ QLowEnergyControllerPrivateOSX::~QLowEnergyControllerPrivateOSX()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool QLowEnergyControllerPrivateOSX::isValid() const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    return centralManager;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return centralManager.data();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void QLowEnergyControllerPrivateOSX::_q_connected()
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/aqua/qt58/Portfile b/aqua/qt58/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index a7c39b16773..b92c36b75ee 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/aqua/qt58/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/aqua/qt58/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1491,6 +1491,8 @@ foreach {module module_info} [array get modules] {
</span> 
             # special case
             if { ${module} eq "qtconnectivity" } {
<span style='display:block; white-space:pre;background:#e0ffe0;'>+                patchfiles-append patch-qtconnectivity_qtbug_76847.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>                 # see https://bugreports.qt.io/browse/QTBUG-62658
                 patchfiles-append patch-qtconnectivity-sdk10_13.diff
             }
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/aqua/qt58/files/patch-qtconnectivity_qtbug_76847.diff b/aqua/qt58/files/patch-qtconnectivity_qtbug_76847.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..696def63937
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/aqua/qt58/files/patch-qtconnectivity_qtbug_76847.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,281 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/bluetooth/osx/osxbtledeviceinquiry.mm src/bluetooth/osx/osxbtledeviceinquiry.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 4c000a2..d2ff1d4 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/bluetooth/osx/osxbtledeviceinquiry.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/bluetooth/osx/osxbtledeviceinquiry.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -117,7 +117,7 @@ QT_USE_NAMESPACE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ - (void)dealloc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (manager) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (manager.data()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         [manager setDelegate:nil];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if (internalState == InquiryActive)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             [manager stopScan];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/bluetooth/qbluetoothdevicediscoveryagent_osx.mm src/bluetooth/qbluetoothdevicediscoveryagent_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 18cda39..db982a5 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/bluetooth/qbluetoothdevicediscoveryagent_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/bluetooth/qbluetoothdevicediscoveryagent_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -197,7 +197,7 @@ QBluetoothDeviceDiscoveryAgentPrivate::QBluetoothDeviceDiscoveryAgentPrivate(con
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ QBluetoothDeviceDiscoveryAgentPrivate::~QBluetoothDeviceDiscoveryAgentPrivate()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (inquiryLE && agentState != NonActive) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (inquiryLE.data() && agentState != NonActive) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         // We want the LE scan to stop as soon as possible.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if (dispatch_queue_t leQueue = OSXBluetooth::qt_LE_queue()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             // Local variable to be retained ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -215,8 +215,8 @@ bool QBluetoothDeviceDiscoveryAgentPrivate::isValid() const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // can fail to initialize some important data-members
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // (and the error is probably not even related to Bluetooth at all)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // - say, allocation error - this is what meant here by valid/invalid.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    return hostController && [hostController powerState] == kBluetoothHCIPowerStateON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-           && inquiry;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return hostController.data() && [hostController powerState] == kBluetoothHCIPowerStateON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++           && inquiry.data();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool QBluetoothDeviceDiscoveryAgentPrivate::isActive() const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -266,7 +266,7 @@ void QBluetoothDeviceDiscoveryAgentPrivate::startLE()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     inquiryLE.reset([[LEDeviceInquiryObjC alloc] init]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     dispatch_queue_t leQueue(qt_LE_queue());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (!leQueue || !inquiryLE) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (!leQueue || !inquiryLE.data()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         setError(QBluetoothDeviceDiscoveryAgent::UnknownError,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                  QCoreApplication::translate(DEV_DISCOVERY, DD_NOT_STARTED_LE));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         agentState = NonActive;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -442,7 +442,7 @@ void QBluetoothDeviceDiscoveryAgentPrivate::setError(QBluetoothDeviceDiscoveryAg
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void QBluetoothDeviceDiscoveryAgentPrivate::checkLETimeout()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Q_ASSERT_X(agentState == LEScan, Q_FUNC_INFO, "invalid agent state");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    Q_ASSERT_X(inquiryLE, Q_FUNC_INFO, "LE device inquiry is nil");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    Q_ASSERT_X(inquiryLE.data(), Q_FUNC_INFO, "LE device inquiry is nil");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     using namespace OSXBluetooth;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/bluetooth/qbluetoothlocaldevice_osx.mm src/bluetooth/qbluetoothlocaldevice_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 24cc2bb..f204774 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/bluetooth/qbluetoothlocaldevice_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/bluetooth/qbluetoothlocaldevice_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -147,7 +147,7 @@ QBluetoothLocalDevicePrivate::QBluetoothLocalDevicePrivate(QBluetoothLocalDevice
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool QBluetoothLocalDevicePrivate::isValid() const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    return hostController;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return hostController.data();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void QBluetoothLocalDevicePrivate::requestPairing(const QBluetoothAddress &address, Pairing pairing)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/bluetooth/qbluetoothserver_osx.mm src/bluetooth/qbluetoothserver_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 99fcf58..352c793 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/bluetooth/qbluetoothserver_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/bluetooth/qbluetoothserver_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -114,7 +114,7 @@ bool QBluetoothServerPrivate::startListener(quint16 realPort)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (!listener)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (!listener.data())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         listener.reset([[ObjCListener alloc] initWithListener:this]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     bool result = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -136,7 +136,7 @@ void QBluetoothServerPrivate::stopListener()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void QBluetoothServerPrivate::openNotify(IOBluetoothRFCOMMChannel *channel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    Q_ASSERT_X(listener, Q_FUNC_INFO, "invalid listener (nil)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    Q_ASSERT_X(listener.data(), Q_FUNC_INFO, "invalid listener (nil)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Q_ASSERT_X(channel, Q_FUNC_INFO, "invalid channel (nil)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Q_ASSERT_X(q_ptr, Q_FUNC_INFO, "invalid q_ptr (null)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -148,7 +148,7 @@ void QBluetoothServerPrivate::openNotify(IOBluetoothRFCOMMChannel *channel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void QBluetoothServerPrivate::openNotify(IOBluetoothL2CAPChannel *channel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    Q_ASSERT_X(listener, Q_FUNC_INFO, "invalid listener (nil)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    Q_ASSERT_X(listener.data(), Q_FUNC_INFO, "invalid listener (nil)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Q_ASSERT_X(channel, Q_FUNC_INFO, "invalid channel (nil)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Q_ASSERT_X(q_ptr, Q_FUNC_INFO, "invalid q_ptr (null)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -285,7 +285,7 @@ bool QBluetoothServer::listen(const QBluetoothAddress &address, quint16 port)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     typedef QBluetoothServerPrivate::ObjCListener ObjCListener;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (d_ptr->listener) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (d_ptr->listener.data()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         qCWarning(QT_BT_OSX) << Q_FUNC_INFO << "already in listen mode, "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                 "close server first";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/bluetooth/qbluetoothserviceinfo_osx.mm src/bluetooth/qbluetoothserviceinfo_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ee19f1d..f540b1f 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/bluetooth/qbluetoothserviceinfo_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/bluetooth/qbluetoothserviceinfo_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -239,7 +239,7 @@ bool QBluetoothServiceInfoPrivate::unregisterService()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (!registered)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    Q_ASSERT_X(serviceRecord, Q_FUNC_INFO, "service registered, but serviceRecord is nil");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    Q_ASSERT_X(serviceRecord.data(), Q_FUNC_INFO, "service registered, but serviceRecord is nil");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if QT_OSX_PLATFORM_SDK_EQUAL_OR_ABOVE(__MAC_10_9)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (QSysInfo::MacintoshVersion >= QSysInfo::MV_10_9) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/bluetooth/qbluetoothsocket_osx.mm src/bluetooth/qbluetoothsocket_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index aa99455..c6ccde8 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/bluetooth/qbluetoothsocket_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/bluetooth/qbluetoothsocket_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -97,13 +97,13 @@ void QBluetoothSocketPrivate::connectToService(const QBluetoothAddress &address,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (socketType == QBluetoothServiceInfo::RfcommProtocol) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         rfcommChannel.reset([[ObjCRFCOMMChannel alloc] initWithDelegate:this]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        if (rfcommChannel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if (rfcommChannel.data())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             status = [rfcommChannel connectAsyncToDevice:address withChannelID:port];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             status = kIOReturnNoMemory;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     } else if (socketType == QBluetoothServiceInfo::L2capProtocol) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         l2capChannel.reset([[ObjCL2CAPChannel alloc] initWithDelegate:this]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        if (l2capChannel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if (l2capChannel.data())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             status = [l2capChannel connectAsyncToDevice:address withPSM:port];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             status = kIOReturnNoMemory;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -177,10 +177,10 @@ QString QBluetoothSocketPrivate::peerName() const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     NSString *nsName = nil;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (socketType == QBluetoothServiceInfo::RfcommProtocol) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        if (rfcommChannel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if (rfcommChannel.data())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             nsName = [rfcommChannel peerName];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     } else if (socketType == QBluetoothServiceInfo::L2capProtocol) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        if (l2capChannel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if (l2capChannel.data())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             nsName = [l2capChannel peerName];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -194,10 +194,10 @@ QBluetoothAddress QBluetoothSocketPrivate::peerAddress() const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     BluetoothDeviceAddress addr = {};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (socketType == QBluetoothServiceInfo::RfcommProtocol) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        if (rfcommChannel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if (rfcommChannel.data())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             addr = [rfcommChannel peerAddress];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     } else if (socketType == QBluetoothServiceInfo::L2capProtocol) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        if (l2capChannel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if (l2capChannel.data())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             addr = [l2capChannel peerAddress];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -207,10 +207,10 @@ QBluetoothAddress QBluetoothSocketPrivate::peerAddress() const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ quint16 QBluetoothSocketPrivate::peerPort() const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (socketType == QBluetoothServiceInfo::RfcommProtocol) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        if (rfcommChannel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if (rfcommChannel.data())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return [rfcommChannel getChannelID];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     } else if (socketType == QBluetoothServiceInfo::L2capProtocol) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        if (l2capChannel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if (l2capChannel.data())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return [l2capChannel getPSM];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -227,7 +227,7 @@ void QBluetoothSocketPrivate::_q_writeNotify()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Q_ASSERT_X(socketType == QBluetoothServiceInfo::L2capProtocol
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                || socketType == QBluetoothServiceInfo::RfcommProtocol,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                Q_FUNC_INFO, "invalid socket type");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    Q_ASSERT_X(l2capChannel || rfcommChannel, Q_FUNC_INFO,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    Q_ASSERT_X(l2capChannel.data() || rfcommChannel.data(), Q_FUNC_INFO,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                "invalid socket (no open channel)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Q_ASSERT_X(q_ptr, Q_FUNC_INFO, "invalid q_ptr (null)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -271,13 +271,13 @@ bool QBluetoothSocketPrivate::setChannel(IOBluetoothRFCOMMChannel *channel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     openMode = QIODevice::ReadWrite;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     rfcommChannel.reset([[ObjCRFCOMMChannel alloc] initWithDelegate:this channel:channel]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (rfcommChannel) {// We do not handle errors, up to an external user.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (rfcommChannel.data()) {// We do not handle errors, up to an external user.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         q_ptr->setOpenMode(QIODevice::ReadWrite);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         state = QBluetoothSocket::ConnectedState;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         socketType = QBluetoothServiceInfo::RfcommProtocol;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    return rfcommChannel;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return rfcommChannel.data();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool QBluetoothSocketPrivate::setChannel(IOBluetoothL2CAPChannel *channel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -295,13 +295,13 @@ bool QBluetoothSocketPrivate::setChannel(IOBluetoothL2CAPChannel *channel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     openMode = QIODevice::ReadWrite;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     l2capChannel.reset([[ObjCL2CAPChannel alloc] initWithDelegate:this channel:channel]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (l2capChannel) {// We do not handle errors, up to an external user.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (l2capChannel.data()) {// We do not handle errors, up to an external user.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         q_ptr->setOpenMode(QIODevice::ReadWrite);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         state = QBluetoothSocket::ConnectedState;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         socketType = QBluetoothServiceInfo::L2capProtocol;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    return l2capChannel;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return l2capChannel.data();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/bluetooth/qbluetoothtransferreply_osx.mm src/bluetooth/qbluetoothtransferreply_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 1b84626..fd55e50 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/bluetooth/qbluetoothtransferreply_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/bluetooth/qbluetoothtransferreply_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -130,13 +130,13 @@ QBluetoothTransferReplyOSXPrivate::~QBluetoothTransferReplyOSXPrivate()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // The OBEX session will be closed then. If
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // somehow IOBluetooth/OBEX still has a reference to our
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // session, it will not call any of delegate's callbacks.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (session)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (session.data())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         [session closeSession];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool QBluetoothTransferReplyOSXPrivate::isActive() const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    return agent || (session && [session hasActiveRequest]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return agent.data() || (session.data() && [session hasActiveRequest]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool QBluetoothTransferReplyOSXPrivate::startOPP(const QBluetoothAddress &device)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -212,7 +212,7 @@ void QBluetoothTransferReplyOSXPrivate::sendConnect(const QBluetoothAddress &dev
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void QBluetoothTransferReplyOSXPrivate::sendPut()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Q_ASSERT_X(inputStream, Q_FUNC_INFO, "invalid input stream (null)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    Q_ASSERT_X(session, Q_FUNC_INFO, "invalid OBEX session (nil)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    Q_ASSERT_X(session.data(), Q_FUNC_INFO, "invalid OBEX session (nil)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Q_ASSERT_X([session isConnected], Q_FUNC_INFO, "not connected");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Q_ASSERT_X(![session hasActiveRequest], Q_FUNC_INFO,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                "session already has an active request");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -262,7 +262,7 @@ void QBluetoothTransferReplyOSXPrivate::OBEXConnectError(OBEXError errorCode, OB
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Q_UNUSED(errorCode)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Q_UNUSED(response)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (session) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (session.data()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         setReplyError(QBluetoothTransferReply::SessionError,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                       QCoreApplication::translate(TRANSFER_REPLY, TR_CONNECT_FAILED));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -277,7 +277,7 @@ void QBluetoothTransferReplyOSXPrivate::OBEXConnectError(OBEXError errorCode, OB
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void QBluetoothTransferReplyOSXPrivate::OBEXConnectSuccess()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // Now that OBEX connect succeeded, we can send an OBEX put request.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (!session) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (!session.data()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         // We're still in OBEXConnect(), it'll take care of next steps.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/bluetooth/qlowenergycontroller_osx.mm src/bluetooth/qlowenergycontroller_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a0b33a9..fa6e32a 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/bluetooth/qlowenergycontroller_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/bluetooth/qlowenergycontroller_osx.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -202,7 +202,7 @@ QLowEnergyControllerPrivateOSX::~QLowEnergyControllerPrivateOSX()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool QLowEnergyControllerPrivateOSX::isValid() const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    return centralManager;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return centralManager.data();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void QLowEnergyControllerPrivateOSX::_q_connected()
</span></pre><pre style='margin:0'>

</pre>