diff options
author | Noel Grandin <noelgrandin@gmail.com> | 2016-02-21 14:15:39 +0200 |
---|---|---|
committer | Noel Grandin <noelgrandin@gmail.com> | 2016-04-01 07:32:28 +0000 |
commit | 9f6e6fabcd5718e0b65437c5ce398e520f47aae1 (patch) | |
tree | 63c5667782271ec4faf2e0df0f844a1d4dd9aebe | |
parent | e097e419ee5c47239262a16526f4e37775fb2004 (diff) |
reduce unnecessary realloc'ing
Change-Id: Ic597814706573576a0ba330a69a7a38aa97e5224
Reviewed-on: https://gerrit.libreoffice.org/23694
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
-rw-r--r-- | io/source/acceptor/acc_socket.cxx | 10 | ||||
-rw-r--r-- | io/source/connector/ctr_pipe.cxx | 9 | ||||
-rw-r--r-- | io/source/connector/ctr_socket.cxx | 7 |
3 files changed, 18 insertions, 8 deletions
diff --git a/io/source/acceptor/acc_socket.cxx b/io/source/acceptor/acc_socket.cxx index b1a30a15a82f..3fe29f3c0596 100644 --- a/io/source/acceptor/acc_socket.cxx +++ b/io/source/acceptor/acc_socket.cxx @@ -198,13 +198,12 @@ namespace io_acceptor { { notifyListeners(this, &_started, callStarted); - if( aReadBytes.getLength() != nBytesToRead ) + if( aReadBytes.getLength() < nBytesToRead ) { aReadBytes.realloc( nBytesToRead ); } - sal_Int32 i = 0; - i = m_socket.read( aReadBytes.getArray() , aReadBytes.getLength() ); + sal_Int32 i = m_socket.read( aReadBytes.getArray() , aReadBytes.getLength() ); if(i != nBytesToRead) { @@ -220,7 +219,10 @@ namespace io_acceptor { throw ioException; } - + if( i < aReadBytes.getLength() ) + { + aReadBytes.realloc( i ); + } return i; } else diff --git a/io/source/connector/ctr_pipe.cxx b/io/source/connector/ctr_pipe.cxx index df1529173ba6..dafdc4208019 100644 --- a/io/source/connector/ctr_pipe.cxx +++ b/io/source/connector/ctr_pipe.cxx @@ -49,11 +49,16 @@ namespace stoc_connector { { if( ! m_nStatus ) { - if( aReadBytes.getLength() != nBytesToRead ) + if( aReadBytes.getLength() < nBytesToRead ) { aReadBytes.realloc( nBytesToRead ); } - return m_pipe.read( aReadBytes.getArray() , aReadBytes.getLength() ); + sal_Int32 n = m_pipe.read( aReadBytes.getArray() , aReadBytes.getLength() ); + if( n < aReadBytes.getLength() ) + { + aReadBytes.realloc( n ); + } + return n; } else { throw IOException(); diff --git a/io/source/connector/ctr_socket.cxx b/io/source/connector/ctr_socket.cxx index 2c0d3f691b2f..787a470d14b1 100644 --- a/io/source/connector/ctr_socket.cxx +++ b/io/source/connector/ctr_socket.cxx @@ -123,7 +123,7 @@ namespace stoc_connector { { notifyListeners(this, &_started, callStarted); - if( aReadBytes.getLength() != nBytesToRead ) + if( aReadBytes.getLength() < nBytesToRead ) { aReadBytes.realloc( nBytesToRead ); } @@ -143,7 +143,10 @@ namespace stoc_connector { throw ioException; } - + if( i < aReadBytes.getLength() ) + { + aReadBytes.realloc( i ); + } return i; } else |