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`