Skip to content

Commit b5e3c4a

Browse files
committed
updated buffer copy
1 parent aa6e8b4 commit b5e3c4a

File tree

1 file changed

+5
-9
lines changed

1 file changed

+5
-9
lines changed

include/internal/WebSocketProtocol.h

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -517,9 +517,8 @@ namespace SL {
517517
else {
518518
dataconsumed = extradata->size();
519519
}
520-
bytestoread -= dataconsumed;
521-
std::copy_n(asio::buffers_begin(*extradata), dataconsumed, buffer.get());
522-
// memcpy(buffer.get(), extradata->data(), dataconsumed);
520+
bytestoread -= dataconsumed;
521+
memcpy(buffer.get(), asio::buffer_cast<const void*>(extradata->data()), dataconsumed);
523522
extradata->consume(dataconsumed);
524523

525524
asio::async_read(socket->Socket, asio::buffer(buffer.get() + dataconsumed, bytestoread), [size, extradata, parent, socket, buffer](const std::error_code& ec, size_t) {
@@ -580,10 +579,8 @@ namespace SL {
580579
dataconsumed = extradata->size();
581580
}
582581
bytestoread -= dataconsumed;
583-
std::copy_n(asio::buffers_begin(*extradata), dataconsumed, socket->ReceiveBuffer + socket->ReceiveBufferSize - size);
584-
//memcpy(socket->ReceiveBuffer + socket->ReceiveBufferSize - size, extradata->data(), dataconsumed);
582+
memcpy(socket->ReceiveBuffer + socket->ReceiveBufferSize - size, asio::buffer_cast<const void*>(extradata->data()), dataconsumed);
585583
extradata->consume(dataconsumed);
586-
587584
asio::async_read(socket->Socket, asio::buffer(socket->ReceiveBuffer + socket->ReceiveBufferSize - size + dataconsumed, bytestoread), [size, extradata, parent, socket](const std::error_code& ec, size_t) {
588585
if (!ec) {
589586
auto buffer = socket->ReceiveBuffer + socket->ReceiveBufferSize - size;
@@ -647,7 +644,7 @@ namespace SL {
647644
}
648645
//zero is not possible
649646
bytestoread -= dataconsumed;
650-
std::copy_n(asio::buffers_begin(*extradata), dataconsumed, socket->ReceiveHeader);
647+
memcpy(socket->ReceiveHeader, asio::buffer_cast<const void*>(extradata->data()), dataconsumed);
651648
extradata->consume(dataconsumed);
652649

653650
asio::async_read(socket->Socket, asio::buffer(socket->ReceiveHeader + dataconsumed, bytestoread), [parent, socket, extradata](const std::error_code& ec, size_t bytes_transferred) {
@@ -676,8 +673,7 @@ namespace SL {
676673
dataconsumed = 0;
677674
}
678675
bytestoread -= dataconsumed;
679-
std::copy_n(asio::buffers_begin(*extradata), dataconsumed, socket->ReceiveHeader + 2);
680-
//memcpy(socket->ReceiveHeader, extradata->data(), dataconsumed);
676+
memcpy(socket->ReceiveHeader +2, asio::buffer_cast<const void*>(extradata->data()), dataconsumed);
681677
extradata->consume(dataconsumed);
682678

683679
asio::async_read(socket->Socket, asio::buffer(socket->ReceiveHeader + 2 + dataconsumed, bytestoread), [parent, socket, extradata](const std::error_code& ec, size_t) {

0 commit comments

Comments
 (0)