diff options
author | Joshua Duong <joshuaduong@google.com> | 2019-12-04 08:06:54 -0800 |
---|---|---|
committer | Joshua Duong <joshuaduong@google.com> | 2019-12-04 10:39:14 -0800 |
commit | e951f2a6405ec220c428ca2a7f318b7f078d44db (patch) | |
tree | 6dd996920bf744a837333773cf337917569768bb /broadcastradio | |
parent | bff764d944c1bd6d5d834027bd22dff303fcb309 (diff) |
Fix stack-pointer constructed sp<>.
Seems like the hidl derived objects must be heap allocated.
Bug: 145662746
Test: Does not boot loop.
Change-Id: I55ff94c12d4eb5fcfd680370736db979ddd0b67c
Diffstat (limited to 'broadcastradio')
-rw-r--r-- | broadcastradio/1.1/default/service.cpp | 5 | ||||
-rw-r--r-- | broadcastradio/2.0/default/service.cpp | 9 |
2 files changed, 8 insertions, 6 deletions
diff --git a/broadcastradio/1.1/default/service.cpp b/broadcastradio/1.1/default/service.cpp index f8af0b78cb..29dc76fb10 100644 --- a/broadcastradio/1.1/default/service.cpp +++ b/broadcastradio/1.1/default/service.cpp @@ -20,6 +20,7 @@ #include "BroadcastRadioFactory.h" +using android::sp; using android::hardware::configureRpcThreadpool; using android::hardware::joinRpcThreadpool; using android::hardware::broadcastradio::V1_1::implementation::BroadcastRadioFactory; @@ -27,8 +28,8 @@ using android::hardware::broadcastradio::V1_1::implementation::BroadcastRadioFac int main(int /* argc */, char** /* argv */) { configureRpcThreadpool(4, true); - BroadcastRadioFactory broadcastRadioFactory; - auto status = broadcastRadioFactory.registerAsService(); + sp<BroadcastRadioFactory> broadcastRadioFactory(new BroadcastRadioFactory()); + auto status = broadcastRadioFactory->registerAsService(); CHECK_EQ(status, android::OK) << "Failed to register Broadcast Radio HAL implementation"; joinRpcThreadpool(); diff --git a/broadcastradio/2.0/default/service.cpp b/broadcastradio/2.0/default/service.cpp index 349aba28e0..bd746fd2f8 100644 --- a/broadcastradio/2.0/default/service.cpp +++ b/broadcastradio/2.0/default/service.cpp @@ -19,6 +19,7 @@ #include "BroadcastRadio.h" #include "VirtualRadio.h" +using android::sp; using android::hardware::configureRpcThreadpool; using android::hardware::joinRpcThreadpool; using android::hardware::broadcastradio::V2_0::implementation::BroadcastRadio; @@ -30,13 +31,13 @@ int main() { android::base::SetMinimumLogSeverity(android::base::VERBOSE); configureRpcThreadpool(4, true); - BroadcastRadio broadcastRadio(gAmFmRadio); - auto amFmStatus = broadcastRadio.registerAsService("amfm"); + sp<BroadcastRadio> broadcastRadio(new BroadcastRadio(gAmFmRadio)); + auto amFmStatus = broadcastRadio->registerAsService("amfm"); CHECK_EQ(amFmStatus, android::OK) << "Failed to register Broadcast Radio AM/FM HAL implementation"; - BroadcastRadio dabRadio(gDabRadio); - auto dabStatus = dabRadio.registerAsService("dab"); + sp<BroadcastRadio> dabRadio(new BroadcastRadio(gDabRadio)); + auto dabStatus = dabRadio->registerAsService("dab"); CHECK_EQ(dabStatus, android::OK) << "Failed to register Broadcast Radio DAB HAL implementation"; joinRpcThreadpool(); |