Commit f6c9c797 authored by Lei Zhang's avatar Lei Zhang Committed by Commit Bot

Make AndroidHardwareBufferCompat::Get() return a reference.

Stop copies with DISALLOW_COPY_AND_ASSIGN() and also switch
AndroidHardwareBufferCompat to use base::NoDestructor.

Change-Id: Ifbe0224ace714335ca105803f9271dc00f190b62
Reviewed-on: https://chromium-review.googlesource.com/c/1330994Reviewed-by: default avatarKlaus Weidner <klausw@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/master@{#613340}
parent 9119c242
...@@ -7,18 +7,10 @@ ...@@ -7,18 +7,10 @@
#include <dlfcn.h> #include <dlfcn.h>
#include "base/android/build_info.h" #include "base/android/build_info.h"
#include "base/lazy_instance.h"
#include "base/logging.h" #include "base/logging.h"
namespace base { namespace base {
namespace {
static base::LazyInstance<AndroidHardwareBufferCompat>::Leaky g_compat =
LAZY_INSTANCE_INITIALIZER;
} // namespace
AndroidHardwareBufferCompat::AndroidHardwareBufferCompat() { AndroidHardwareBufferCompat::AndroidHardwareBufferCompat() {
DCHECK(IsSupportAvailable()); DCHECK(IsSupportAvailable());
...@@ -71,8 +63,9 @@ bool AndroidHardwareBufferCompat::IsSupportAvailable() { ...@@ -71,8 +63,9 @@ bool AndroidHardwareBufferCompat::IsSupportAvailable() {
} }
// static // static
AndroidHardwareBufferCompat AndroidHardwareBufferCompat::GetInstance() { AndroidHardwareBufferCompat& AndroidHardwareBufferCompat::GetInstance() {
return g_compat.Get(); static base::NoDestructor<AndroidHardwareBufferCompat> compat;
return *compat;
} }
void AndroidHardwareBufferCompat::Allocate(const AHardwareBuffer_Desc* desc, void AndroidHardwareBufferCompat::Allocate(const AHardwareBuffer_Desc* desc,
......
...@@ -9,7 +9,8 @@ ...@@ -9,7 +9,8 @@
#include <android/sensor.h> #include <android/sensor.h>
#include "base/base_export.h" #include "base/base_export.h"
#include "base/lazy_instance.h" #include "base/macros.h"
#include "base/no_destructor.h"
extern "C" { extern "C" {
using PFAHardwareBuffer_allocate = void (*)(const AHardwareBuffer_Desc* desc, using PFAHardwareBuffer_allocate = void (*)(const AHardwareBuffer_Desc* desc,
...@@ -39,7 +40,7 @@ namespace base { ...@@ -39,7 +40,7 @@ namespace base {
class BASE_EXPORT AndroidHardwareBufferCompat { class BASE_EXPORT AndroidHardwareBufferCompat {
public: public:
static bool IsSupportAvailable(); static bool IsSupportAvailable();
static AndroidHardwareBufferCompat GetInstance(); static AndroidHardwareBufferCompat& GetInstance();
void Allocate(const AHardwareBuffer_Desc* desc, AHardwareBuffer** outBuffer); void Allocate(const AHardwareBuffer_Desc* desc, AHardwareBuffer** outBuffer);
void Acquire(AHardwareBuffer* buffer); void Acquire(AHardwareBuffer* buffer);
...@@ -55,7 +56,7 @@ class BASE_EXPORT AndroidHardwareBufferCompat { ...@@ -55,7 +56,7 @@ class BASE_EXPORT AndroidHardwareBufferCompat {
int Unlock(AHardwareBuffer* buffer, int32_t* fence); int Unlock(AHardwareBuffer* buffer, int32_t* fence);
private: private:
friend struct base::LazyInstanceTraitsBase<AndroidHardwareBufferCompat>; friend class NoDestructor<AndroidHardwareBufferCompat>;
AndroidHardwareBufferCompat(); AndroidHardwareBufferCompat();
PFAHardwareBuffer_allocate allocate_; PFAHardwareBuffer_allocate allocate_;
...@@ -66,6 +67,8 @@ class BASE_EXPORT AndroidHardwareBufferCompat { ...@@ -66,6 +67,8 @@ class BASE_EXPORT AndroidHardwareBufferCompat {
PFAHardwareBuffer_release release_; PFAHardwareBuffer_release release_;
PFAHardwareBuffer_sendHandleToUnixSocket send_handle_; PFAHardwareBuffer_sendHandleToUnixSocket send_handle_;
PFAHardwareBuffer_unlock unlock_; PFAHardwareBuffer_unlock unlock_;
DISALLOW_COPY_AND_ASSIGN(AndroidHardwareBufferCompat);
}; };
} // namespace base } // namespace base
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment