Revert "Delete implicit conversion from raw pointer to scoped_ref_ptr"
This reverts commit 7b370b935ec0dac991da08f9da227df9ce245fd5.
Reason for revert: Breaking WebRTC in Chrome rolls. Roll can be found here https://chromium-review.googlesource.com/c/chromium/src/+/3436384/. Example failed build https://ci.chromium.org/ui/p/chromium/builders/try/chromeos-amd64-generic-rel-compilator/65973/overview. Failures seem to be in ChromeOS with the nearby library:
error: no viable conversion from 'rtc::RefCountedObject<CreateSessionDescriptionObserverImpl> *' to 'rtc::scoped_refptr<CreateSessionDescriptionObserverImpl>'
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 <mbonadei@webrtc.org>
> Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
> Commit-Queue: Niels Moller <nisse@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#35897}
TBR=mbonadei@webrtc.org,nisse@webrtc.org,tommi@webrtc.org,webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com
Change-Id: Ib0beb44421519c8393131c55564c62c9b4d91504
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:13464
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/250621
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Owners-Override: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35905}
diff --git a/api/scoped_refptr.h b/api/scoped_refptr.h
index 8f45f89..164fefe 100644
--- a/api/scoped_refptr.h
+++ b/api/scoped_refptr.h
@@ -74,9 +74,10 @@
typedef T element_type;
scoped_refptr() : ptr_(nullptr) {}
- scoped_refptr(std::nullptr_t) : ptr_(nullptr) {} // NOLINT(runtime/explicit)
- explicit scoped_refptr(T* p) : ptr_(p) {
+ // 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)
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 3e5ef03..43ad756 100644
--- a/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc
+++ b/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc
@@ -691,8 +691,7 @@
rtc::scoped_refptr<SharedScreenCastStream>
SharedScreenCastStream::CreateDefault() {
- // Explicit new, to access non-public constructor.
- return rtc::scoped_refptr(new SharedScreenCastStream());
+ return new SharedScreenCastStream();
}
bool SharedScreenCastStream::StartScreenCastStream(uint32_t stream_node_id,