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 {