diff options
Diffstat (limited to 'src/components/transport_manager/src/transport_manager_impl.cc')
-rw-r--r-- | src/components/transport_manager/src/transport_manager_impl.cc | 12 |
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"); |