diff --git a/talk/app/webrtc/java/jni/peerconnection_jni.cc b/talk/app/webrtc/java/jni/peerconnection_jni.cc index cb86877b5..57efaadba 100644 --- a/talk/app/webrtc/java/jni/peerconnection_jni.cc +++ b/talk/app/webrtc/java/jni/peerconnection_jni.cc @@ -131,6 +131,7 @@ using webrtc::SessionDescriptionInterface; using webrtc::SetSessionDescriptionObserver; using webrtc::StatsObserver; using webrtc::StatsReport; +using webrtc::StatsReports; using webrtc::VideoRendererInterface; using webrtc::VideoSourceInterface; using webrtc::VideoTrackInterface; @@ -985,7 +986,7 @@ class StatsObserverWrapper : public StatsObserver { virtual ~StatsObserverWrapper() {} - virtual void OnComplete(const std::vector& reports) OVERRIDE { + virtual void OnComplete(const StatsReports& reports) OVERRIDE { ScopedLocalRefFrame local_ref_frame(jni()); jobjectArray j_reports = ReportsToJava(jni(), reports); jmethodID m = GetMethodID(jni(), *j_observer_class_, "onComplete", @@ -996,22 +997,22 @@ class StatsObserverWrapper : public StatsObserver { private: jobjectArray ReportsToJava( - JNIEnv* jni, const std::vector& reports) { + JNIEnv* jni, const StatsReports& reports) { jobjectArray reports_array = jni->NewObjectArray( reports.size(), *j_stats_report_class_, NULL); - for (int i = 0; i < reports.size(); ++i) { + int i = 0; + for (const auto* report : reports) { ScopedLocalRefFrame local_ref_frame(jni); - const StatsReport& report = reports[i]; - jstring j_id = JavaStringFromStdString(jni, report.id); - jstring j_type = JavaStringFromStdString(jni, report.type); - jobjectArray j_values = ValuesToJava(jni, report.values); + jstring j_id = JavaStringFromStdString(jni, report->id); + jstring j_type = JavaStringFromStdString(jni, report->type); + jobjectArray j_values = ValuesToJava(jni, report->values); jobject j_report = jni->NewObject(*j_stats_report_class_, j_stats_report_ctor_, j_id, j_type, - report.timestamp, + report->timestamp, j_values); - jni->SetObjectArrayElement(reports_array, i, j_report); + jni->SetObjectArrayElement(reports_array, i++, j_report); } return reports_array; } diff --git a/talk/app/webrtc/objc/RTCPeerConnection.mm b/talk/app/webrtc/objc/RTCPeerConnection.mm index 7767f7619..43922010a 100644 --- a/talk/app/webrtc/objc/RTCPeerConnection.mm +++ b/talk/app/webrtc/objc/RTCPeerConnection.mm @@ -123,12 +123,11 @@ class RTCStatsObserver : public StatsObserver { _peerConnection = peerConnection; } - virtual void OnComplete(const std::vector& reports) OVERRIDE { + virtual void OnComplete(const StatsReports& reports) OVERRIDE { NSMutableArray* stats = [NSMutableArray arrayWithCapacity:reports.size()]; - std::vector::const_iterator it = reports.begin(); - for (; it != reports.end(); ++it) { + for (const auto* report : reports) { RTCStatsReport* statsReport = - [[RTCStatsReport alloc] initWithStatsReport:*it]; + [[RTCStatsReport alloc] initWithStatsReport:*report]; [stats addObject:statsReport]; } [_delegate peerConnection:_peerConnection didGetStats:stats]; diff --git a/talk/app/webrtc/peerconnectioninterface.h b/talk/app/webrtc/peerconnectioninterface.h index e751f2270..d61d2043e 100644 --- a/talk/app/webrtc/peerconnectioninterface.h +++ b/talk/app/webrtc/peerconnectioninterface.h @@ -113,18 +113,7 @@ class StreamCollectionInterface : public rtc::RefCountInterface { class StatsObserver : public rtc::RefCountInterface { public: - // TODO(tommi): Remove. - virtual void OnComplete(const std::vector& reports) {} - - // TODO(tommi): Make pure virtual and remove implementation. - virtual void OnComplete(const StatsReports& reports) { - std::vector report_copies; - for (size_t i = 0; i < reports.size(); ++i) - report_copies.push_back(StatsReportCopyable(*reports[i])); - std::vector* r = - reinterpret_cast*>(&report_copies); - OnComplete(*r); - } + virtual void OnComplete(const StatsReports& reports) = 0; protected: virtual ~StatsObserver() {}