From 42f44f9cf672eb4bc43616c11e625111f48b6366 Mon Sep 17 00:00:00 2001 From: eladalon Date: Tue, 25 Jul 2017 06:40:06 -0700 Subject: [PATCH] Get rid of unnecessary cast of FlexfecReceiveStreamImpl to FlexfecReceiveStream BUG=None Review-Url: https://codereview.webrtc.org/2967913002 Cr-Commit-Position: refs/heads/master@{#19131} --- webrtc/call/call.cc | 9 ++------- webrtc/call/flexfec_receive_stream.h | 5 +++-- webrtc/call/flexfec_receive_stream_impl.cc | 5 +++++ webrtc/call/flexfec_receive_stream_impl.h | 3 +-- webrtc/media/engine/fakewebrtccall.h | 2 +- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/webrtc/call/call.cc b/webrtc/call/call.cc index 1a78d8e261..6475e00abf 100644 --- a/webrtc/call/call.cc +++ b/webrtc/call/call.cc @@ -885,15 +885,10 @@ void Call::DestroyFlexfecReceiveStream(FlexfecReceiveStream* receive_stream) { RTC_DCHECK_RUN_ON(&configuration_thread_checker_); RTC_DCHECK(receive_stream != nullptr); - // There exist no other derived classes of FlexfecReceiveStream, - // so this downcast is safe. - FlexfecReceiveStreamImpl* receive_stream_impl = - static_cast(receive_stream); { WriteLockScoped write_lock(*receive_crit_); - const FlexfecReceiveStream::Config& config = - receive_stream_impl->GetConfig(); + const FlexfecReceiveStream::Config& config = receive_stream->GetConfig(); uint32_t ssrc = config.remote_ssrc; receive_rtp_config_.erase(ssrc); @@ -903,7 +898,7 @@ void Call::DestroyFlexfecReceiveStream(FlexfecReceiveStream* receive_stream) { ->RemoveStream(ssrc); } - delete receive_stream_impl; + delete receive_stream; } Call::Stats Call::GetStats() const { diff --git a/webrtc/call/flexfec_receive_stream.h b/webrtc/call/flexfec_receive_stream.h index babeee0ecb..353811a922 100644 --- a/webrtc/call/flexfec_receive_stream.h +++ b/webrtc/call/flexfec_receive_stream.h @@ -23,6 +23,8 @@ namespace webrtc { class FlexfecReceiveStream { public: + virtual ~FlexfecReceiveStream() = default; + struct Stats { std::string ToString(int64_t time_ms) const; @@ -82,8 +84,7 @@ class FlexfecReceiveStream { virtual Stats GetStats() const = 0; - protected: - virtual ~FlexfecReceiveStream() = default; + virtual const Config& GetConfig() const = 0; }; } // namespace webrtc diff --git a/webrtc/call/flexfec_receive_stream_impl.cc b/webrtc/call/flexfec_receive_stream_impl.cc index a1e9bc64ec..16edadd803 100644 --- a/webrtc/call/flexfec_receive_stream_impl.cc +++ b/webrtc/call/flexfec_receive_stream_impl.cc @@ -206,4 +206,9 @@ FlexfecReceiveStreamImpl::Stats FlexfecReceiveStreamImpl::GetStats() const { return FlexfecReceiveStream::Stats(); } +const FlexfecReceiveStream::Config& FlexfecReceiveStreamImpl::GetConfig() + const { + return config_; +} + } // namespace webrtc diff --git a/webrtc/call/flexfec_receive_stream_impl.h b/webrtc/call/flexfec_receive_stream_impl.h index 81c09d6fac..de5de4190c 100644 --- a/webrtc/call/flexfec_receive_stream_impl.h +++ b/webrtc/call/flexfec_receive_stream_impl.h @@ -40,8 +40,6 @@ class FlexfecReceiveStreamImpl : public FlexfecReceiveStream, ProcessThread* process_thread); ~FlexfecReceiveStreamImpl() override; - const Config& GetConfig() const { return config_; } - // RtpPacketSinkInterface. void OnRtpPacket(const RtpPacketReceived& packet) override; @@ -49,6 +47,7 @@ class FlexfecReceiveStreamImpl : public FlexfecReceiveStream, void Start() override; void Stop() override; Stats GetStats() const override; + const Config& GetConfig() const override; private: // Config. diff --git a/webrtc/media/engine/fakewebrtccall.h b/webrtc/media/engine/fakewebrtccall.h index 10a5e9f746..15f2108cca 100644 --- a/webrtc/media/engine/fakewebrtccall.h +++ b/webrtc/media/engine/fakewebrtccall.h @@ -217,7 +217,7 @@ class FakeFlexfecReceiveStream final : public webrtc::FlexfecReceiveStream { explicit FakeFlexfecReceiveStream( const webrtc::FlexfecReceiveStream::Config& config); - const webrtc::FlexfecReceiveStream::Config& GetConfig() const; + const webrtc::FlexfecReceiveStream::Config& GetConfig() const override; private: // webrtc::FlexfecReceiveStream implementation.