summaryrefslogtreecommitdiff
path: root/cpp
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2019-10-01 18:37:05 +0200
committerJose <jose@zeroc.com>2019-10-01 18:37:46 +0200
commit0ab79cdca55bcf8aa7bce663e8edb64b59e693fd (patch)
tree608c6e12bd6a18846f199fba6cd58ad6bd8eb298 /cpp
parentAdd Info.plist to test bundles required for signing (diff)
downloadice-0ab79cdca55bcf8aa7bce663e8edb64b59e693fd.tar.bz2
ice-0ab79cdca55bcf8aa7bce663e8edb64b59e693fd.tar.xz
ice-0ab79cdca55bcf8aa7bce663e8edb64b59e693fd.zip
Allow building IceIAP with ARC
Diffstat (limited to 'cpp')
-rw-r--r--cpp/src/IceIAP/Connector.mm9
-rw-r--r--cpp/src/IceIAP/EndpointI.mm2
-rw-r--r--cpp/src/IceIAP/Transceiver.mm8
3 files changed, 19 insertions, 0 deletions
diff --git a/cpp/src/IceIAP/Connector.mm b/cpp/src/IceIAP/Connector.mm
index 4db075443f5..bb77df81da2 100644
--- a/cpp/src/IceIAP/Connector.mm
+++ b/cpp/src/IceIAP/Connector.mm
@@ -22,7 +22,9 @@ IceObjC::iAPConnector::connect()
throw Ice::ConnectFailedException(__FILE__, __LINE__, 0);
}
TransceiverPtr transceiver = new iAPTransceiver(_instance, session);
+#if defined(__clang__) && !__has_feature(objc_arc)
[session release];
+#endif
return transceiver;
}
@@ -132,13 +134,20 @@ IceObjC::iAPConnector::iAPConnector(const ProtocolInstancePtr& instance,
_instance(instance),
_timeout(timeout),
_connectionId(connectionId),
+#if defined(__clang__) && !__has_feature(objc_arc)
_protocol([protocol retain]),
_accessory([accessory retain])
+#else
+ _protocol(protocol),
+ _accessory(accessory)
+#endif
{
}
IceObjC::iAPConnector::~iAPConnector()
{
+#if defined(__clang__) && !__has_feature(objc_arc)
[_protocol release];
[_accessory release];
+#endif
}
diff --git a/cpp/src/IceIAP/EndpointI.mm b/cpp/src/IceIAP/EndpointI.mm
index 82d2897e89b..b9f2f6ef05a 100644
--- a/cpp/src/IceIAP/EndpointI.mm
+++ b/cpp/src/IceIAP/EndpointI.mm
@@ -270,7 +270,9 @@ IceObjC::iAPEndpointI::connectors_async(Ice::EndpointSelectionType /*selType*/,
}
c.push_back(new iAPConnector(_instance, _timeout, _connectionId, protocol, accessory));
}
+#if defined(__clang__) && !__has_feature(objc_arc)
[protocol release];
+#endif
if(c.empty())
{
throw Ice::ConnectFailedException(__FILE__, __LINE__, 0);
diff --git a/cpp/src/IceIAP/Transceiver.mm b/cpp/src/IceIAP/Transceiver.mm
index 2ca9931e407..360cff2078b 100644
--- a/cpp/src/IceIAP/Transceiver.mm
+++ b/cpp/src/IceIAP/Transceiver.mm
@@ -205,7 +205,9 @@ IceObjC::iAPTransceiver::closeStreams()
[_writeStream setDelegate:nil];
[_readStream setDelegate:nil];
+#if defined(__clang__) && !__has_feature(objc_arc)
[_callback release];
+#endif
_callback = 0;
[_writeStream close];
@@ -383,7 +385,11 @@ IceObjC::iAPTransceiver::setBufferSize(int, int)
IceObjC::iAPTransceiver::iAPTransceiver(const ProtocolInstancePtr& instance, EASession* session) :
StreamNativeInfo(INVALID_SOCKET),
_instance(instance),
+#if defined(__clang__) && !__has_feature(objc_arc)
_session([session retain]),
+#else
+ _session(session),
+#endif
_readStream([session inputStream]),
_writeStream([session outputStream]),
_readStreamRegistered(false),
@@ -399,7 +405,9 @@ IceObjC::iAPTransceiver::iAPTransceiver(const ProtocolInstancePtr& instance, EAS
IceObjC::iAPTransceiver::~iAPTransceiver()
{
+#if defined(__clang__) && !__has_feature(objc_arc)
[_session release];
+#endif
}
void