summaryrefslogtreecommitdiff
path: root/writerperfect
diff options
context:
space:
mode:
authorFridrich Štrba <fridrich.strba@bluewin.ch>2012-05-25 16:47:13 +0200
committerFridrich Štrba <fridrich.strba@bluewin.ch>2012-05-25 16:47:23 +0200
commit87ccec22b105fda607f70467a14cf60050e45009 (patch)
tree9defb23c587f95027c8063a857de716e98d56d7f /writerperfect
parentc77918bb03974ff9be90c889f77e62ea0755052f (diff)
Trying to wrap the tools references inside a struct
Change-Id: Ie4d9a1d2c131f14928d7cc47f1b6314cf7e7f41d
Diffstat (limited to 'writerperfect')
-rw-r--r--writerperfect/source/stream/WPXSvStream.cxx22
-rw-r--r--writerperfect/source/stream/WPXSvStream.h14
2 files changed, 25 insertions, 11 deletions
diff --git a/writerperfect/source/stream/WPXSvStream.cxx b/writerperfect/source/stream/WPXSvStream.cxx
index d71e155377d2..cf5c52d45488 100644
--- a/writerperfect/source/stream/WPXSvStream.cxx
+++ b/writerperfect/source/stream/WPXSvStream.cxx
@@ -163,17 +163,20 @@ WPXInputStream *WPXSvInputStream::getDocumentOLEStream(const char *name)
return 0;
}
- mxChildrenStorages.push_back(new SotStorage( pStream, sal_True ));
+ SotStorageRefWrapper storageRefWrapper;
+ storageRefWrapper.ref = new SotStorage( pStream, sal_True );
+ mxChildrenStorages.push_back( storageRefWrapper );
unsigned i = 0;
while (i < aElems.size())
{
- if( mxChildrenStorages.back()->IsStream(aElems[i]))
+ if( mxChildrenStorages.back().ref->IsStream(aElems[i]))
break;
- else if (mxChildrenStorages.back()->IsStorage(aElems[i]))
+ else if (mxChildrenStorages.back().ref->IsStorage(aElems[i]))
{
- SotStorageRef &tmpParent(mxChildrenStorages.back());
- mxChildrenStorages.push_back(tmpParent->OpenSotStorage(aElems[i++], STREAM_STD_READ));
+ SotStorageRef tmpParent(mxChildrenStorages.back().ref);
+ storageRefWrapper.ref = tmpParent->OpenSotStorage(aElems[i++], STREAM_STD_READ);
+ mxChildrenStorages.push_back(storageRefWrapper);
}
else
// should not happen
@@ -186,18 +189,19 @@ WPXInputStream *WPXSvInputStream::getDocumentOLEStream(const char *name)
if (i >= aElems.size())
return 0;
- mxChildrenStreams.push_back( mxChildrenStorages.back()->OpenSotStream(
- aElems[i], STREAM_STD_READ ));
+ SotStorageStreamRefWrapper storageStreamRefWrapper;
+ storageStreamRefWrapper.ref = mxChildrenStorages.back().ref->OpenSotStream( aElems[i], STREAM_STD_READ );
+ mxChildrenStreams.push_back( storageStreamRefWrapper );
mxSeekable->seek(tmpPosition);
- if ( !mxChildrenStreams.back().Is() || mxChildrenStreams.back()->GetError() )
+ if ( !mxChildrenStreams.back().ref.Is() || mxChildrenStreams.back().ref->GetError() )
{
mxSeekable->seek(tmpPosition);
return 0;
}
- Reference < XInputStream > xContents(new utl::OSeekableInputStreamWrapper( mxChildrenStreams.back() ));
+ Reference < XInputStream > xContents(new utl::OSeekableInputStreamWrapper( mxChildrenStreams.back().ref ));
mxSeekable->seek(tmpPosition);
if (xContents.is())
return new WPXSvInputStream( xContents );
diff --git a/writerperfect/source/stream/WPXSvStream.h b/writerperfect/source/stream/WPXSvStream.h
index 2e9dc0971084..6206a00d5172 100644
--- a/writerperfect/source/stream/WPXSvStream.h
+++ b/writerperfect/source/stream/WPXSvStream.h
@@ -18,6 +18,16 @@
#pragma warning( pop )
#endif
+typedef struct
+{
+ SotStorageRef ref;
+} SotStorageRefWrapper;
+
+typedef struct
+{
+ SotStorageStreamRef ref;
+} SotStorageStreamRefWrapper;
+
class WPXSvInputStream : public WPXInputStream
{
public:
@@ -34,8 +44,8 @@ public:
virtual bool atEOS();
private:
- std::vector< SotStorageRef > mxChildrenStorages;
- std::vector< SotStorageStreamRef > mxChildrenStreams;
+ std::vector< SotStorageRefWrapper > mxChildrenStorages;
+ std::vector< SotStorageStreamRefWrapper > mxChildrenStreams;
::com::sun::star::uno::Reference<
::com::sun::star::io::XInputStream > mxStream;
::com::sun::star::uno::Reference<