diff options
Diffstat (limited to 'cpp/src/qpid/framing/Buffer.cpp')
-rw-r--r-- | cpp/src/qpid/framing/Buffer.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/cpp/src/qpid/framing/Buffer.cpp b/cpp/src/qpid/framing/Buffer.cpp index b7c17fa86f..05e9be83a9 100644 --- a/cpp/src/qpid/framing/Buffer.cpp +++ b/cpp/src/qpid/framing/Buffer.cpp @@ -18,12 +18,15 @@ #include "qpid/framing/Buffer.h" #include "qpid/framing/FieldTable.h" -qpid::framing::Buffer::Buffer(u_int32_t _size) : size(_size), position(0), limit(_size){ +qpid::framing::Buffer::Buffer(u_int32_t _size) : size(_size), owner(true), position(0), limit(_size){ data = new char[size]; } +qpid::framing::Buffer::Buffer(char* _data, u_int32_t _size) : size(_size), owner(false), data(_data), position(0), limit(_size){ +} + qpid::framing::Buffer::~Buffer(){ - delete[] data; + if(owner) delete[] data; } void qpid::framing::Buffer::flip(){ |