Use sp<>::make in external camera HAL

Fix external camera HAL crash (android::RefBase::incStrongRequireStrong)

Bug: 184190315
Test: android.hardware.camera.provider@2.5-external-service does not crash
Change-Id: I2406099078fd3c9bddf05afc4011fbece5072139
This commit is contained in:
Valentin Iftime
2021-08-26 12:11:35 +02:00
parent 51ac1e9793
commit b4fcc57952
2 changed files with 6 additions and 6 deletions

View File

@@ -65,10 +65,10 @@ bool matchDeviceName(int cameraIdOffset,
} // anonymous namespace
ExternalCameraProviderImpl_2_4::ExternalCameraProviderImpl_2_4() :
mCfg(ExternalCameraConfig::loadFromCfg()),
mHotPlugThread(this) {
mHotPlugThread.run("ExtCamHotPlug", PRIORITY_BACKGROUND);
ExternalCameraProviderImpl_2_4::ExternalCameraProviderImpl_2_4()
: mCfg(ExternalCameraConfig::loadFromCfg()) {
mHotPlugThread = sp<HotplugThread>::make(this);
mHotPlugThread->run("ExtCamHotPlug", PRIORITY_BACKGROUND);
mPreferredHal3MinorVersion =
property_get_int32("ro.vendor.camera.external.hal3TrebleMinorVersion", 4);
@@ -88,7 +88,7 @@ ExternalCameraProviderImpl_2_4::ExternalCameraProviderImpl_2_4() :
}
ExternalCameraProviderImpl_2_4::~ExternalCameraProviderImpl_2_4() {
mHotPlugThread.requestExit();
mHotPlugThread->requestExit();
}

View File

@@ -102,7 +102,7 @@ private:
sp<ICameraProviderCallback> mCallbacks = nullptr;
std::unordered_map<std::string, CameraDeviceStatus> mCameraStatusMap; // camera id -> status
const ExternalCameraConfig mCfg;
HotplugThread mHotPlugThread;
sp<HotplugThread> mHotPlugThread;
int mPreferredHal3MinorVersion;
};