<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>