Skip to content

Commit 8c76d3d

Browse files
committed
[REFACT] Cleanup of ByteBuffer initialization
1 parent da7b804 commit 8c76d3d

File tree

2 files changed

+17
-15
lines changed

2 files changed

+17
-15
lines changed

parser/ByteBuffer.cpp

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
#include <iostream>
33
#include <limits.h>
44

5-
ByteBuffer::ByteBuffer(bufsize_t v_size, bufsize_t v_padding)
6-
: ByteBuffer()
5+
6+
void ByteBuffer::_init(const bufsize_t& v_size, const bufsize_t& v_padding)
77
{
88
if (v_size == 0) throw BufferException("Zero size requested");
99

@@ -15,17 +15,23 @@ ByteBuffer::ByteBuffer(bufsize_t v_size, bufsize_t v_padding)
1515
}
1616
}
1717

18+
ByteBuffer::ByteBuffer(bufsize_t v_size, bufsize_t v_padding)
19+
: content(nullptr), contentSize(0), padding(0), originalSize(0)
20+
{
21+
_init(v_size, v_padding);
22+
}
23+
1824
ByteBuffer::ByteBuffer(BYTE* v_content, bufsize_t v_size, bufsize_t v_padding)
19-
: ByteBuffer(v_size, v_padding)
25+
: content(nullptr), contentSize(0), padding(0), originalSize(0)
2026
{
21-
if (v_size == 0) throw BufferException("Zero size requested");
27+
_init(v_size, v_padding);
2228
if (this->content && v_content) {
2329
::memcpy(this->content, v_content, v_size);
2430
}
2531
}
2632

2733
ByteBuffer::ByteBuffer(AbstractByteBuffer *v_parent, offset_t v_offset, bufsize_t v_size, bufsize_t v_padding)
28-
: ByteBuffer()
34+
: content(nullptr), contentSize(0), padding(0), originalSize(0)
2935
{
3036
if (!v_parent) throw BufferException("Cannot make subBuffer for NULL buffer!");
3137
if (!v_size) throw BufferException("Cannot make 0 size buffer!");
@@ -38,12 +44,9 @@ ByteBuffer::ByteBuffer(AbstractByteBuffer *v_parent, offset_t v_offset, bufsize_
3844
BYTE *bContent = v_parent->getContentAt(v_offset, copySize);
3945
if (!bContent) throw BufferException("Cannot make Buffer for NULL content!");
4046

41-
this->content = allocContent(allocSize, v_padding);
42-
if (this->content) {
43-
this->padding = v_padding;
44-
this->contentSize = allocSize;
45-
this->originalSize = this->contentSize;
46-
::memcpy(this->content, bContent, copySize);
47+
_init(v_size, v_padding);
48+
if (this->content && bContent) {
49+
::memcpy(this->content, bContent, v_size);
4750
}
4851
}
4952

parser/include/bearparser/ByteBuffer.h

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,6 @@
66
class ByteBuffer : public AbstractByteBuffer
77
{
88
public:
9-
ByteBuffer()
10-
: content(nullptr), contentSize(0), padding(0), originalSize(0)
11-
{}
12-
139
ByteBuffer(bufsize_t v_size, bufsize_t padding = DEFAULT_PADDING);
1410
ByteBuffer(BYTE *v_content, bufsize_t v_size, bufsize_t padding = DEFAULT_PADDING);
1511
ByteBuffer(AbstractByteBuffer *sourceBuf, offset_t offset, bufsize_t size, bufsize_t padding = DEFAULT_PADDING);
@@ -30,4 +26,7 @@ class ByteBuffer : public AbstractByteBuffer
3026
bufsize_t padding;
3127

3228
bufsize_t originalSize;
29+
30+
private:
31+
void _init(const bufsize_t& v_size, const bufsize_t& v_padding = DEFAULT_PADDING);
3332
};

0 commit comments

Comments
 (0)