diff options
author | ridiculousfish <corydoras@ridiculousfish.com> | 2012-03-03 23:56:35 -0800 |
---|---|---|
committer | ridiculousfish <corydoras@ridiculousfish.com> | 2012-03-03 23:56:35 -0800 |
commit | 27f374a38b74476948497b92f04441c072d4b471 (patch) | |
tree | 52726e910d7b6fa8c1614e841dd65c12a95bc15a /io.cpp | |
parent | baa813c46f72b44b656cc6db86256f7ec71a6965 (diff) |
Some initial work on removing buffer_t from io_data_t
Diffstat (limited to 'io.cpp')
-rw-r--r-- | io.cpp | 20 |
1 files changed, 9 insertions, 11 deletions
@@ -91,7 +91,7 @@ void io_buffer_read( io_data_t *d ) } else { - b_append( d->param2.out_buffer, b, l ); + b_append( d->out_buffer, b, l ); } } } @@ -100,21 +100,20 @@ void io_buffer_read( io_data_t *d ) io_data_t *io_buffer_create( int is_input ) { - io_data_t *buffer_redirect = new io_data_t(); + std::auto_ptr<io_data_t> buffer_redirect(new io_data_t()); buffer_redirect->io_mode=IO_BUFFER; buffer_redirect->next=0; - buffer_redirect->param2.out_buffer= (buffer_t *)malloc( sizeof(buffer_t)); + buffer_redirect->out_buffer= (buffer_t *)malloc( sizeof(buffer_t)); buffer_redirect->is_input = is_input; - b_init( buffer_redirect->param2.out_buffer ); + b_init( buffer_redirect->out_buffer ); buffer_redirect->fd=is_input?0:1; if( exec_pipe( buffer_redirect->param1.pipe_fd ) == -1 ) { debug( 1, PIPE_ERROR ); wperror (L"pipe"); - free( buffer_redirect->param2.out_buffer ); - free( buffer_redirect ); + free( buffer_redirect->out_buffer ); return 0; } else if( fcntl( buffer_redirect->param1.pipe_fd[0], @@ -123,11 +122,10 @@ io_data_t *io_buffer_create( int is_input ) { debug( 1, PIPE_ERROR ); wperror( L"fcntl" ); - free( buffer_redirect->param2.out_buffer ); - free( buffer_redirect ); + free( buffer_redirect->out_buffer ); return 0; } - return buffer_redirect; + return buffer_redirect.release(); } void io_buffer_destroy( io_data_t *io_buffer ) @@ -149,9 +147,9 @@ void io_buffer_destroy( io_data_t *io_buffer ) calling exec_read_io_buffer on the buffer */ - b_destroy( io_buffer->param2.out_buffer ); + b_destroy( io_buffer->out_buffer ); - free( io_buffer->param2.out_buffer ); + free( io_buffer->out_buffer ); delete io_buffer; } |