summaryrefslogtreecommitdiff
path: root/src/data_buffer.cpp
blob: 33cb0b3abd0a0e6c848e2649a3683a036d0ed394 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/* SPDX-License-Identifier: Unlicense
 */

#include "data_buffer.h"

#include <cassert>
#include <cstring>

void DataBuffer::Expand(size_t new_size)
{
    assert(buffer);
    if (new_size <= buffer_size) {
        return;
    }
    uint8_t *new_buffer{new uint8_t[new_size]};
    assert(new_buffer);
    memcpy(new_buffer, buffer, occupied_size);
    delete [] buffer;
    buffer = new_buffer;
    buffer_size = new_size;
}

DataBuffer::~DataBuffer()
{
    delete [] buffer;
    buffer = nullptr;
    buffer_size = 0;
    occupied_size = 0;
}