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,