summaryrefslogtreecommitdiff
path: root/tools/inc
diff options
context:
space:
mode:
authorTor Lillqvist <tml@iki.fi>2013-04-20 16:09:14 +0300
committerTor Lillqvist <tml@iki.fi>2013-04-20 16:09:14 +0300
commit699a22fd492a45a376735e6e9c5f9d474671264f (patch)
treeec1f6b683a959579827ae5f5d5b4ac83e716b10e /tools/inc
parent3af6366dee15674b8e74c084ddc111bc93c5c1c2 (diff)
Include <cmath> for std::abs()
Change-Id: Id94260d41e821386e2c0aef67075658bee7fd49f
Diffstat (limited to 'tools/inc')
-rw-r--r--tools/inc/tools/gen.hxx1
1 files changed, 1 insertions, 0 deletions
diff --git a/tools/inc/tools/gen.hxx b/tools/inc/tools/gen.hxx
index 19d10bd96af5..65f4f8c4eff0 100644
--- a/tools/inc/tools/gen.hxx
+++ b/tools/inc/tools/gen.hxx
@@ -24,6 +24,7 @@
#include <limits.h>
#include <ostream>
+#include <cmath>
class SvStream;
='file diffstat' width='7%'> -rw-r--r--package/source/zipapi/ZipFile.cxx6
4 files changed, 12 insertions, 8 deletions
diff --git a/package/source/zipapi/XBufferedThreadedStream.cxx b/package/source/zipapi/XBufferedThreadedStream.cxx
index 990844af0bd7..87b7349cccba 100644
--- a/package/source/zipapi/XBufferedThreadedStream.cxx
+++ b/package/source/zipapi/XBufferedThreadedStream.cxx
@@ -50,10 +50,11 @@ private:
}
XBufferedThreadedStream::XBufferedThreadedStream(
- const Reference<XInputStream>& xSrcStream )
+ const Reference<XInputStream>& xSrcStream,
+ sal_Int64 nStreamSize)
: mxSrcStream( xSrcStream )
, mnPos(0)
-, mnStreamSize( xSrcStream->available() )
+, mnStreamSize( nStreamSize )
, mnOffset( 0 )
, mxUnzippingThread( new UnzippingThread(*this) )
, mbTerminateThread( false )
diff --git a/package/source/zipapi/XBufferedThreadedStream.hxx b/package/source/zipapi/XBufferedThreadedStream.hxx
index b047b25fdf85..9ba908e01f5e 100644
--- a/package/source/zipapi/XBufferedThreadedStream.hxx
+++ b/package/source/zipapi/XBufferedThreadedStream.hxx
@@ -23,8 +23,8 @@ class XBufferedThreadedStream : public cppu::WeakImplHelper< css::io::XInputStre
{
private:
const css::uno::Reference<XInputStream> mxSrcStream;
- size_t mnPos; /// position in stream
- size_t mnStreamSize; /// available size of stream
+ sal_Int64 mnPos; /// position in stream
+ sal_Int64 mnStreamSize; /// available size of stream
Buffer maInUseBuffer; /// Buffer block in use
int mnOffset; /// position in maInUseBuffer
@@ -59,7 +59,8 @@ private:
public:
XBufferedThreadedStream(
- const css::uno::Reference<XInputStream>& xSrcStream );
+ const css::uno::Reference<XInputStream>& xSrcStream,
+ sal_Int64 nStreamSize /* cf. sal_Int32 available(); */ );
virtual ~XBufferedThreadedStream() override;
diff --git a/package/source/zipapi/XUnbufferedStream.hxx b/package/source/zipapi/XUnbufferedStream.hxx
index 4c05b9dad3d9..a463983b90b0 100644
--- a/package/source/zipapi/XUnbufferedStream.hxx
+++ b/package/source/zipapi/XUnbufferedStream.hxx
@@ -81,6 +81,8 @@ public:
const css::uno::Reference < css::io::XInputStream >& xRawStream,
const ::rtl::Reference< EncryptionData >& rData );
+ sal_Int64 getSize() { return mnZipSize; }
+
virtual ~XUnbufferedStream() override;
// XInputStream
diff --git a/package/source/zipapi/ZipFile.cxx b/package/source/zipapi/ZipFile.cxx
index 2a45119f11d2..c331282f9c76 100644
--- a/package/source/zipapi/ZipFile.cxx
+++ b/package/source/zipapi/ZipFile.cxx
@@ -613,16 +613,16 @@ uno::Reference< XInputStream > ZipFile::createStreamForZipEntry(
{
::osl::MutexGuard aGuard( m_aMutexHolder->GetMutex() );
- uno::Reference<io::XInputStream> xSrcStream = new XUnbufferedStream(
+ rtl::Reference< XUnbufferedStream > xSrcStream = new XUnbufferedStream(
m_xContext, aMutexHolder, rEntry, xStream, rData, nStreamMode, bIsEncrypted, aMediaType, bRecoveryMode);
uno::Reference<io::XInputStream> xBufStream;
static const sal_Int32 nThreadingThreshold = 10000;
if( xSrcStream->available() > nThreadingThreshold )
- xBufStream = new XBufferedThreadedStream(xSrcStream);
+ xBufStream = new XBufferedThreadedStream(xSrcStream.get(), xSrcStream->getSize());
else
- xBufStream = new XBufferedStream(xSrcStream);
+ xBufStream = new XBufferedStream(xSrcStream.get());
return xBufStream;
}