diff --git a/CHANGELOG.md b/CHANGELOG.md index 866e22e2..6b63783b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +Version 252: + +* More std::string_view fixes + +-------------------------------------------------------------------------------- + Version 251: * Clean up CI scripts diff --git a/include/boost/beast/http/detail/basic_parser.hpp b/include/boost/beast/http/detail/basic_parser.hpp index 49596521..dfe20a9a 100644 --- a/include/boost/beast/http/detail/basic_parser.hpp +++ b/include/boost/beast/http/detail/basic_parser.hpp @@ -179,7 +179,7 @@ struct basic_parser_base BOOST_BEAST_DECL static bool - parse_dec(char const* it, char const* last, std::uint64_t& v); + parse_dec(string_view s, std::uint64_t& v); BOOST_BEAST_DECL static diff --git a/include/boost/beast/http/detail/basic_parser.ipp b/include/boost/beast/http/detail/basic_parser.ipp index 8aeb6833..ce140eb3 100644 --- a/include/boost/beast/http/detail/basic_parser.ipp +++ b/include/boost/beast/http/detail/basic_parser.ipp @@ -154,8 +154,12 @@ find_eol( bool basic_parser_base:: -parse_dec(char const* it, char const* last, std::uint64_t& v) +parse_dec( + string_view s, + std::uint64_t& v) { + char const* it = s.data(); + char const* last = it + s.size(); if(it == last) return false; std::uint64_t tmp = 0; diff --git a/include/boost/beast/http/impl/basic_parser.ipp b/include/boost/beast/http/impl/basic_parser.ipp index 3e443697..8474cb5e 100644 --- a/include/boost/beast/http/impl/basic_parser.ipp +++ b/include/boost/beast/http/impl/basic_parser.ipp @@ -799,8 +799,7 @@ do_field(field f, } std::uint64_t v; - if(! parse_dec( - value.begin(), value.end(), v)) + if(! parse_dec(value, v)) { ec = error::bad_content_length; return; diff --git a/test/beast/http/basic_parser.cpp b/test/beast/http/basic_parser.cpp index f554f90d..49f3476e 100644 --- a/test/beast/http/basic_parser.cpp +++ b/test/beast/http/basic_parser.cpp @@ -1223,7 +1223,7 @@ public: { std::uint64_t v; auto const result = - base::parse_dec(s.begin(), s.end(), v); + base::parse_dec(s, v); if(BEAST_EXPECTS(result, s)) BEAST_EXPECTS(v == v0, s); }; @@ -1232,7 +1232,7 @@ public: { std::uint64_t v; auto const result = - base::parse_dec(s.begin(), s.end(), v); + base::parse_dec(s, v); BEAST_EXPECTS(! result, s); }; good("0", 0); @@ -1258,7 +1258,7 @@ public: [&](string_view s, std::uint64_t v0) { std::uint64_t v; - auto it = s.begin(); + auto it = s.data(); auto const result = base::parse_hex(it, v); if(BEAST_EXPECTS(result, s)) @@ -1268,7 +1268,7 @@ public: [&](string_view s) { std::uint64_t v; - auto it = s.begin(); + auto it = s.data(); auto const result = base::parse_hex(it, v); BEAST_EXPECTS(! result, s);