Index: net/base/io_buffer.cc |
diff --git a/net/base/io_buffer.cc b/net/base/io_buffer.cc |
index dd1d4517eeab06721b62d3f70faf7c91f3a885d1..a375381bfd9bdc51f018506e0dbe6093647e7df2 100644 |
--- a/net/base/io_buffer.cc |
+++ b/net/base/io_buffer.cc |
@@ -46,6 +46,13 @@ StringIOBuffer::StringIOBuffer(const std::string& s) |
data_ = const_cast<char*>(string_data_.data()); |
} |
+StringIOBuffer::StringIOBuffer(scoped_ptr<std::string> s) |
+ : IOBuffer(static_cast<char*>(NULL)) { |
+ CHECK_LT(s->size(), static_cast<size_t>(INT_MAX)); |
+ string_data_.swap(*s.get()); |
+ data_ = const_cast<char*>(string_data_.data()); |
+} |
+ |
StringIOBuffer::~StringIOBuffer() { |
// We haven't allocated the buffer, so remove it before the base class |
// destructor tries to delete[] it. |