Store OmapiTransport as a shared_ptr
OmapiTransport needs to be stored as a shared_ptr so it safely handle
its DeathRecipient callbacks.
Test: cd hardware/nxp/ && mm
Bug: 346416142
Change-Id: I2e802819614b547e8bf096a446ed48118a795e27
diff --git a/libese_weaver/inc/TransportFactory.h b/libese_weaver/inc/TransportFactory.h
index 416f6d5..9cc0036 100644
--- a/libese_weaver/inc/TransportFactory.h
+++ b/libese_weaver/inc/TransportFactory.h
@@ -59,14 +59,14 @@
TransportFactory(bool isEmulator, const std::vector<uint8_t>& mAppletAID) {
if (!isEmulator) {
#ifdef OMAPI_TRANSPORT
- mTransport = std::unique_ptr<OmapiTransport>(new OmapiTransport(mAppletAID));
+ mTransport = OmapiTransport::make(mAppletAID);
#else
- mTransport = std::unique_ptr<HalToHalTransport>(new HalToHalTransport(mAppletAID));
+ mTransport = std::shared_ptr<HalToHalTransport>(new HalToHalTransport(mAppletAID));
#endif
}
#ifndef NXP_EXTNS
else
- mTransport = std::unique_ptr<SocketTransport>(new SocketTransport(mAppletAID));
+ mTransport = std::shared_ptr<SocketTransport>(new SocketTransport(mAppletAID));
#endif
}
@@ -113,7 +113,7 @@
/**
* Holds the instance of either OmapiTransport class or SocketTransport class.
*/
- std::unique_ptr<ITransport> mTransport;
+ std::shared_ptr<ITransport> mTransport;
};
} // namespace se_transport