diff options
-rw-r--r-- | io.cpp | 2 | ||||
-rw-r--r-- | io.h | 14 |
2 files changed, 3 insertions, 13 deletions
@@ -133,7 +133,6 @@ io_buffer_t *io_buffer_t::create(bool is_input) { bool success = true; io_buffer_t *buffer_redirect = new io_buffer_t(is_input ? 0 : 1); - buffer_redirect->out_buffer_create(); buffer_redirect->is_input = is_input ? true : false; if (exec_pipe(buffer_redirect->pipe_fd) == -1) @@ -163,6 +162,7 @@ io_buffer_t *io_buffer_t::create(bool is_input) io_buffer_t::~io_buffer_t() { + delete out_buffer; /** If this is an input buffer, then io_read_buffer will not have been called, and we need to close the output fd as well. @@ -120,11 +120,11 @@ class io_buffer_t : public io_pipe_t { private: /** buffer to save output in */ - shared_ptr<std::vector<char> > out_buffer; + std::vector<char> *out_buffer; io_buffer_t(int f): io_pipe_t(f), - out_buffer() + out_buffer(new std::vector<char>) { io_mode = IO_BUFFER; } @@ -134,36 +134,26 @@ public: virtual ~io_buffer_t(); - /** Function to create the output buffer */ - void out_buffer_create() - { - out_buffer.reset(new std::vector<char>); - } - /** Function to append to the buffer */ void out_buffer_append(const char *ptr, size_t count) { - assert(out_buffer.get() != NULL); out_buffer->insert(out_buffer->end(), ptr, ptr + count); } /** Function to get a pointer to the buffer */ char *out_buffer_ptr(void) { - assert(out_buffer.get() != NULL); return out_buffer->empty() ? NULL : &out_buffer->at(0); } const char *out_buffer_ptr(void) const { - assert(out_buffer.get() != NULL); return out_buffer->empty() ? NULL : &out_buffer->at(0); } /** Function to get the size of the buffer */ size_t out_buffer_size(void) const { - assert(out_buffer.get() != NULL); return out_buffer->size(); } |