Index: media/cast/audio_sender/audio_sender.cc |
diff --git a/media/cast/audio_sender/audio_sender.cc b/media/cast/audio_sender/audio_sender.cc |
index bdf6b293f0cae0de30bbdfb297ef2e083e47f1b2..4ca58ea6411588a2ecb52d063d6853f7333a55be 100644 |
--- a/media/cast/audio_sender/audio_sender.cc |
+++ b/media/cast/audio_sender/audio_sender.cc |
@@ -43,9 +43,11 @@ class LocalRtpSenderStatistics : public RtpSenderStatistics { |
: transport_sender_(transport_sender), |
frequency_(0), |
sender_info_(), |
- rtp_timestamp_(0) { |
- transport_sender_->SubscribeAudioRtpStatsCallback(base::Bind( |
- &LocalRtpSenderStatistics::StoreStatistics, base::Unretained(this))); |
+ rtp_timestamp_(0), |
+ weak_factory_(this) { |
+ transport_sender_->SubscribeAudioRtpStatsCallback( |
+ base::Bind(&LocalRtpSenderStatistics::StoreStatistics, |
+ weak_factory_.GetWeakPtr())); |
} |
virtual void GetStatistics(const base::TimeTicks& now, |
@@ -84,6 +86,8 @@ class LocalRtpSenderStatistics : public RtpSenderStatistics { |
base::TimeTicks time_sent_; |
uint32 rtp_timestamp_; |
+ base::WeakPtrFactory<LocalRtpSenderStatistics> weak_factory_; |
+ |
DISALLOW_IMPLICIT_CONSTRUCTORS(LocalRtpSenderStatistics); |
}; |