summaryrefslogtreecommitdiff
path: root/source/libs/asura-lib-utils/io/data_buffer.cpp
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2019-03-26 09:09:02 +0800
committerchai <chaifix@163.com>2019-03-26 09:09:02 +0800
commitd9041d6e12ded456c17622f7f2e7bbacb9e99b1a (patch)
tree6fd4febeb79b9b5efb5341ea352e05cd7752f5e8 /source/libs/asura-lib-utils/io/data_buffer.cpp
parent70f8aa8d1a3c15bd1eee3cdd88b9b9ce8970fae5 (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.cpp22
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)