Replace QuicheTextUtils methods with absl::SimpleAtoi.

PiperOrigin-RevId: 339269770
Change-Id: I5a032260e18aa9f2ea23ffd4ff6bd6d8d28d77fc
diff --git a/common/platform/api/quiche_text_utils.h b/common/platform/api/quiche_text_utils.h
index 4de3647..5bc5f50 100644
--- a/common/platform/api/quiche_text_utils.h
+++ b/common/platform/api/quiche_text_utils.h
@@ -27,30 +27,6 @@
     quiche::QuicheTextUtilsImpl::RemoveLeadingAndTrailingWhitespace(data);
   }
 
-  // Returns true if |in| represents a valid uint64, and stores that value in
-  // |out|.
-  static bool StringToUint64(absl::string_view in, uint64_t* out) {
-    return quiche::QuicheTextUtilsImpl::StringToUint64(in, out);
-  }
-
-  // Returns true if |in| represents a valid int, and stores that value in
-  // |out|.
-  static bool StringToInt(absl::string_view in, int* out) {
-    return quiche::QuicheTextUtilsImpl::StringToInt(in, out);
-  }
-
-  // Returns true if |in| represents a valid uint32, and stores that value in
-  // |out|.
-  static bool StringToUint32(absl::string_view in, uint32_t* out) {
-    return quiche::QuicheTextUtilsImpl::StringToUint32(in, out);
-  }
-
-  // Returns true if |in| represents a valid size_t, and stores that value in
-  // |out|.
-  static bool StringToSizeT(absl::string_view in, size_t* out) {
-    return quiche::QuicheTextUtilsImpl::StringToSizeT(in, out);
-  }
-
   // Returns a new string representing |in|.
   static std::string Uint64ToString(uint64_t in) {
     return quiche::QuicheTextUtilsImpl::Uint64ToString(in);
diff --git a/common/platform/api/quiche_text_utils_test.cc b/common/platform/api/quiche_text_utils_test.cc
index bbea2cd..012d33d 100644
--- a/common/platform/api/quiche_text_utils_test.cc
+++ b/common/platform/api/quiche_text_utils_test.cc
@@ -32,89 +32,6 @@
   }
 }
 
-TEST_F(QuicheTextUtilsTest, StringToNumbers) {
-  const std::string kMaxInt32Plus1 = "2147483648";
-  const std::string kMinInt32Minus1 = "-2147483649";
-  const std::string kMaxUint32Plus1 = "4294967296";
-
-  {
-    // StringToUint64
-    uint64_t uint64_val = 0;
-    EXPECT_TRUE(quiche::QuicheTextUtils::StringToUint64("123", &uint64_val));
-    EXPECT_EQ(123u, uint64_val);
-    EXPECT_TRUE(quiche::QuicheTextUtils::StringToUint64("1234", &uint64_val));
-    EXPECT_EQ(1234u, uint64_val);
-    EXPECT_FALSE(quiche::QuicheTextUtils::StringToUint64("", &uint64_val));
-    EXPECT_FALSE(quiche::QuicheTextUtils::StringToUint64("-123", &uint64_val));
-    EXPECT_FALSE(
-        quiche::QuicheTextUtils::StringToUint64("-123.0", &uint64_val));
-    EXPECT_TRUE(
-        quiche::QuicheTextUtils::StringToUint64(kMaxUint32Plus1, &uint64_val));
-    EXPECT_EQ(4294967296u, uint64_val);
-  }
-
-  {
-    // StringToint
-    int int_val = 0;
-    EXPECT_TRUE(quiche::QuicheTextUtils::StringToInt("123", &int_val));
-    EXPECT_EQ(123, int_val);
-    EXPECT_TRUE(quiche::QuicheTextUtils::StringToInt("1234", &int_val));
-    EXPECT_EQ(1234, int_val);
-    EXPECT_FALSE(quiche::QuicheTextUtils::StringToInt("", &int_val));
-    EXPECT_TRUE(quiche::QuicheTextUtils::StringToInt("-123", &int_val));
-    EXPECT_EQ(-123, int_val);
-    EXPECT_FALSE(quiche::QuicheTextUtils::StringToInt("-123.0", &int_val));
-    if (sizeof(int) > 4) {
-      EXPECT_TRUE(
-          quiche::QuicheTextUtils::StringToInt(kMinInt32Minus1, &int_val));
-      EXPECT_EQ(-2147483649ll, int_val);
-      EXPECT_TRUE(
-          quiche::QuicheTextUtils::StringToInt(kMaxInt32Plus1, &int_val));
-      EXPECT_EQ(2147483648ll, int_val);
-    } else {
-      EXPECT_FALSE(
-          quiche::QuicheTextUtils::StringToInt(kMinInt32Minus1, &int_val));
-      EXPECT_FALSE(
-          quiche::QuicheTextUtils::StringToInt(kMaxInt32Plus1, &int_val));
-    }
-  }
-
-  {
-    // StringToUint32
-    uint32_t uint32_val = 0;
-    EXPECT_TRUE(quiche::QuicheTextUtils::StringToUint32("123", &uint32_val));
-    EXPECT_EQ(123u, uint32_val);
-    EXPECT_TRUE(quiche::QuicheTextUtils::StringToUint32("1234", &uint32_val));
-    EXPECT_EQ(1234u, uint32_val);
-    EXPECT_FALSE(quiche::QuicheTextUtils::StringToUint32("", &uint32_val));
-    EXPECT_FALSE(quiche::QuicheTextUtils::StringToUint32("-123", &uint32_val));
-    EXPECT_FALSE(
-        quiche::QuicheTextUtils::StringToUint32("-123.0", &uint32_val));
-    EXPECT_FALSE(
-        quiche::QuicheTextUtils::StringToUint32(kMaxUint32Plus1, &uint32_val));
-  }
-
-  {
-    // StringToSizeT
-    size_t size_t_val = 0;
-    EXPECT_TRUE(quiche::QuicheTextUtils::StringToSizeT("123", &size_t_val));
-    EXPECT_EQ(123u, size_t_val);
-    EXPECT_TRUE(quiche::QuicheTextUtils::StringToSizeT("1234", &size_t_val));
-    EXPECT_EQ(1234u, size_t_val);
-    EXPECT_FALSE(quiche::QuicheTextUtils::StringToSizeT("", &size_t_val));
-    EXPECT_FALSE(quiche::QuicheTextUtils::StringToSizeT("-123", &size_t_val));
-    EXPECT_FALSE(quiche::QuicheTextUtils::StringToSizeT("-123.0", &size_t_val));
-    if (sizeof(size_t) > 4) {
-      EXPECT_TRUE(
-          quiche::QuicheTextUtils::StringToSizeT(kMaxUint32Plus1, &size_t_val));
-      EXPECT_EQ(4294967296ull, size_t_val);
-    } else {
-      EXPECT_FALSE(
-          quiche::QuicheTextUtils::StringToSizeT(kMaxUint32Plus1, &size_t_val));
-    }
-  }
-}
-
 TEST_F(QuicheTextUtilsTest, Uint64ToString) {
   EXPECT_EQ("123", quiche::QuicheTextUtils::Uint64ToString(123));
   EXPECT_EQ("1234", quiche::QuicheTextUtils::Uint64ToString(1234));
diff --git a/common/quiche_data_reader.cc b/common/quiche_data_reader.cc
index 395d5c0..bbb4b87 100644
--- a/common/quiche_data_reader.cc
+++ b/common/quiche_data_reader.cc
@@ -6,6 +6,7 @@
 
 #include <cstring>
 
+#include "absl/strings/numbers.h"
 #include "absl/strings/string_view.h"
 #include "net/third_party/quiche/src/common/platform/api/quiche_logging.h"
 #include "net/third_party/quiche/src/common/platform/api/quiche_str_cat.h"
@@ -125,7 +126,7 @@
     return false;
   }
 
-  return QuicheTextUtils::StringToUint64(digits, result);
+  return absl::SimpleAtoi(digits, result);
 }
 
 absl::string_view QuicheDataReader::ReadRemainingPayload() {
diff --git a/quic/core/http/quic_receive_control_stream.cc b/quic/core/http/quic_receive_control_stream.cc
index 493ad0d..744e2ec 100644
--- a/quic/core/http/quic_receive_control_stream.cc
+++ b/quic/core/http/quic_receive_control_stream.cc
@@ -6,6 +6,7 @@
 
 #include <utility>
 
+#include "absl/strings/numbers.h"
 #include "absl/strings/string_view.h"
 #include "net/third_party/quiche/src/quic/core/http/http_constants.h"
 #include "net/third_party/quiche/src/quic/core/http/http_decoder.h"
@@ -229,8 +230,7 @@
 
     absl::string_view value = key_and_value[1];
     int urgency;
-    if (!quiche::QuicheTextUtils::StringToInt(value, &urgency) || urgency < 0 ||
-        urgency > 7) {
+    if (!absl::SimpleAtoi(value, &urgency) || urgency < 0 || urgency > 7) {
       stream_delegate()->OnStreamError(
           QUIC_INVALID_STREAM_ID,
           "Invalid value for PRIORITY_UPDATE urgency parameter.");
diff --git a/quic/core/http/quic_spdy_session.cc b/quic/core/http/quic_spdy_session.cc
index 8658f8e..eb7228b 100644
--- a/quic/core/http/quic_spdy_session.cc
+++ b/quic/core/http/quic_spdy_session.cc
@@ -11,6 +11,7 @@
 #include <utility>
 
 #include "absl/base/attributes.h"
+#include "absl/strings/numbers.h"
 #include "absl/strings/string_view.h"
 #include "net/third_party/quiche/src/quic/core/http/http_constants.h"
 #include "net/third_party/quiche/src/quic/core/http/quic_headers_stream.h"
@@ -524,8 +525,7 @@
       const std::string& header_key = header.first;
       const std::string& header_value = header.second;
       if (header_key == kFinalOffsetHeaderKey) {
-        if (!quiche::QuicheTextUtils::StringToSizeT(header_value,
-                                                    &final_byte_offset)) {
+        if (!absl::SimpleAtoi(header_value, &final_byte_offset)) {
           connection()->CloseConnection(
               QUIC_INVALID_HEADERS_STREAM_DATA,
               "Trailers are malformed (no final offset)",
diff --git a/quic/core/http/quic_spdy_stream.cc b/quic/core/http/quic_spdy_stream.cc
index f069bad..c58bb03 100644
--- a/quic/core/http/quic_spdy_stream.cc
+++ b/quic/core/http/quic_spdy_stream.cc
@@ -9,6 +9,7 @@
 #include <utility>
 
 #include "absl/base/macros.h"
+#include "absl/strings/numbers.h"
 #include "absl/strings/string_view.h"
 #include "net/third_party/quiche/src/quic/core/http/http_constants.h"
 #include "net/third_party/quiche/src/quic/core/http/http_decoder.h"
@@ -844,7 +845,7 @@
   if (!isdigit(status[1]) || !isdigit(status[2])) {
     return false;
   }
-  return quiche::QuicheTextUtils::StringToInt(status, status_code);
+  return absl::SimpleAtoi(status, status_code);
 }
 
 bool QuicSpdyStream::FinishedReadingTrailers() const {
diff --git a/quic/core/http/spdy_utils.cc b/quic/core/http/spdy_utils.cc
index 87025e4..0eb05a8 100644
--- a/quic/core/http/spdy_utils.cc
+++ b/quic/core/http/spdy_utils.cc
@@ -8,6 +8,7 @@
 #include <string>
 #include <vector>
 
+#include "absl/strings/numbers.h"
 #include "absl/strings/string_view.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_flag_utils.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_flags.h"
@@ -34,7 +35,7 @@
         quiche::QuicheTextUtils::Split(content_length_header, '\0');
     for (const absl::string_view& value : values) {
       uint64_t new_value;
-      if (!quiche::QuicheTextUtils::StringToUint64(value, &new_value) ||
+      if (!absl::SimpleAtoi(value, &new_value) ||
           !quiche::QuicheTextUtils::IsAllDigits(value)) {
         QUIC_DLOG(ERROR)
             << "Content length was either unparseable or negative.";
@@ -96,7 +97,7 @@
     // response body bytes expected.
     if (expect_final_byte_offset && !found_final_byte_offset &&
         name == kFinalOffsetHeaderKey &&
-        quiche::QuicheTextUtils::StringToSizeT(p.second, final_byte_offset)) {
+        absl::SimpleAtoi(p.second, final_byte_offset)) {
       found_final_byte_offset = true;
       continue;
     }
diff --git a/quic/core/quic_framer.cc b/quic/core/quic_framer.cc
index 155e76d..66765b0 100644
--- a/quic/core/quic_framer.cc
+++ b/quic/core/quic_framer.cc
@@ -14,6 +14,7 @@
 #include "absl/base/attributes.h"
 #include "absl/base/macros.h"
 #include "absl/base/optimization.h"
+#include "absl/strings/numbers.h"
 #include "absl/strings/string_view.h"
 #include "net/third_party/quiche/src/quic/core/crypto/crypto_framer.h"
 #include "net/third_party/quiche/src/quic/core/crypto/crypto_handshake.h"
@@ -6846,7 +6847,7 @@
       quiche::QuicheTextUtils::Split(frame->error_details, ':');
   uint64_t extracted_error_code;
   if (ed.size() < 2 || !quiche::QuicheTextUtils::IsAllDigits(ed[0]) ||
-      !quiche::QuicheTextUtils::StringToUint64(ed[0], &extracted_error_code)) {
+      !absl::SimpleAtoi(ed[0], &extracted_error_code)) {
     if (frame->close_type == IETF_QUIC_TRANSPORT_CONNECTION_CLOSE &&
         frame->wire_error_code == NO_IETF_QUIC_ERROR) {
       frame->quic_error_code = QUIC_NO_ERROR;
diff --git a/quic/core/quic_versions.cc b/quic/core/quic_versions.cc
index 98bef7f..4c5571f 100644
--- a/quic/core/quic_versions.cc
+++ b/quic/core/quic_versions.cc
@@ -7,6 +7,7 @@
 #include <string>
 
 #include "absl/base/macros.h"
+#include "absl/strings/numbers.h"
 #include "net/third_party/quiche/src/quic/core/crypto/quic_random.h"
 #include "net/third_party/quiche/src/quic/core/quic_tag.h"
 #include "net/third_party/quiche/src/quic/core/quic_types.h"
@@ -333,8 +334,7 @@
     return UnsupportedQuicVersion();
   }
   int quic_version_number = 0;
-  if (quiche::QuicheTextUtils::StringToInt(version_string,
-                                           &quic_version_number) &&
+  if (absl::SimpleAtoi(version_string, &quic_version_number) &&
       quic_version_number > 0) {
     QuicTransportVersion transport_version =
         static_cast<QuicTransportVersion>(quic_version_number);
diff --git a/quic/test_tools/qpack/qpack_offline_decoder.cc b/quic/test_tools/qpack/qpack_offline_decoder.cc
index 211417f..38cd8fb 100644
--- a/quic/test_tools/qpack/qpack_offline_decoder.cc
+++ b/quic/test_tools/qpack/qpack_offline_decoder.cc
@@ -31,6 +31,7 @@
 #include <utility>
 
 #include "absl/strings/match.h"
+#include "absl/strings/numbers.h"
 #include "absl/strings/string_view.h"
 #include "net/third_party/quiche/src/quic/core/quic_types.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_file_utils.h"
@@ -102,8 +103,7 @@
 
   // Maximum allowed number of blocked streams.
   uint64_t max_blocked_streams = 0;
-  if (!quiche::QuicheTextUtils::StringToUint64(*piece_it,
-                                               &max_blocked_streams)) {
+  if (!absl::SimpleAtoi(*piece_it, &max_blocked_streams)) {
     QUIC_LOG(ERROR) << "Error parsing part of input filename \"" << *piece_it
                     << "\" as an integer.";
     return false;
@@ -113,8 +113,7 @@
 
   // Maximum Dynamic Table Capacity in bytes
   uint64_t maximum_dynamic_table_capacity = 0;
-  if (!quiche::QuicheTextUtils::StringToUint64(
-          *piece_it, &maximum_dynamic_table_capacity)) {
+  if (!absl::SimpleAtoi(*piece_it, &maximum_dynamic_table_capacity)) {
     QUIC_LOG(ERROR) << "Error parsing part of input filename \"" << *piece_it
                     << "\" as an integer.";
     return false;
diff --git a/quic/tools/quic_memory_cache_backend.cc b/quic/tools/quic_memory_cache_backend.cc
index 84596fd..f6ecadd 100644
--- a/quic/tools/quic_memory_cache_backend.cc
+++ b/quic/tools/quic_memory_cache_backend.cc
@@ -7,6 +7,7 @@
 #include <utility>
 
 #include "absl/strings/match.h"
+#include "absl/strings/numbers.h"
 #include "absl/strings/string_view.h"
 #include "net/third_party/quiche/src/quic/core/http/spdy_utils.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_bug_tracker.h"
@@ -145,8 +146,8 @@
   if (it == responses_.end()) {
     uint64_t ignored = 0;
     if (generate_bytes_response_) {
-      if (quiche::QuicheTextUtils::StringToUint64(
-              absl::string_view(path.data() + 1, path.size() - 1), &ignored)) {
+      if (absl::SimpleAtoi(absl::string_view(path.data() + 1, path.size() - 1),
+                           &ignored)) {
         // The actual parsed length is ignored here and will be recomputed
         // by the caller.
         return generate_bytes_response_.get();
diff --git a/quic/tools/quic_reject_reason_decoder_bin.cc b/quic/tools/quic_reject_reason_decoder_bin.cc
index f7e3b75..f17cd03 100644
--- a/quic/tools/quic_reject_reason_decoder_bin.cc
+++ b/quic/tools/quic_reject_reason_decoder_bin.cc
@@ -7,6 +7,7 @@
 
 #include <iostream>
 
+#include "absl/strings/numbers.h"
 #include "net/third_party/quiche/src/quic/core/crypto/crypto_handshake.h"
 #include "net/third_party/quiche/src/quic/core/crypto/crypto_utils.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_flags.h"
@@ -27,7 +28,7 @@
   }
 
   uint32_t packed_error = 0;
-  if (!quiche::QuicheTextUtils::StringToUint32(args[0], &packed_error)) {
+  if (!absl::SimpleAtoi(args[0], &packed_error)) {
     std::cerr << "Unable to parse: " << args[0] << "\n";
     return 2;
   }
diff --git a/quic/tools/quic_simple_server_stream.cc b/quic/tools/quic_simple_server_stream.cc
index bbae2bc..93b4356 100644
--- a/quic/tools/quic_simple_server_stream.cc
+++ b/quic/tools/quic_simple_server_stream.cc
@@ -7,6 +7,7 @@
 #include <list>
 #include <utility>
 
+#include "absl/strings/numbers.h"
 #include "absl/strings/string_view.h"
 #include "net/third_party/quiche/src/quic/core/http/quic_spdy_stream.h"
 #include "net/third_party/quiche/src/quic/core/http/spdy_utils.h"
@@ -257,8 +258,7 @@
   if (response->response_type() == QuicBackendResponse::GENERATE_BYTES) {
     QUIC_DVLOG(1) << "Stream " << id() << " sending a generate bytes response.";
     std::string path = request_headers_[":path"].as_string().substr(1);
-    if (!quiche::QuicheTextUtils::StringToUint64(path,
-                                                 &generate_bytes_length_)) {
+    if (!absl::SimpleAtoi(path, &generate_bytes_length_)) {
       QUIC_LOG(ERROR) << "Path is not a number.";
       SendNotFoundResponse();
       return;
diff --git a/quic/tools/quic_spdy_client_base.cc b/quic/tools/quic_spdy_client_base.cc
index e96b19c..134e673 100644
--- a/quic/tools/quic_spdy_client_base.cc
+++ b/quic/tools/quic_spdy_client_base.cc
@@ -6,6 +6,7 @@
 
 #include <utility>
 
+#include "absl/strings/numbers.h"
 #include "absl/strings/string_view.h"
 #include "net/third_party/quiche/src/quic/core/crypto/quic_random.h"
 #include "net/third_party/quiche/src/quic/core/http/spdy_utils.h"
@@ -91,8 +92,7 @@
     auto status = response_headers.find(":status");
     if (status == response_headers.end()) {
       QUIC_LOG(ERROR) << "Missing :status response header";
-    } else if (!quiche::QuicheTextUtils::StringToInt(status->second,
-                                                     &latest_response_code_)) {
+    } else if (!absl::SimpleAtoi(status->second, &latest_response_code_)) {
       QUIC_LOG(ERROR) << "Invalid :status response header: " << status->second;
     }
     latest_response_headers_ = response_headers.DebugString();