diff options
author | chai <chaifix@163.com> | 2019-03-26 09:09:02 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2019-03-26 09:09:02 +0800 |
commit | d9041d6e12ded456c17622f7f2e7bbacb9e99b1a (patch) | |
tree | 6fd4febeb79b9b5efb5341ea352e05cd7752f5e8 /source/libs/asura-lib-utils/io/data_buffer.cpp | |
parent | 70f8aa8d1a3c15bd1eee3cdd88b9b9ce8970fae5 (diff) |
*misc
Diffstat (limited to 'source/libs/asura-lib-utils/io/data_buffer.cpp')
-rw-r--r-- | source/libs/asura-lib-utils/io/data_buffer.cpp | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/source/libs/asura-lib-utils/io/data_buffer.cpp b/source/libs/asura-lib-utils/io/data_buffer.cpp index 98675e9..3c0100b 100644 --- a/source/libs/asura-lib-utils/io/data_buffer.cpp +++ b/source/libs/asura-lib-utils/io/data_buffer.cpp @@ -32,19 +32,27 @@ namespace AsuraEngine delete[] mBytes; } - void DataBuffer::Load(DataBuffer& db) - { - Load(db.GetData(), db.GetSize()); - } - - void DataBuffer::Load(const void* data, std::size_t size) + void DataBuffer::Refactor(size_t size) { if (!mBytes || mSize != size) { delete[] mBytes; mBytes = new byte[size]; + mSize = size; } - memcpy(mBytes, data, size); + memset(mBytes, 0, size * sizeof(byte)); + } + + size_t DataBuffer::Load(DataBuffer& db) + { + return Load(db.GetData(), db.GetSize()); + } + + size_t DataBuffer::Load(const void* data, std::size_t size) + { + size_t len = mSize > size ? size : mSize; + memcpy(mBytes, data, len); + return len; } void DataBuffer::Move(void* bytes, std::size_t size) |