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 @@
#include <dlfcn.h>
#include "base/android/build_info.h"
#include "base/lazy_instance.h"
#include "base/logging.h"
namespace base {
namespace {
static base::LazyInstance<AndroidHardwareBufferCompat>::Leaky g_compat =
LAZY_INSTANCE_INITIALIZER;
} // namespace
AndroidHardwareBufferCompat::AndroidHardwareBufferCompat() {
DCHECK(IsSupportAvailable());
......@@ -71,8 +63,9 @@ bool AndroidHardwareBufferCompat::IsSupportAvailable() {
}
// static
AndroidHardwareBufferCompat AndroidHardwareBufferCompat::GetInstance() {
return g_compat.Get();
AndroidHardwareBufferCompat& AndroidHardwareBufferCompat::GetInstance() {
static base::NoDestructor<AndroidHardwareBufferCompat> compat;
return *compat;
}
void AndroidHardwareBufferCompat::Allocate(const AHardwareBuffer_Desc* desc,
......
......@@ -9,7 +9,8 @@
#include <android/sensor.h>
#include "base/base_export.h"
#include "base/lazy_instance.h"
#include "base/macros.h"
#include "base/no_destructor.h"
extern "C" {
using PFAHardwareBuffer_allocate = void (*)(const AHardwareBuffer_Desc* desc,
......@@ -39,7 +40,7 @@ namespace base {
class BASE_EXPORT AndroidHardwareBufferCompat {
public:
static bool IsSupportAvailable();
static AndroidHardwareBufferCompat GetInstance();
static AndroidHardwareBufferCompat& GetInstance();
void Allocate(const AHardwareBuffer_Desc* desc, AHardwareBuffer** outBuffer);
void Acquire(AHardwareBuffer* buffer);
......@@ -55,7 +56,7 @@ class BASE_EXPORT AndroidHardwareBufferCompat {
int Unlock(AHardwareBuffer* buffer, int32_t* fence);
private:
friend struct base::LazyInstanceTraitsBase<AndroidHardwareBufferCompat>;
friend class NoDestructor<AndroidHardwareBufferCompat>;
AndroidHardwareBufferCompat();
PFAHardwareBuffer_allocate allocate_;
......@@ -66,6 +67,8 @@ class BASE_EXPORT AndroidHardwareBufferCompat {
PFAHardwareBuffer_release release_;
PFAHardwareBuffer_sendHandleToUnixSocket send_handle_;
PFAHardwareBuffer_unlock unlock_;
DISALLOW_COPY_AND_ASSIGN(AndroidHardwareBufferCompat);
};
} // 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