From b4fcc57952a2f234e80c26bce627853d99accca5 Mon Sep 17 00:00:00 2001 From: Valentin Iftime Date: Thu, 26 Aug 2021 12:11:35 +0200 Subject: [PATCH] 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 --- .../2.4/default/ExternalCameraProviderImpl_2_4.cpp | 10 +++++----- .../2.4/default/ExternalCameraProviderImpl_2_4.h | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/camera/provider/2.4/default/ExternalCameraProviderImpl_2_4.cpp b/camera/provider/2.4/default/ExternalCameraProviderImpl_2_4.cpp index 64a51f6141..4fc743748a 100644 --- a/camera/provider/2.4/default/ExternalCameraProviderImpl_2_4.cpp +++ b/camera/provider/2.4/default/ExternalCameraProviderImpl_2_4.cpp @@ -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::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(); } diff --git a/camera/provider/2.4/default/ExternalCameraProviderImpl_2_4.h b/camera/provider/2.4/default/ExternalCameraProviderImpl_2_4.h index 8c79f68f10..f1d8003bf9 100644 --- a/camera/provider/2.4/default/ExternalCameraProviderImpl_2_4.h +++ b/camera/provider/2.4/default/ExternalCameraProviderImpl_2_4.h @@ -102,7 +102,7 @@ private: sp mCallbacks = nullptr; std::unordered_map mCameraStatusMap; // camera id -> status const ExternalCameraConfig mCfg; - HotplugThread mHotPlugThread; + sp mHotPlugThread; int mPreferredHal3MinorVersion; };