From 5cf99e306ad3917834fc7cde85f1e5a5443a1804 Mon Sep 17 00:00:00 2001 From: Mathieu Lacage Date: Wed, 10 Dec 2008 02:36:28 -0800 Subject: [PATCH] bug 441: double precision issue on x86 32bit systems. --- src/applications/onoff/onoff-application.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/applications/onoff/onoff-application.cc b/src/applications/onoff/onoff-application.cc index 0f1bd98b2..d3c6bf91f 100644 --- a/src/applications/onoff/onoff-application.cc +++ b/src/applications/onoff/onoff-application.cc @@ -165,7 +165,8 @@ void OnOffApplication::CancelEvents () { // Cancel the pending send packet event // Calculate residual bits since last packet sent Time delta(Simulator::Now() - m_lastStartTime); - m_residualBits += (uint32_t)(m_cbrRate.GetBitRate() * delta.GetSeconds()); + Scalar bits = delta * Scalar (m_cbrRate.GetBitRate ()) / Seconds (1.0); + m_residualBits += (uint32_t)bits.GetDouble (); } Simulator::Cancel(m_sendEvent); Simulator::Cancel(m_startStopEvent);