[go: nahoru, domu]

Rewrite T& into raw_ref<T> under base/

The changes were generated by running
tools/clang/rewrite_raw_ref_fields/rewrite-multiple-platforms.sh with
tool-arg=--enable_raw_ref_rewrite

`raw_ref` is a smart pointer for a pointer which can not be null, and
which provides Use-after-Free protection in the same ways as raw_ptr.
This class acts like a combination of std::reference_wrapper and
raw_ptr.

See raw_ptr and //base/memory/raw_ptr.md for more details on the
Use-after-Free protection.

Bug: 1357022
Change-Id: Iea06ee400a9f14101053c63bf89755dbeca331ff
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4016454
Commit-Queue: danakj <danakj@chromium.org>
Owners-Override: danakj <danakj@chromium.org>
Commit-Queue: Ali Hijazi <ahijazi@chromium.org>
Reviewed-by: danakj <danakj@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1069975}
diff --git a/base/thread_annotations_unittest.cc b/base/thread_annotations_unittest.cc
index b718a24..726da7cf 100644
--- a/base/thread_annotations_unittest.cc
+++ b/base/thread_annotations_unittest.cc
@@ -4,6 +4,7 @@
 
 #include "thread_annotations.h"
 
+#include "base/memory/raw_ref.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace {
@@ -19,10 +20,10 @@
   AutoLock(Lock& lock) EXCLUSIVE_LOCK_FUNCTION(lock) : lock_(lock) {
     lock.Acquire();
   }
-  ~AutoLock() UNLOCK_FUNCTION() { lock_.Release(); }
+  ~AutoLock() UNLOCK_FUNCTION() { lock_->Release(); }
 
  private:
-  Lock& lock_;
+  const raw_ref<Lock> lock_;
 };
 
 class ThreadSafe {