Skip to content

Commit ce8e27a

Browse files
fix: fix get/write bytes
1 parent 6f763d4 commit ce8e27a

File tree

2 files changed

+3
-14
lines changed

2 files changed

+3
-14
lines changed

src/binarystream/BinaryStream.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,7 @@ std::string BinaryStream::getAndReleaseData() {
5050

5151
void BinaryStream::writeBytes(const void* origin, size_t num) {
5252
if (num > 0) {
53-
std::string buffer(reinterpret_cast<const char*>(origin), num);
54-
if (mBigEndian) { std::ranges::reverse(buffer); }
55-
mBuffer.append(buffer);
53+
mBuffer.append(reinterpret_cast<const char*>(origin), num);
5654
mBufferView = mBuffer;
5755
}
5856
}

src/binarystream/ReadOnlyBinaryStream.cpp

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,7 @@ bool ReadOnlyBinaryStream::read(T* target, bool bigEndian) noexcept {
4141
return false;
4242
}
4343

44-
std::copy(
45-
mBufferView.begin() + mReadPointer,
46-
mBufferView.begin() + newReadPointer,
47-
reinterpret_cast<char*>(target)
48-
);
44+
std::copy_n(mBufferView.begin() + mReadPointer, sizeof(T), reinterpret_cast<char*>(target));
4945
mReadPointer = newReadPointer;
5046
if (bigEndian) { *target = detail::swapEndian(*target); }
5147
return true;
@@ -86,14 +82,9 @@ bool ReadOnlyBinaryStream::getBytes(void* target, size_t num) noexcept {
8682
return false;
8783
}
8884

89-
std::copy(mBufferView.begin() + mReadPointer, mBufferView.begin() + newPointer, static_cast<char*>(target));
85+
std::copy_n(mBufferView.begin() + mReadPointer, num, static_cast<char*>(target));
9086
mReadPointer = newPointer;
9187

92-
if (mBigEndian && num > 1) {
93-
std::span<std::byte> buffer{static_cast<std::byte*>(target), num};
94-
std::ranges::reverse(buffer);
95-
}
96-
9788
return true;
9889
}
9990

0 commit comments

Comments
 (0)