From 7b370b935ec0dac991da08f9da227df9ce245fd5 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] 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} --- 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 43ad756bbd..3e5ef03686 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 @@ 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,