From 3d510a068206ef3e188e8478fd679c12cbf23d74 Mon Sep 17 00:00:00 2001 From: Martchus Date: Sat, 20 Feb 2016 01:35:42 +0100 Subject: [PATCH] avoid copy in BinaryReader::readString(size_t length) --- io/binaryreader.cpp | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/io/binaryreader.cpp b/io/binaryreader.cpp index 66b7993..359cc84 100644 --- a/io/binaryreader.cpp +++ b/io/binaryreader.cpp @@ -125,15 +125,10 @@ string BinaryReader::readLengthPrefixedString() */ string BinaryReader::readString(size_t length) { - //string res; - //res.reserve(length); - //for(; length; --length) { - // res.push_back(static_cast(m_stream->get())); - //} - //return res; - unique_ptr buff = make_unique(length); - m_stream->read(buff.get(), length); - return string(buff.get(), length); + string res; + res.resize(length); + m_stream->read(&res[0], length); + return res; } /*!