From 1a58a3fe3f74d9bb787f584ea341169abb730d38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20M=C3=B6ller?= Date: Tue, 25 Jan 2022 15:54:17 +0100 Subject: [PATCH] Reland "Delete implicit conversion from raw pointer to scoped_ref_ptr" This is a reland of 7b370b935ec0dac991da08f9da227df9ce245fd5 Original change's description: > 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 > Reviewed-by: Tomas Gunnarsson > Commit-Queue: Niels Moller > Cr-Commit-Position: refs/heads/main@{#35897} Bug: webrtc:13464 Change-Id: Ia0da558adb65852a900030ca7c2f2310a275188e Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/251140 Reviewed-by: Mirko Bonadei Reviewed-by: Tomas Gunnarsson Commit-Queue: Niels Moller Cr-Commit-Position: refs/heads/main@{#35943} --- api/scoped_refptr.h | 5 ++--- .../linux/wayland/shared_screencast_stream.cc | 3 ++- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/api/scoped_refptr.h b/api/scoped_refptr.h index 164fefec14..8f45f89206 100644 --- a/api/scoped_refptr.h +++ b/api/scoped_refptr.h @@ -74,10 +74,9 @@ class scoped_refptr { 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 8fae69ed9c..5d96ab58c0 100644 --- a/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc +++ b/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc @@ -693,7 +693,8 @@ SharedScreenCastStream::~SharedScreenCastStream() {} rtc::scoped_refptr 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,