camera: libcbm: Do not destruct static CameraBufferManager
go/totw/110
BUG=b:167679596
TEST=None
Change-Id: I127cca713e151638e5c7c2d03504c39672337f7a
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform2/+/2485987
Reviewed-by: Shik Chen <shik@chromium.org>
Commit-Queue: Ren-Pei Zeng <kamesan@chromium.org>
Tested-by: Ren-Pei Zeng <kamesan@chromium.org>
diff --git a/camera/common/camera_buffer_manager_impl.cc b/camera/common/camera_buffer_manager_impl.cc
index cd5a8a0..619f5a3 100644
--- a/camera/common/camera_buffer_manager_impl.cc
+++ b/camera/common/camera_buffer_manager_impl.cc
@@ -11,6 +11,7 @@
#include <linux/videodev2.h>
#include <sys/mman.h>
+#include <base/no_destructor.h>
#include <drm_fourcc.h>
#include <hardware/gralloc.h>
#include <system/graphics.h>
@@ -63,12 +64,12 @@
// static
CameraBufferManager* CameraBufferManager::GetInstance() {
- static CameraBufferManagerImpl instance;
- if (!instance.gbm_device_) {
+ static base::NoDestructor<CameraBufferManagerImpl> instance;
+ if (!instance->gbm_device_) {
LOGF(ERROR) << "Failed to create GBM device for CameraBufferManager";
return nullptr;
}
- return &instance;
+ return instance.get();
}
// static