From fd3b346e27ac350d025227899a5ab390f04bbec8 Mon Sep 17 00:00:00 2001 From: Tommi Date: Fri, 27 Oct 2023 22:38:33 +0200 Subject: [PATCH] Allow absl::Nonnull and absl::Nullable. This CL includes follow-up changes from https://webrtc-review.googlesource.com/c/src/+/324280 Bug: none Change-Id: I6abad16e05cac7197c51ffa7b1d3fb991843df6e Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/325243 Reviewed-by: Danil Chapovalov Commit-Queue: Tomas Gunnarsson Cr-Commit-Position: refs/heads/main@{#41030} --- DEPS | 1 + api/task_queue/BUILD.gn | 5 ++++- api/task_queue/pending_task_safety_flag.cc | 3 ++- api/task_queue/pending_task_safety_flag.h | 6 ++++-- g3doc/abseil-in-webrtc.md | 1 + 5 files changed, 12 insertions(+), 4 deletions(-) diff --git a/DEPS b/DEPS index a98e19d5e1..4575918d23 100644 --- a/DEPS +++ b/DEPS @@ -2602,6 +2602,7 @@ include_rules = [ "+absl/base/attributes.h", "+absl/base/config.h", "+absl/base/const_init.h", + "+absl/base/nullability.h", "+absl/base/macros.h", "+absl/cleanup/cleanup.h", "+absl/container/inlined_vector.h", diff --git a/api/task_queue/BUILD.gn b/api/task_queue/BUILD.gn index 527fac414b..e0e2e50514 100644 --- a/api/task_queue/BUILD.gn +++ b/api/task_queue/BUILD.gn @@ -132,7 +132,10 @@ rtc_library("pending_task_safety_flag") { "../../rtc_base/system:no_unique_address", "../../rtc_base/system:rtc_export", ] - absl_deps = [ "//third_party/abseil-cpp/absl/functional:any_invocable" ] + absl_deps = [ + "//third_party/abseil-cpp/absl/base:nullability", + "//third_party/abseil-cpp/absl/functional:any_invocable", + ] } if (rtc_include_tests) { diff --git a/api/task_queue/pending_task_safety_flag.cc b/api/task_queue/pending_task_safety_flag.cc index 3145550829..4d8fc2b9f4 100644 --- a/api/task_queue/pending_task_safety_flag.cc +++ b/api/task_queue/pending_task_safety_flag.cc @@ -37,7 +37,8 @@ PendingTaskSafetyFlag::CreateDetached() { rtc::scoped_refptr PendingTaskSafetyFlag::CreateAttachedToTaskQueue( bool alive, - TaskQueueBase* attached_queue) { + absl::Nonnull attached_queue) { + RTC_DCHECK(attached_queue) << "Null TaskQueue provided"; return rtc::scoped_refptr( new PendingTaskSafetyFlag(alive, attached_queue)); } diff --git a/api/task_queue/pending_task_safety_flag.h b/api/task_queue/pending_task_safety_flag.h index b601b94215..12b1e00ee4 100644 --- a/api/task_queue/pending_task_safety_flag.h +++ b/api/task_queue/pending_task_safety_flag.h @@ -13,6 +13,7 @@ #include +#include "absl/base/nullability.h" #include "absl/functional/any_invocable.h" #include "api/ref_counted_base.h" #include "api/scoped_refptr.h" @@ -72,7 +73,7 @@ class RTC_EXPORT PendingTaskSafetyFlag final // a given task queue and the `alive()` flag specified. static rtc::scoped_refptr CreateAttachedToTaskQueue( bool alive, - TaskQueueBase* attached_queue); + absl::Nonnull attached_queue); // Same as `CreateDetached()` except the initial state of the returned flag // will be `!alive()`. @@ -101,7 +102,8 @@ class RTC_EXPORT PendingTaskSafetyFlag final protected: explicit PendingTaskSafetyFlag(bool alive) : alive_(alive) {} - PendingTaskSafetyFlag(bool alive, TaskQueueBase* attached_queue) + PendingTaskSafetyFlag(bool alive, + absl::Nonnull attached_queue) : alive_(alive), main_sequence_(attached_queue) {} private: diff --git a/g3doc/abseil-in-webrtc.md b/g3doc/abseil-in-webrtc.md index 32fc42d953..034f6c2fb4 100644 --- a/g3doc/abseil-in-webrtc.md +++ b/g3doc/abseil-in-webrtc.md @@ -29,6 +29,7 @@ will generate a shared library. * `absl::bind_front` * `absl::Cleanup` * `absl::InlinedVector` +* `absl::Nonnull` and `absl::Nullable` * `absl::WrapUnique` * `absl::optional` and related stuff from `absl/types/optional.h`. * `absl::string_view`