summaryrefslogtreecommitdiff
path: root/oox/source/dump/oledumper.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'oox/source/dump/oledumper.cxx')
-rw-r--r--oox/source/dump/oledumper.cxx46
1 files changed, 17 insertions, 29 deletions
diff --git a/oox/source/dump/oledumper.cxx b/oox/source/dump/oledumper.cxx
index bd2a0e05ecce..e0135af1604f 100644
--- a/oox/source/dump/oledumper.cxx
+++ b/oox/source/dump/oledumper.cxx
@@ -469,9 +469,9 @@ void OlePropertyStreamObject::dumpCodePageProperty( sal_uInt32 nStartPos )
if( nType == OLEPROP_TYPE_INT16 )
{
sal_uInt16 nCodePage = dumpDec< sal_uInt16 >( "codepage", "CODEPAGES" );
- rtl_TextEncoding nNewTextEnc = rtl_getTextEncodingFromWindowsCodePage( nCodePage );
- if( nNewTextEnc != RTL_TEXTENCODING_DONTKNOW )
- meTextEnc = nNewTextEnc;
+ rtl_TextEncoding eNewTextEnc = rtl_getTextEncodingFromWindowsCodePage( nCodePage );
+ if( eNewTextEnc != RTL_TEXTENCODING_DONTKNOW )
+ meTextEnc = eNewTextEnc;
mbIsUnicode = nCodePage == CODEPAGE_UNICODE;
}
else
@@ -586,15 +586,8 @@ OUString OlePropertyStreamObject::dumpString8( const String& rName )
OUString OlePropertyStreamObject::dumpCharArray8( const String& rName, sal_Int32 nLen )
{
- OUString aData;
- size_t nNewLen = getLimitedValue< size_t, sal_Int32 >( nLen, 0, 1024 );
- if( nNewLen > 0 )
- {
- ::std::vector< sal_Char > aBuffer( nNewLen + 1 );
- mxStrm->readMemory( &aBuffer.front(), nNewLen );
- aBuffer[ nNewLen ] = 0;
- aData = OStringToOUString( OString( &aBuffer.front() ), meTextEnc );
- }
+ sal_Int32 nNewLen = getLimitedValue< sal_Int32, sal_Int32 >( nLen, 0, 1024 );
+ OUString aData = mxStrm->readCharArrayUC( nNewLen, meTextEnc );
writeStringItem( rName, aData );
return aData;
}
@@ -607,13 +600,8 @@ OUString OlePropertyStreamObject::dumpString16( const String& rName )
OUString OlePropertyStreamObject::dumpCharArray16( const String& rName, sal_Int32 nLen )
{
- size_t nNewLen = getLimitedValue< size_t, sal_Int32 >( nLen, 0, 1024 );
- ::std::vector< sal_Unicode > aBuffer;
- aBuffer.reserve( nNewLen + 1 );
- for( size_t nIdx = 0; nIdx < nNewLen; ++nIdx )
- aBuffer.push_back( static_cast< sal_Unicode >( mxStrm->readuInt16() ) );
- aBuffer.push_back( 0 );
- OUString aData( &aBuffer.front() );
+ sal_Int32 nNewLen = getLimitedValue< sal_Int32, sal_Int32 >( nLen, 0, 1024 );
+ OUString aData = mxStrm->readUnicodeArray( nNewLen );
writeStringItem( rName, aData );
if( nNewLen & 1 ) dumpUnused( 2 ); // always padding to 32bit
return aData;
@@ -687,7 +675,7 @@ void OleStorageObject::construct( const ObjectBase& rParent )
StorageObjectBase::construct( rParent );
}
-void OleStorageObject::implDumpStream( const BinaryInputStreamRef& rxStrm, const OUString& /*rStrgPath*/, const OUString& rStrmName, const OUString& rSysFileName )
+void OleStorageObject::implDumpStream( const Reference< XInputStream >& rxStrm, const OUString& /*rStrgPath*/, const OUString& rStrmName, const OUString& rSysFileName )
{
if( rStrmName.equalsAscii( "\001CompObj" ) )
OleCompObjObject( *this, rxStrm, rSysFileName ).dump();
@@ -1926,7 +1914,7 @@ void VbaFStreamObject::dumpSiteData()
sal_uInt32 nSiteCount = dumpDec< sal_uInt32 >( "site-count" );
sal_uInt32 nSiteLength = dumpDec< sal_uInt32 >( "site-data-size" );
sal_Int64 nEndPos = mxStrm->tell() + nSiteLength;
- if( ensureValid( nEndPos <= mxStrm->getLength() ) )
+ if( ensureValid( nEndPos <= mxStrm->size() ) )
{
mxOut->resetItemIndex();
sal_uInt32 nSiteIdx = 0;
@@ -1984,7 +1972,7 @@ void VbaOStreamObject::implDump()
writeDecItem( "control-id", aIt->mnId );
writeInfoItem( "prog-id", aIt->maProgId );
IndentGuard aIndGuard( mxOut );
- RelativeInputStreamRef xRelStrm( new RelativeInputStream( *mxStrm, aIt->mnLength ) );
+ BinaryInputStreamRef xRelStrm( new RelativeInputStream( *mxStrm, aIt->mnLength ) );
FormControlStreamObject( *this, xRelStrm, &aIt->maProgId ).dump();
}
}
@@ -2068,7 +2056,7 @@ VbaContainerStorageObject::VbaContainerStorageObject( const ObjectBase& rParent,
addPreferredStream( "f" );
}
-void VbaContainerStorageObject::implDumpStream( const BinaryInputStreamRef& rxStrm, const OUString& rStrgPath, const OUString& rStrmName, const OUString& rSysFileName )
+void VbaContainerStorageObject::implDumpStream( const Reference< XInputStream >& rxStrm, const OUString& rStrgPath, const OUString& rStrmName, const OUString& rSysFileName )
{
if( rStrmName.equalsAscii( "f" ) )
VbaFStreamObject( *this, rxStrm, rSysFileName, maFormData ).dump();
@@ -2280,7 +2268,7 @@ void VbaModuleStreamObject::implDump()
writeEmptyItem( "source-code" );
IndentGuard aIndGuard( mxOut );
BinaryInputStreamRef xVbaStrm( new ::oox::ole::VbaInputStream( *mxStrm ) );
- TextStreamObject( *this, xVbaStrm, mrVbaData.meTextEnc ).dump();
+ TextLineStreamObject( *this, xVbaStrm, mrVbaData.meTextEnc ).dump();
}
// ============================================================================
@@ -2292,7 +2280,7 @@ VbaStorageObject::VbaStorageObject( const ObjectBase& rParent, const StorageRef&
addPreferredStream( "dir" );
}
-void VbaStorageObject::implDumpStream( const BinaryInputStreamRef& rxStrm, const OUString& rStrgPath, const OUString& rStrmName, const OUString& rSysFileName )
+void VbaStorageObject::implDumpStream( const Reference< XInputStream >& rxStrm, const OUString& rStrgPath, const OUString& rStrmName, const OUString& rSysFileName )
{
if( (rStrgPath.getLength() == 0) && rStrmName.equalsAscii( "dir" ) )
VbaDirStreamObject( *this, rxStrm, rSysFileName, mrVbaData ).dump();
@@ -2310,10 +2298,10 @@ VbaFormStorageObject::VbaFormStorageObject( const ObjectBase& rParent, const Sto
{
}
-void VbaFormStorageObject::implDumpStream( const BinaryInputStreamRef& rxStrm, const OUString& rStrgPath, const OUString& rStrmName, const OUString& rSysFileName )
+void VbaFormStorageObject::implDumpStream( const Reference< XInputStream >& rxStrm, const OUString& rStrgPath, const OUString& rStrmName, const OUString& rSysFileName )
{
if( rStrmName.equalsAscii( "\003VBFrame" ) )
- TextStreamObject( *this, rxStrm, mrVbaData.meTextEnc, rSysFileName ).dump();
+ TextLineStreamObject( *this, rxStrm, mrVbaData.meTextEnc, rSysFileName ).dump();
else
VbaContainerStorageObject::implDumpStream( rxStrm, rStrgPath, rStrmName, rSysFileName );
}
@@ -2326,10 +2314,10 @@ VbaProjectStorageObject::VbaProjectStorageObject( const ObjectBase& rParent, con
addPreferredStorage( "VBA" );
}
-void VbaProjectStorageObject::implDumpStream( const BinaryInputStreamRef& rxStrm, const OUString& rStrgPath, const OUString& rStrmName, const OUString& rSysFileName )
+void VbaProjectStorageObject::implDumpStream( const Reference< XInputStream >& rxStrm, const OUString& rStrgPath, const OUString& rStrmName, const OUString& rSysFileName )
{
if( (rStrgPath.getLength() == 0) && rStrmName.equalsAscii( "PROJECT" ) )
- TextStreamObject( *this, rxStrm, maVbaData.meTextEnc, rSysFileName ).dump();
+ TextLineStreamObject( *this, rxStrm, maVbaData.meTextEnc, rSysFileName ).dump();
else
OleStorageObject::implDumpStream( rxStrm, rStrgPath, rStrmName, rSysFileName );
}