Convert buffer in range loops

fix #485
This commit is contained in:
Vinnie Falco
2017-06-13 11:53:06 -07:00
parent 1037c5bfba
commit 82d76e4882
15 changed files with 20 additions and 13 deletions

View File

@@ -8,6 +8,7 @@ Version 56:
* Reset error codes * Reset error codes
* More basic_parser tests * More basic_parser tests
* Add an INTERFACE cmake target * Add an INTERFACE cmake target
* Convert buffer in range loops
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------

View File

@@ -34,6 +34,10 @@ else()
set(CMAKE_CXX_FLAGS set(CMAKE_CXX_FLAGS
"${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wextra -Wpedantic -Wno-unused-parameter") "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wextra -Wpedantic -Wno-unused-parameter")
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wrange-loop-analysis")
endif ()
endif() endif()
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------

View File

@@ -89,6 +89,7 @@ project beast
<toolset>clang:<cxxflags>-std=c++11 <toolset>clang:<cxxflags>-std=c++11
<toolset>clang:<cxxflags>-Wno-unused-parameter <toolset>clang:<cxxflags>-Wno-unused-parameter
<toolset>clang:<cxxflags>-Wno-unused-variable # Temporary until we can figure out -isystem <toolset>clang:<cxxflags>-Wno-unused-variable # Temporary until we can figure out -isystem
<toolset>clang:<cxxflags>-Wrange-loop-analysis
<toolset>msvc:<define>_SCL_SECURE_NO_WARNINGS=1 <toolset>msvc:<define>_SCL_SECURE_NO_WARNINGS=1
<toolset>msvc:<define>_CRT_SECURE_NO_WARNINGS=1 <toolset>msvc:<define>_CRT_SECURE_NO_WARNINGS=1
<toolset>msvc:<cxxflags>"/wd4100 /wd4251 /bigobj" <toolset>msvc:<cxxflags>"/wd4100 /wd4251 /bigobj"

View File

@@ -362,7 +362,7 @@ put(ConstBufferSequence const& buffers, error_code& ec)
{ {
// Loop over all the buffers in the sequence, // Loop over all the buffers in the sequence,
// and write each one to the file. // and write each one to the file.
for(auto const& buffer : buffers) for(boost::asio::const_buffer buffer : buffers)
{ {
// Write this buffer to the file // Write this buffer to the file
fwrite( fwrite(

View File

@@ -124,7 +124,7 @@ public:
using boost::asio::buffer_cast; using boost::asio::buffer_cast;
auto const n = buffer_size(buffers); auto const n = buffer_size(buffers);
str.reserve(str.size() + n); str.reserve(str.size() + n);
for(auto const& buffer : buffers) for(boost::asio::const_buffer buffer : buffers)
str.append(buffer_cast<char const*>(buffer), str.append(buffer_cast<char const*>(buffer),
buffer_size(buffer)); buffer_size(buffer));
return n; return n;

View File

@@ -99,7 +99,8 @@ public:
auto const n = auto const n =
(std::min)(buffer_size(buffers), write_max_); (std::min)(buffer_size(buffers), write_max_);
str.reserve(str.size() + n); str.reserve(str.size() + n);
for(auto const& buffer : buffer_prefix(n, buffers)) for(boost::asio::const_buffer buffer :
buffer_prefix(n, buffers))
str.append(buffer_cast<char const*>(buffer), str.append(buffer_cast<char const*>(buffer),
buffer_size(buffer)); buffer_size(buffer));
return n; return n;

View File

@@ -45,7 +45,7 @@ operator<<(std::ostream& os,
{ {
using boost::asio::buffer_cast; using boost::asio::buffer_cast;
using boost::asio::buffer_size; using boost::asio::buffer_size;
for(auto const& b : v.b_) for(boost::asio::const_buffer b : v.b_)
os.write(buffer_cast<char const*>(b), os.write(buffer_cast<char const*>(b),
buffer_size(b)); buffer_size(b));
return os; return os;

View File

@@ -254,7 +254,7 @@ void
mask_inplace( mask_inplace(
MutableBuffers const& bs, KeyType& key) MutableBuffers const& bs, KeyType& key)
{ {
for(auto const& b : bs) for(boost::asio::mutable_buffer b : bs)
mask_inplace(b, key); mask_inplace(b, key);
} }

View File

@@ -409,7 +409,7 @@ deflate(
zs.next_in = nullptr; zs.next_in = nullptr;
zs.avail_out = buffer_size(out); zs.avail_out = buffer_size(out);
zs.next_out = buffer_cast<void*>(out); zs.next_out = buffer_cast<void*>(out);
for(auto const& in : cb) for(boost::asio::const_buffer in : cb)
{ {
zs.avail_in = buffer_size(in); zs.avail_in = buffer_size(in);
if(zs.avail_in == 0) if(zs.avail_in == 0)

View File

@@ -132,7 +132,7 @@ write(ConstBufferSequence const& bs)
"ConstBufferSequence requirements not met"); "ConstBufferSequence requirements not met");
using boost::asio::buffer_cast; using boost::asio::buffer_cast;
using boost::asio::buffer_size; using boost::asio::buffer_size;
for(auto const& b : bs) for(boost::asio::const_buffer b : bs)
if(! write(buffer_cast<std::uint8_t const*>(b), if(! write(buffer_cast<std::uint8_t const*>(b),
buffer_size(b))) buffer_size(b)))
return false; return false;

View File

@@ -66,7 +66,7 @@ public:
std::size_t n = 0; std::size_t n = 0;
using boost::asio::buffer_cast; using boost::asio::buffer_cast;
using boost::asio::buffer_size; using boost::asio::buffer_size;
for(auto const& buffer : buffers) for(boost::asio::mutable_buffer buffer : buffers)
{ {
std::fill( std::fill(
buffer_cast<char*>(buffer), buffer_cast<char*>(buffer),

View File

@@ -98,7 +98,7 @@ public:
using boost::asio::buffer_size; using boost::asio::buffer_size;
std::string s; std::string s;
s.reserve(buffer_size(bs)); s.reserve(buffer_size(bs));
for(auto const& b : bs) for(boost::asio::const_buffer b : bs)
s.append(buffer_cast<char const*>(b), s.append(buffer_cast<char const*>(b),
buffer_size(b)); buffer_size(b));
return s; return s;

View File

@@ -30,7 +30,7 @@ to_string(ConstBufferSequence const& bs)
using boost::asio::buffer_size; using boost::asio::buffer_size;
std::string s; std::string s;
s.reserve(buffer_size(bs)); s.reserve(buffer_size(bs));
for(auto const& b : bs) for(boost::asio::const_buffer b : bs)
s.append(buffer_cast<char const*>(b), s.append(buffer_cast<char const*>(b),
buffer_size(b)); buffer_size(b));
return s; return s;

View File

@@ -500,7 +500,7 @@ public:
auto const len = rand(500); auto const len = rand(500);
ostream(db) << ostream(db) <<
"Content-Length: " << len << "\r\n\r\n"; "Content-Length: " << len << "\r\n\r\n";
for(auto const& b : db.prepare(len)) for(boost::asio::mutable_buffer b : db.prepare(len))
{ {
auto p = boost::asio::buffer_cast<char*>(b); auto p = boost::asio::buffer_cast<char*>(b);
auto n = boost::asio::buffer_size(b); auto n = boost::asio::buffer_size(b);
@@ -520,7 +520,7 @@ public:
len -= n; len -= n;
ostream(db) << ostream(db) <<
to_hex(n) << "\r\n"; to_hex(n) << "\r\n";
for(auto const& b : db.prepare(n)) for(boost::asio::mutable_buffer b : db.prepare(n))
{ {
auto p = boost::asio::buffer_cast<char*>(b); auto p = boost::asio::buffer_cast<char*>(b);
auto m = boost::asio::buffer_size(b); auto m = boost::asio::buffer_size(b);

View File

@@ -489,7 +489,7 @@ nodejs_basic_parser<Derived>::write(
using boost::asio::buffer_cast; using boost::asio::buffer_cast;
using boost::asio::buffer_size; using boost::asio::buffer_size;
std::size_t bytes_used = 0; std::size_t bytes_used = 0;
for(auto const& buffer : buffers) for(boost::asio::const_buffer buffer : buffers)
{ {
auto const n = write( auto const n = write(
buffer_cast<void const*>(buffer), buffer_cast<void const*>(buffer),