From f714e7faeaa0458394898a2b2b3de8693b767ddc Mon Sep 17 00:00:00 2001 From: "pbos@webrtc.org" Date: Thu, 6 Mar 2014 18:31:08 +0000 Subject: [PATCH] Remove abs() use in PseudoTcp::process. Squelches a clang 3.5 compile error for using abs() with a long instead of labs(). Updated affected code to use uint32:s to match the sign of m_rx_srtt. BUG= R=fischman@webrtc.org Review URL: https://webrtc-codereview.appspot.com/9409004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@5651 4adac7df-926f-26a2-2b94-8c16560cd09d --- talk/p2p/base/pseudotcp.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/talk/p2p/base/pseudotcp.cc b/talk/p2p/base/pseudotcp.cc index 56aa5b019a..fce179bd3d 100644 --- a/talk/p2p/base/pseudotcp.cc +++ b/talk/p2p/base/pseudotcp.cc @@ -728,13 +728,16 @@ bool PseudoTcp::process(Segment& seg) { if ((seg.ack > m_snd_una) && (seg.ack <= m_snd_nxt)) { // Calculate round-trip time if (seg.tsecr) { - long rtt = talk_base::TimeDiff(now, seg.tsecr); + int32 rtt = talk_base::TimeDiff(now, seg.tsecr); if (rtt >= 0) { if (m_rx_srtt == 0) { m_rx_srtt = rtt; m_rx_rttvar = rtt / 2; } else { - m_rx_rttvar = (3 * m_rx_rttvar + abs(long(rtt - m_rx_srtt))) / 4; + uint32 unsigned_rtt = static_cast(rtt); + uint32 abs_err = unsigned_rtt > m_rx_srtt ? unsigned_rtt - m_rx_srtt + : m_rx_srtt - unsigned_rtt; + m_rx_rttvar = (3 * m_rx_rttvar + abs_err) / 4; m_rx_srtt = (7 * m_rx_srtt + rtt) / 8; } m_rx_rto = bound(MIN_RTO, m_rx_srtt +