From 69b61656dd50c7d1cbc349a6b69edf7409c6f158 Mon Sep 17 00:00:00 2001 From: Vinnie Falco Date: Sat, 8 Jul 2017 20:45:35 -0700 Subject: [PATCH] Use make_unique_noinit fix #605 --- CHANGELOG.md | 1 + include/beast/http/impl/basic_parser.ipp | 3 ++- include/beast/websocket/impl/stream.ipp | 7 +++++-- include/beast/zlib/detail/deflate_stream.hpp | 4 +++- include/beast/zlib/detail/window.hpp | 4 +++- 5 files changed, 14 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ac98348b..5cfd243c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ Version 78: * Add span * Documentation work +* Use make_unique_noinit HTTP: diff --git a/include/beast/http/impl/basic_parser.ipp b/include/beast/http/impl/basic_parser.ipp index ec293c6e..9ea02bae 100644 --- a/include/beast/http/impl/basic_parser.ipp +++ b/include/beast/http/impl/basic_parser.ipp @@ -15,6 +15,7 @@ #include #include #include +#include #include #include @@ -120,7 +121,7 @@ put(ConstBufferSequence const& buffers, if(size > buf_len_) { // reallocate - buf_.reset(new char[size]); + buf_ = boost::make_unique_noinit(size); buf_len_ = size; } // flatten diff --git a/include/beast/websocket/impl/stream.ipp b/include/beast/websocket/impl/stream.ipp index 0f65f959..62bfe595 100644 --- a/include/beast/websocket/impl/stream.ipp +++ b/include/beast/websocket/impl/stream.ipp @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include @@ -569,7 +570,8 @@ rd_begin() if(! rd_.buf || rd_.buf_size != rd_buf_size_) { rd_.buf_size = rd_buf_size_; - rd_.buf.reset(new std::uint8_t[rd_.buf_size]); + rd_.buf = boost::make_unique_noinit< + std::uint8_t[]>(rd_.buf_size); } } } @@ -589,7 +591,8 @@ wr_begin() if(! wr_.buf || wr_.buf_size != wr_buf_size_) { wr_.buf_size = wr_buf_size_; - wr_.buf.reset(new std::uint8_t[wr_.buf_size]); + wr_.buf = boost::make_unique_noinit< + std::uint8_t[]>(wr_.buf_size); } } else diff --git a/include/beast/zlib/detail/deflate_stream.hpp b/include/beast/zlib/detail/deflate_stream.hpp index a53fcaf5..9ec35be7 100644 --- a/include/beast/zlib/detail/deflate_stream.hpp +++ b/include/beast/zlib/detail/deflate_stream.hpp @@ -40,6 +40,7 @@ #include #include #include +#include #include #include #include @@ -1281,7 +1282,8 @@ init() if(! buf_ || buf_size_ != needed) { - buf_.reset(new std::uint8_t[needed]); + buf_ = boost::make_unique_noinit< + std::uint8_t[]>(needed); buf_size_ = needed; } diff --git a/include/beast/zlib/detail/window.hpp b/include/beast/zlib/detail/window.hpp index 2a277710..a671b234 100644 --- a/include/beast/zlib/detail/window.hpp +++ b/include/beast/zlib/detail/window.hpp @@ -36,6 +36,7 @@ #define BEAST_ZLIB_DETAIL_WINDOW_HPP #include +#include #include #include #include @@ -126,7 +127,8 @@ window:: write(std::uint8_t const* in, std::size_t n) { if(! p_) - p_.reset(new std::uint8_t[capacity_]); + p_ = boost::make_unique< + std::uint8_t[]>(capacity_); if(n >= capacity_) { i_ = 0;