summaryrefslogtreecommitdiff
path: root/source/libs/asura-lib-utils/io/data_buffer.cpp
diff options
context:
space:
mode:
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)