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.cc9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/components/transport_manager/src/transport_manager_impl.cc b/src/components/transport_manager/src/transport_manager_impl.cc
index f7b44d255b..83419a50c9 100644
--- a/src/components/transport_manager/src/transport_manager_impl.cc
+++ b/src/components/transport_manager/src/transport_manager_impl.cc
@@ -435,16 +435,17 @@ int TransportManagerImpl::AddTransportAdapter(
return E_ADAPTER_EXISTS;
}
- transport_adapter_listeners_[transport_adapter] =
+ auto listener =
new TransportAdapterListenerImpl(this, transport_adapter);
- transport_adapter->AddListener(
- transport_adapter_listeners_[transport_adapter]);
+
+ transport_adapter->AddListener(listener);
if (transport_adapter->IsInitialised() ||
transport_adapter->Init() == TransportAdapter::OK) {
+ transport_adapter_listeners_[transport_adapter] = listener;
transport_adapters_.push_back(transport_adapter);
} else {
- transport_adapter_listeners_.erase(transport_adapter);
+ delete listener;
delete transport_adapter;
}
LOG4CXX_TRACE(logger_, "exit with E_SUCCESS");