Skip to content

Commit 444ded3

Browse files
committed
Refine byte writer resizing
1 parent 3871f02 commit 444ded3

File tree

3 files changed

+9
-15
lines changed

3 files changed

+9
-15
lines changed

components/ocs_core/byte_writer.cpp

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,8 @@ bool ByteWriter::write_word(uint16_t data) {
4747
return write(data);
4848
}
4949

50-
size_t ByteWriter::reserve(size_t size) {
51-
const size_t ret = std::min(size, left_());
52-
offset_ += ret;
53-
54-
return ret;
50+
void ByteWriter::resize(size_t size) {
51+
offset_ = std::min(size_, size);
5552
}
5653

5754
ssize_t ByteWriter::find(uint8_t data) {

components/ocs_core/byte_writer.h

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,8 @@ class ByteWriter : private core::NonCopyable<> {
4040
//! Write single word.
4141
bool write_word(uint16_t data);
4242

43-
//! Reserve space for @p size bytes.
44-
//!
45-
//! @return
46-
//! Number of reserved bytes.
47-
size_t reserve(size_t size);
43+
//! Change number of written bytes.
44+
void resize(size_t size);
4845

4946
//! Find the position of the byte.
5047
ssize_t find(uint8_t data);

components/ocs_core/test/test_byte_writer.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -67,27 +67,27 @@ TEST_CASE("Byte writer: write array: by parts", "[ocs_core], [byte_writer]") {
6767
TEST_ASSERT_TRUE(memcmp(want_buf, writer.get_data(), sizeof(want_buf)) == 0);
6868
}
6969

70-
TEST_CASE("Byte writer: reserve space: in range", "[ocs_core], [byte_writer]") {
70+
TEST_CASE("Byte writer: resize", "[ocs_core], [byte_writer]") {
7171
uint8_t write_buf[2];
7272
memset(write_buf, 7, sizeof(write_buf));
7373

7474
ByteWriter writer(write_buf, sizeof(write_buf));
7575

76-
TEST_ASSERT_EQUAL(1, writer.reserve(1));
76+
writer.resize(1);
7777
TEST_ASSERT_TRUE(writer.write(static_cast<uint8_t>(2)));
7878
TEST_ASSERT_FALSE(writer.write(static_cast<uint8_t>(2)));
7979
TEST_ASSERT_EQUAL(7, write_buf[0]);
8080
TEST_ASSERT_EQUAL(2, write_buf[1]);
8181
}
8282

83-
TEST_CASE("Byte writer: reserve space: no space left", "[ocs_core], [byte_writer]") {
83+
TEST_CASE("Byte writer: resize: no space left", "[ocs_core], [byte_writer]") {
8484
uint8_t write_buf[2];
8585
memset(write_buf, 7, sizeof(write_buf));
8686

8787
ByteWriter writer(write_buf, sizeof(write_buf));
8888

89-
TEST_ASSERT_EQUAL(writer.get_cap(), writer.reserve(writer.get_cap() + 1));
90-
TEST_ASSERT_EQUAL(0, writer.reserve(1));
89+
writer.resize(writer.get_cap() + 1);
90+
TEST_ASSERT_FALSE(writer.write_byte(10));
9191
}
9292

9393
TEST_CASE("Byte writer: find byte: in range", "[ocs_core], [byte_writer]") {

0 commit comments

Comments
 (0)