summaryrefslogtreecommitdiff
path: root/src/BtPieceMessage.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/BtPieceMessage.cc')
-rw-r--r--src/BtPieceMessage.cc11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/BtPieceMessage.cc b/src/BtPieceMessage.cc
index 354f97d5..1c67f2ec 100644
--- a/src/BtPieceMessage.cc
+++ b/src/BtPieceMessage.cc
@@ -213,17 +213,16 @@ void BtPieceMessage::send()
void BtPieceMessage::pushPieceData(int64_t offset, int32_t length) const
{
assert(length <= static_cast<int32_t>(16_k));
- auto buf = make_unique<unsigned char[]>(length + MESSAGE_HEADER_LENGTH);
- createMessageHeader(buf.get());
+ auto buf = std::vector<unsigned char>(length + MESSAGE_HEADER_LENGTH);
+ createMessageHeader(buf.data());
ssize_t r;
r = getPieceStorage()->getDiskAdaptor()->readData(
- buf.get() + MESSAGE_HEADER_LENGTH, length, offset);
+ buf.data() + MESSAGE_HEADER_LENGTH, length, offset);
if (r == length) {
const auto& peer = getPeer();
getPeerConnection()->pushBytes(
- buf.release(), length + MESSAGE_HEADER_LENGTH,
- make_unique<PieceSendUpdate>(downloadContext_, peer,
- MESSAGE_HEADER_LENGTH));
+ std::move(buf), make_unique<PieceSendUpdate>(downloadContext_, peer,
+ MESSAGE_HEADER_LENGTH));
peer->updateUploadSpeed(length);
downloadContext_->updateUploadSpeed(length);
}