diff options
author | pbos@webrtc.org <pbos@webrtc.org@4adac7df-926f-26a2-2b94-8c16560cd09d> | 2014-03-06 18:31:08 +0000 |
---|---|---|
committer | pbos@webrtc.org <pbos@webrtc.org@4adac7df-926f-26a2-2b94-8c16560cd09d> | 2014-03-06 18:31:08 +0000 |
commit | 5336226082b83b0a8c0c6f2783555a51842b42b8 (patch) | |
tree | e34c4385d281f0583bf004a25b0a0a1fe4033bcc /p2p | |
parent | 0818e52baff28231b649de97ba62b1ece159b303 (diff) | |
download | talk-5336226082b83b0a8c0c6f2783555a51842b42b8.tar.gz |
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/talk@5651 4adac7df-926f-26a2-2b94-8c16560cd09d
Diffstat (limited to 'p2p')
-rw-r--r-- | p2p/base/pseudotcp.cc | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/p2p/base/pseudotcp.cc b/p2p/base/pseudotcp.cc index 56aa5b0..fce179b 100644 --- a/p2p/base/pseudotcp.cc +++ b/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<uint32>(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 + |