| 12 | } |
| 13 | |
| 14 | void BufferWriter::write(const uint8_t* buffer, uint64_t len) { |
| 15 | if (blob.size + len >= maximumSize) { |
| 16 | do { |
| 17 | maximumSize *= 2; |
| 18 | } while (blob.size + len > maximumSize); |
| 19 | auto new_data = std::make_unique<uint8_t[]>(maximumSize); |
| 20 | memcpy(new_data.get(), data, blob.size); |
| 21 | data = new_data.get(); |
| 22 | blob.data = std::move(new_data); |
| 23 | } |
| 24 | |
| 25 | memcpy(data + blob.size, buffer, len); |
| 26 | blob.size += len; |
| 27 | } |
| 28 | |
| 29 | } // namespace common |
| 30 | } // namespace lbug |