diff options
Diffstat (limited to 'src/libjin/Filesystem')
-rw-r--r-- | src/libjin/Filesystem/Buffer.h | 26 |
1 files changed, 21 insertions, 5 deletions
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: |