Delete implicit conversion from raw pointer to scoped_ref_ptr
Followup to https://webrtc-review.googlesource.com/c/src/+/242363
Bug: webrtc:13464
Change-Id: I44358e8cfedeea92aac4ef47c540aff9a4865cdc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/247362
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35897}
diff --git a/api/scoped_refptr.h b/api/scoped_refptr.h
index 164fefe..8f45f89 100644
--- a/api/scoped_refptr.h
+++ b/api/scoped_refptr.h
@@ -74,10 +74,9 @@
typedef T element_type;
scoped_refptr() : ptr_(nullptr) {}
+ scoped_refptr(std::nullptr_t) : ptr_(nullptr) {} // NOLINT(runtime/explicit)
- // TODO(bugs.webrtc.org/13464): Implicit construction is deprecated. Mark
- // explicit, and add a new implicit constructor accepting a nullptr_t.
- scoped_refptr(T* p) : ptr_(p) { // NOLINT(runtime/explicit)
+ explicit scoped_refptr(T* p) : ptr_(p) {
if (ptr_)
ptr_->AddRef();
}
diff --git a/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc b/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc
index 43ad756..3e5ef03 100644
--- a/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc
+++ b/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc
@@ -691,7 +691,8 @@
rtc::scoped_refptr<SharedScreenCastStream>
SharedScreenCastStream::CreateDefault() {
- return new SharedScreenCastStream();
+ // Explicit new, to access non-public constructor.
+ return rtc::scoped_refptr(new SharedScreenCastStream());
}
bool SharedScreenCastStream::StartScreenCastStream(uint32_t stream_node_id,