aboutsummaryrefslogtreecommitdiffhomepage
path: root/io.cpp
diff options
context:
space:
mode:
authorGravatar ridiculousfish <corydoras@ridiculousfish.com>2012-03-03 23:56:35 -0800
committerGravatar ridiculousfish <corydoras@ridiculousfish.com>2012-03-03 23:56:35 -0800
commit27f374a38b74476948497b92f04441c072d4b471 (patch)
tree52726e910d7b6fa8c1614e841dd65c12a95bc15a /io.cpp
parentbaa813c46f72b44b656cc6db86256f7ec71a6965 (diff)
Some initial work on removing buffer_t from io_data_t
Diffstat (limited to 'io.cpp')
-rw-r--r--io.cpp20
1 files changed, 9 insertions, 11 deletions
diff --git a/io.cpp b/io.cpp
index 75d6c253..91f3f8c3 100644
--- a/io.cpp
+++ b/io.cpp
@@ -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;
}