summaryrefslogtreecommitdiff
path: root/src/components/transport_manager/src/transport_manager_impl.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/transport_manager/src/transport_manager_impl.cc')
-rw-r--r--src/components/transport_manager/src/transport_manager_impl.cc12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/components/transport_manager/src/transport_manager_impl.cc b/src/components/transport_manager/src/transport_manager_impl.cc
index 03e6bd58f6..83419a50c9 100644
--- a/src/components/transport_manager/src/transport_manager_impl.cc
+++ b/src/components/transport_manager/src/transport_manager_impl.cc
@@ -435,15 +435,17 @@ int TransportManagerImpl::AddTransportAdapter(
return E_ADAPTER_EXISTS;
}
+ auto listener =
+ new TransportAdapterListenerImpl(this, transport_adapter);
+
+ transport_adapter->AddListener(listener);
+
if (transport_adapter->IsInitialised() ||
transport_adapter->Init() == TransportAdapter::OK) {
- transport_adapter_listeners_[transport_adapter] =
- new TransportAdapterListenerImpl(this, transport_adapter);
- transport_adapter->AddListener(
- transport_adapter_listeners_[transport_adapter]);
-
+ transport_adapter_listeners_[transport_adapter] = listener;
transport_adapters_.push_back(transport_adapter);
} else {
+ delete listener;
delete transport_adapter;
}
LOG4CXX_TRACE(logger_, "exit with E_SUCCESS");