From 7c3609b04eabc79db0c0b245a155fc3c5e875053 Mon Sep 17 00:00:00 2001 From: chai Date: Sat, 8 Sep 2018 14:52:17 +0800 Subject: *update --- src/libjin/Filesystem/Buffer.h | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) (limited to 'src/libjin/Filesystem/Buffer.h') diff --git a/src/libjin/Filesystem/Buffer.h b/src/libjin/Filesystem/Buffer.h index 3cd92cd..5cb6468 100644 --- a/src/libjin/Filesystem/Buffer.h +++ b/src/libjin/Filesystem/Buffer.h @@ -8,27 +8,43 @@ namespace jin namespace filesystem { + /** + * 在堆上分配指定空间的buffer + */ class Buffer { public: Buffer() : data(0), size(0) {} Buffer(const Buffer& src) { - delete data; + delete[] data; size = src.size; data = new char[size]; memcpy(data, src.data, size); } - inline Buffer(void* d, int s) + Buffer(void* d, int s) { - data = new char(size); + data = new char[size]; memcpy(data, d, size); size = s; } - inline ~Buffer() + Buffer(size_t s) + { + data = new char[s]; + memset(data, 0, s); + size = s; + } + ~Buffer() { + delete[] data; size = 0; - delete[] data; + } + void operator = (const Buffer& buffer) + { + delete[] data; + size = buffer.size; + data = new char[size]; + memcpy(data, buffer.data, size); } public: -- cgit v1.1-26-g67d0