From 459b3bc6a979a778f1689a86be3589101853977e Mon Sep 17 00:00:00 2001 From: Hirokazu Honda Date: Wed, 26 May 2021 17:46:28 +0900 Subject: android: CameraHalManager: Create a static object dynamically Originally CameraHalManager is created in the libcamera start up and destroyed in the libcamera termination. However, CameraHalManager destructor can access other static objects that has been destroyed. Avoid this issue by destroying CameraHalManager when tear_down() is called in ChromeOS or leaking it in other platforms. Signed-off-by: Hirokazu Honda Reviewed-by: Laurent Pinchart Reviewed-by: Jacopo Mondi Signed-off-by: Laurent Pinchart --- src/android/camera_hal_manager.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/android/camera_hal_manager.h') diff --git a/src/android/camera_hal_manager.h b/src/android/camera_hal_manager.h index af1581da..db9354a7 100644 --- a/src/android/camera_hal_manager.h +++ b/src/android/camera_hal_manager.h @@ -26,9 +26,10 @@ class CameraDevice; class CameraHalManager { public: - CameraHalManager(); ~CameraHalManager(); + static CameraHalManager *instance(); + int init(); std::tuple @@ -44,6 +45,8 @@ private: static constexpr unsigned int firstExternalCameraId_ = 1000; + CameraHalManager(); + static int32_t cameraLocation(const libcamera::Camera *cam); void cameraAdded(std::shared_ptr cam); -- cgit v1.2.1