summaryrefslogtreecommitdiff
path: root/io
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2015-10-16 21:08:57 +0100
committerCaolán McNamara <caolanm@redhat.com>2015-10-17 14:46:27 +0100
commit1769074bd556e21e0c6ed29d9059960f998e28d1 (patch)
treeef3988750fcad2c9474afeabb582c48e486a6a82 /io
parent6806a0260d76d9c8abdb41aa07d90fc264520f7c (diff)
coverity#1327454 Uncaught exception
and a boatload more along that vein Change-Id: Ic7d458d3b8e5c99df1995251f75d3ad57d0df967
Diffstat (limited to 'io')
-rw-r--r--io/source/stm/omark.cxx39
-rw-r--r--io/source/stm/opipe.cxx30
-rw-r--r--io/source/stm/streamhelper.cxx63
-rw-r--r--io/source/stm/streamhelper.hxx33
4 files changed, 39 insertions, 126 deletions
diff --git a/io/source/stm/omark.cxx b/io/source/stm/omark.cxx
index 108a9aa5c945..646f06c2b98b 100644
--- a/io/source/stm/omark.cxx
+++ b/io/source/stm/omark.cxx
@@ -174,19 +174,8 @@ void OMarkableOutputStream::writeBytes(const Sequence< sal_Int8 >& aData)
else {
MutexGuard guard( m_mutex );
// new data must be buffered
- try
- {
- m_pBuffer->writeAt( m_nCurrentPos , aData );
- m_nCurrentPos += aData.getLength();
- }
- catch( IRingBuffer_OutOfBoundsException & )
- {
- throw BufferSizeExceededException();
- }
- catch( IRingBuffer_OutOfMemoryException & )
- {
- throw BufferSizeExceededException();
- }
+ m_pBuffer->writeAt( m_nCurrentPos , aData );
+ m_nCurrentPos += aData.getLength();
checkMarksAndFlush();
}
}
@@ -605,16 +594,7 @@ sal_Int32 OMarkableInputStream::readBytes(Sequence< sal_Int8 >& aData, sal_Int32
OSL_ASSERT( aData.getLength() == nRead );
- try
- {
- m_pBuffer->writeAt( m_pBuffer->getSize() , aData );
- }
- catch( IRingBuffer_OutOfMemoryException & ) {
- throw BufferSizeExceededException();
- }
- catch( IRingBuffer_OutOfBoundsException & ) {
- throw BufferSizeExceededException();
- }
+ m_pBuffer->writeAt( m_pBuffer->getSize() , aData );
if( nRead < nToRead ) {
nBytesToRead = nBytesToRead - (nToRead-nRead);
@@ -668,18 +648,7 @@ sal_Int32 OMarkableInputStream::readSomeBytes(Sequence< sal_Int8 >& aData, sal_I
if( nRead ) {
aData.realloc( nRead );
- try
- {
- m_pBuffer->writeAt( m_pBuffer->getSize() , aData );
- }
- catch( IRingBuffer_OutOfMemoryException & )
- {
- throw BufferSizeExceededException();
- }
- catch( IRingBuffer_OutOfBoundsException & )
- {
- throw BufferSizeExceededException();
- }
+ m_pBuffer->writeAt( m_pBuffer->getSize() , aData );
}
nBytesRead = Min( nMaxBytesToRead , nInBuffer + nRead );
diff --git a/io/source/stm/opipe.cxx b/io/source/stm/opipe.cxx
index ad59a0951288..494619cf882c 100644
--- a/io/source/stm/opipe.cxx
+++ b/io/source/stm/opipe.cxx
@@ -303,33 +303,17 @@ void OPipeImpl::writeBytes(const Sequence< sal_Int8 >& aData)
}
// adjust buffersize if necessary
-
- try
+ if( m_nBytesToSkip )
{
- if( m_nBytesToSkip )
- {
- Sequence< sal_Int8 > seqCopy( nLen - m_nBytesToSkip );
- memcpy( seqCopy.getArray() , &( aData.getConstArray()[m_nBytesToSkip] ) , nLen-m_nBytesToSkip );
- m_pFIFO->write( seqCopy );
- }
- else
- {
- m_pFIFO->write( aData );
- }
- m_nBytesToSkip = 0;
+ Sequence< sal_Int8 > seqCopy( nLen - m_nBytesToSkip );
+ memcpy( seqCopy.getArray() , &( aData.getConstArray()[m_nBytesToSkip] ) , nLen-m_nBytesToSkip );
+ m_pFIFO->write( seqCopy );
}
- catch ( I_FIFO_OutOfBoundsException & )
+ else
{
- throw BufferSizeExceededException(
- "Pipe::writeBytes BufferSizeExceededException",
- *this );
- }
- catch ( I_FIFO_OutOfMemoryException & )
- {
- throw BufferSizeExceededException(
- "Pipe::writeBytes BufferSizeExceededException",
- *this );
+ m_pFIFO->write( aData );
}
+ m_nBytesToSkip = 0;
// readBytes may check again if enough bytes are available
m_conditionBytesAvail.set();
diff --git a/io/source/stm/streamhelper.cxx b/io/source/stm/streamhelper.cxx
index 516d4e506912..3e789ac0dada 100644
--- a/io/source/stm/streamhelper.cxx
+++ b/io/source/stm/streamhelper.cxx
@@ -33,50 +33,22 @@ using namespace ::com::sun::star::uno;
namespace io_stm {
void MemFIFO::write( const Sequence< sal_Int8 > &seq )
- throw ( I_FIFO_OutOfMemoryException,
- I_FIFO_OutOfBoundsException )
+ throw ( css::io::BufferSizeExceededException )
{
- try
- {
- writeAt(getSize(), seq );
- }
- catch( IRingBuffer_OutOfMemoryException & )
- {
- throw I_FIFO_OutOfMemoryException();
- }
- catch( IRingBuffer_OutOfBoundsException & )
- {
- throw I_FIFO_OutOfBoundsException();
- }
+ writeAt(getSize(), seq);
}
-void MemFIFO::read( Sequence<sal_Int8> &seq , sal_Int32 nBufferLen ) throw (I_FIFO_OutOfBoundsException)
+void MemFIFO::read( Sequence<sal_Int8> &seq , sal_Int32 nBufferLen ) throw (css::io::BufferSizeExceededException)
{
- try
- {
- readAt(0, seq , nBufferLen);
- forgetFromStart( nBufferLen );
- }
- catch ( IRingBuffer_OutOfBoundsException & )
- {
- throw I_FIFO_OutOfBoundsException();
- }
+ readAt(0, seq , nBufferLen);
+ forgetFromStart( nBufferLen );
}
-void MemFIFO::skip( sal_Int32 nBytesToSkip ) throw ( I_FIFO_OutOfBoundsException )
+void MemFIFO::skip( sal_Int32 nBytesToSkip ) throw ( css::io::BufferSizeExceededException )
{
- try
- {
- forgetFromStart( nBytesToSkip );
- }
- catch( IRingBuffer_OutOfBoundsException & )
- {
- throw I_FIFO_OutOfBoundsException();
- }
+ forgetFromStart( nBytesToSkip );
}
-
-
MemRingBuffer::MemRingBuffer()
{
m_nBufferLen = 0;
@@ -92,7 +64,7 @@ MemRingBuffer::~MemRingBuffer()
}
}
-void MemRingBuffer::resizeBuffer( sal_Int32 nMinSize ) throw( IRingBuffer_OutOfMemoryException)
+void MemRingBuffer::resizeBuffer( sal_Int32 nMinSize ) throw(css::io::BufferSizeExceededException)
{
sal_Int32 nNewLen = 1;
@@ -108,7 +80,8 @@ void MemRingBuffer::resizeBuffer( sal_Int32 nMinSize ) throw( IRingBuffer_OutOfM
if( nNewLen != m_nBufferLen ) {
m_p = static_cast<sal_Int8 *>(rtl_reallocateMemory( m_p , nNewLen ));
if( !m_p ) {
- throw IRingBuffer_OutOfMemoryException();
+ throw css::io::BufferSizeExceededException(
+ "MemRingBuffer::resizeBuffer BufferSizeExceededException");
}
if( m_nStart + m_nOccupiedBuffer > m_nBufferLen ) {
@@ -121,10 +94,11 @@ void MemRingBuffer::resizeBuffer( sal_Int32 nMinSize ) throw( IRingBuffer_OutOfM
void MemRingBuffer::readAt( sal_Int32 nPos, Sequence<sal_Int8> &seq , sal_Int32 nBytesToRead ) const
- throw(IRingBuffer_OutOfBoundsException)
+ throw(css::io::BufferSizeExceededException)
{
if( nPos + nBytesToRead > m_nOccupiedBuffer ) {
- throw IRingBuffer_OutOfBoundsException();
+ throw css::io::BufferSizeExceededException(
+ "MemRingBuffer::readAt BufferSizeExceededException");
}
sal_Int32 nStartReadingPos = nPos + m_nStart;
@@ -146,15 +120,15 @@ void MemRingBuffer::readAt( sal_Int32 nPos, Sequence<sal_Int8> &seq , sal_Int32
void MemRingBuffer::writeAt( sal_Int32 nPos, const Sequence<sal_Int8> &seq )
- throw (IRingBuffer_OutOfBoundsException,
- IRingBuffer_OutOfMemoryException )
+ throw (css::io::BufferSizeExceededException)
{
checkInvariants();
sal_Int32 nLen = seq.getLength();
if( nPos < 0 || nPos > std::numeric_limits< sal_Int32 >::max() - nLen )
{
- throw IRingBuffer_OutOfBoundsException();
+ throw css::io::BufferSizeExceededException(
+ "MemRingBuffer::writeAt BufferSizeExceededException");
}
if( nPos + nLen - m_nOccupiedBuffer > 0 ) {
@@ -187,11 +161,12 @@ sal_Int32 MemRingBuffer::getSize() const throw()
return m_nOccupiedBuffer;
}
-void MemRingBuffer::forgetFromStart( sal_Int32 nBytesToForget ) throw (IRingBuffer_OutOfBoundsException)
+void MemRingBuffer::forgetFromStart( sal_Int32 nBytesToForget ) throw (css::io::BufferSizeExceededException)
{
checkInvariants();
if( nBytesToForget > m_nOccupiedBuffer ) {
- throw IRingBuffer_OutOfBoundsException();
+ throw css::io::BufferSizeExceededException(
+ "MemRingBuffer::forgetFromStart BufferSizeExceededException");
}
m_nStart += nBytesToForget;
if( m_nStart >= m_nBufferLen ) {
diff --git a/io/source/stm/streamhelper.hxx b/io/source/stm/streamhelper.hxx
index 463c185364e4..fd00bcc7e241 100644
--- a/io/source/stm/streamhelper.hxx
+++ b/io/source/stm/streamhelper.hxx
@@ -20,6 +20,8 @@
#ifndef INCLUDED_IO_SOURCE_STM_STREAMHELPER_HXX
#define INCLUDED_IO_SOURCE_STM_STREAMHELPER_HXX
+#include <com/sun/star/io/BufferSizeExceededException.hpp>
+
// Save NDEBUG state
#ifdef NDEBUG
#define STREAMHELPER_HXX_HAD_NDEBUG
@@ -37,14 +39,6 @@
namespace io_stm
{
-class IRingBuffer_OutOfBoundsException :
- public Exception
-{};
-
-class IRingBuffer_OutOfMemoryException :
- public Exception
-{};
-
class MemRingBuffer
{
public:
@@ -56,18 +50,17 @@ public:
* data is written beyond end.
***/
void writeAt( sal_Int32 nPos, const Sequence<sal_Int8> &)
- throw( IRingBuffer_OutOfMemoryException,
- IRingBuffer_OutOfBoundsException );
+ throw(css::io::BufferSizeExceededException);
void readAt( sal_Int32 nPos, Sequence<sal_Int8> & , sal_Int32 nBytesToRead ) const
- throw( IRingBuffer_OutOfBoundsException );
+ throw(css::io::BufferSizeExceededException);
sal_Int32 getSize() const throw();
- void forgetFromStart( sal_Int32 nBytesToForget ) throw(IRingBuffer_OutOfBoundsException);
+ void forgetFromStart(sal_Int32 nBytesToForget) throw(css::io::BufferSizeExceededException);
virtual void shrink() throw();
private:
- void resizeBuffer( sal_Int32 nMinSize ) throw( IRingBuffer_OutOfMemoryException );
+ void resizeBuffer(sal_Int32 nMinSize) throw(css::io::BufferSizeExceededException);
inline void checkInvariants() {
assert( m_nBufferLen >= 0 );
assert( m_nOccupiedBuffer >= 0 );
@@ -84,24 +77,16 @@ private:
};
-class I_FIFO_OutOfBoundsException :
- public Exception
-{};
-
-class I_FIFO_OutOfMemoryException :
- public Exception
-{};
-
class MemFIFO :
private MemRingBuffer
{
public:
void write( const Sequence<sal_Int8> &)
- throw( I_FIFO_OutOfMemoryException, I_FIFO_OutOfBoundsException );
+ throw( css::io::BufferSizeExceededException );
void read( Sequence<sal_Int8> & , sal_Int32 nBytesToRead )
- throw( I_FIFO_OutOfBoundsException );
+ throw( css::io::BufferSizeExceededException );
void skip( sal_Int32 nBytesToSkip )
- throw( I_FIFO_OutOfBoundsException );
+ throw( css::io::BufferSizeExceededException );
sal_Int32 getSize() const throw()
{ return MemRingBuffer::getSize(); }
virtual void shrink() throw() override