gfe-relnote: (n/a) Fix QuicBandwidth::(ToBytesPerPeriod|ToKBytesPerPeriod) by doing multiplications before divisions. Not protected.

PiperOrigin-RevId: 252595070
Change-Id: Iced39e2225f45576a23a484dd43b231fff9f3636
diff --git a/quic/core/quic_bandwidth.h b/quic/core/quic_bandwidth.h
index a5bb306..afd31b2 100644
--- a/quic/core/quic_bandwidth.h
+++ b/quic/core/quic_bandwidth.h
@@ -67,12 +67,12 @@
   inline int64_t ToKBytesPerSecond() const { return bits_per_second_ / 8000; }
 
   inline QuicByteCount ToBytesPerPeriod(QuicTime::Delta time_period) const {
-    return ToBytesPerSecond() * time_period.ToMicroseconds() /
+    return bits_per_second_ * time_period.ToMicroseconds() / 8 /
            kNumMicrosPerSecond;
   }
 
   inline int64_t ToKBytesPerPeriod(QuicTime::Delta time_period) const {
-    return ToKBytesPerSecond() * time_period.ToMicroseconds() /
+    return bits_per_second_ * time_period.ToMicroseconds() / 8000 /
            kNumMicrosPerSecond;
   }
 
diff --git a/quic/core/quic_bandwidth_test.cc b/quic/core/quic_bandwidth_test.cc
index 22a5107..005eef0 100644
--- a/quic/core/quic_bandwidth_test.cc
+++ b/quic/core/quic_bandwidth_test.cc
@@ -84,6 +84,13 @@
                          QuicTime::Delta::FromMilliseconds(100)));
   EXPECT_EQ(200u, QuicBandwidth::FromKBytesPerSecond(2000).ToKBytesPerPeriod(
                       QuicTime::Delta::FromMilliseconds(100)));
+
+  // 1599 * 1001 = 1600599 bits/ms = 200.074875 bytes/s.
+  EXPECT_EQ(200u, QuicBandwidth::FromBitsPerSecond(1599).ToBytesPerPeriod(
+                      QuicTime::Delta::FromMilliseconds(1001)));
+
+  EXPECT_EQ(200u, QuicBandwidth::FromBitsPerSecond(1599).ToKBytesPerPeriod(
+                      QuicTime::Delta::FromSeconds(1001)));
 }
 
 TEST_F(QuicBandwidthTest, TransferTime) {