diff options
author | Caolán McNamara <caolanm@redhat.com> | 2012-01-13 15:09:23 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2012-01-13 16:46:31 +0000 |
commit | a55ae5fde1cbd8c29f8aa3a66a4d362355a3062c (patch) | |
tree | fbdfb6193f1b1e994cecf872219d6651f990f508 /filter | |
parent | 4a68a5f32bcc815b116063e6c047397ed9a3e241 (diff) |
just return the read string here instead of passing one in by ref
Diffstat (limited to 'filter')
-rw-r--r-- | filter/inc/filter/msfilter/msdffimp.hxx | 2 | ||||
-rw-r--r-- | filter/source/msfilter/msdffimp.cxx | 54 | ||||
-rw-r--r-- | filter/source/msfilter/svdfppt.cxx | 13 |
3 files changed, 35 insertions, 34 deletions
diff --git a/filter/inc/filter/msfilter/msdffimp.hxx b/filter/inc/filter/msfilter/msdffimp.hxx index f41fcd32ab86..4e4021deca89 100644 --- a/filter/inc/filter/msfilter/msdffimp.hxx +++ b/filter/inc/filter/msfilter/msdffimp.hxx @@ -588,7 +588,7 @@ public: bool SeekToRec( SvStream& rSt, sal_uInt16 nRecId, sal_uLong nMaxFilePos, DffRecordHeader* pRecHd = NULL, sal_uLong nSkipCount = 0 ) const; bool SeekToRec2( sal_uInt16 nRecId1, sal_uInt16 nRecId2, sal_uLong nMaxFilePos, DffRecordHeader* pRecHd = NULL, sal_uLong nSkipCount = 0 ) const; - static void MSDFFReadZString( SvStream& rIn, String& rStr, sal_uLong nMaxLen, bool bUniCode = sal_False ); + static rtl::OUString MSDFFReadZString( SvStream& rIn, sal_uLong nMaxLen, bool bUniCode = sal_False ); static bool ReadCommonRecordHeader(DffRecordHeader& rRec, SvStream& rIn) SAL_WARN_UNUSED_RESULT; diff --git a/filter/source/msfilter/msdffimp.cxx b/filter/source/msfilter/msdffimp.cxx index 80e4ecbea93f..361fe74a6b86 100644 --- a/filter/source/msfilter/msdffimp.cxx +++ b/filter/source/msfilter/msdffimp.cxx @@ -3745,7 +3745,7 @@ rtl::OUString SvxMSDffManager::ReadDffString(SvStream& rSt, DffRecordHeader aStr { bool bUniCode=aStrHd.nRecType==DFF_PST_TextCharsAtom; sal_uLong nBytes = aStrHd.nRecLen; - MSDFFReadZString( rSt, aRet, nBytes, bUniCode ); + aRet = MSDFFReadZString( rSt, nBytes, bUniCode ); if( !bUniCode ) { for ( xub_StrLen n = 0; n < nBytes; n++ ) @@ -4005,36 +4005,34 @@ bool SvxMSDffManager::ReadObjText(SvStream& rSt, SdrObject* pObj) } //static -void SvxMSDffManager::MSDFFReadZString( SvStream& rIn, String& rStr, - sal_uLong nRecLen, bool bUniCode ) +rtl::OUString SvxMSDffManager::MSDFFReadZString(SvStream& rIn, + sal_uLong nRecLen, bool bUniCode) { sal_uInt16 nLen = (sal_uInt16)nRecLen; - if( nLen ) - { - String sBuf; + if (!nLen) + return rtl::OUString(); - if( bUniCode ) - { - nLen >>= 1; + String sBuf; + + if( bUniCode ) + { + nLen >>= 1; - sal_Unicode* pBuf = sBuf.AllocBuffer(nLen); - rIn.Read( (sal_Char*)pBuf, nLen << 1 ); + sal_Unicode* pBuf = sBuf.AllocBuffer(nLen); + rIn.Read( (sal_Char*)pBuf, nLen << 1 ); #ifdef OSL_BIGENDIAN - for( sal_uInt16 n = 0; n < nLen; ++n, ++pBuf ) - *pBuf = SWAPSHORT( *pBuf ); + for( sal_uInt16 n = 0; n < nLen; ++n, ++pBuf ) + *pBuf = SWAPSHORT( *pBuf ); #endif // ifdef OSL_BIGENDIAN - } - else - { - boost::scoped_array<sal_Char> xBuffer(new sal_Char[nLen]); - nLen = rIn.Read(xBuffer.get(), nLen); - sBuf = rtl::OUString(xBuffer.get(), nLen, RTL_TEXTENCODING_MS_1252); - } - - rStr = sBuf.EraseTrailingChars( 0 ); } else - rStr.Erase(); + { + boost::scoped_array<sal_Char> xBuffer(new sal_Char[nLen]); + nLen = rIn.Read(xBuffer.get(), nLen); + sBuf = rtl::OUString(xBuffer.get(), nLen, RTL_TEXTENCODING_MS_1252); + } + + return sBuf.EraseTrailingChars( 0 ); } SdrObject* SvxMSDffManager::ImportFontWork( SvStream& rStCt, SfxItemSet& rSet, Rectangle& rBoundRect ) const @@ -4046,9 +4044,9 @@ SdrObject* SvxMSDffManager::ImportFontWork( SvStream& rStCt, SfxItemSet& rSet, R ((SvxMSDffManager*)this)->mnFix16Angle = 0; // we don't want to use this property in future if ( SeekToContent( DFF_Prop_gtextUNICODE, rStCt ) ) - MSDFFReadZString( rStCt, aObjectText, GetPropertyValue( DFF_Prop_gtextUNICODE ), sal_True ); + aObjectText = MSDFFReadZString( rStCt, GetPropertyValue( DFF_Prop_gtextUNICODE ), sal_True ); if ( SeekToContent( DFF_Prop_gtextFont, rStCt ) ) - MSDFFReadZString( rStCt, aFontName, GetPropertyValue( DFF_Prop_gtextFont ), sal_True ); + aFontName = MSDFFReadZString( rStCt, GetPropertyValue( DFF_Prop_gtextFont ), sal_True ); if ( GetPropertyValue( DFF_Prop_gtextFStrikethrough, 0 ) & 0x2000 ) { // Text ist senkrecht formatiert, Box Kippen @@ -4193,7 +4191,7 @@ SdrObject* SvxMSDffManager::ImportGraphic( SvStream& rSt, SfxItemSet& rSet, cons { Graphic aGraf; // be sure this graphic is deleted before swapping out if( SeekToContent( DFF_Prop_pibName, rSt ) ) - MSDFFReadZString( rSt, aFileName, GetPropertyValue( DFF_Prop_pibName ), sal_True ); + aFileName = MSDFFReadZString( rSt, GetPropertyValue( DFF_Prop_pibName ), sal_True ); // UND, ODER folgendes: if( !( eFlags & mso_blipflagDoNotSave ) ) // Grafik embedded @@ -4717,7 +4715,7 @@ SdrObject* SvxMSDffManager::ImportShape( const DffRecordHeader& rHd, SvStream& r SvxFontItem aLatin(EE_CHAR_FONTINFO), aAsian(EE_CHAR_FONTINFO_CJK), aComplex(EE_CHAR_FONTINFO_CTL); GetDefaultFonts( aLatin, aAsian, aComplex ); - MSDFFReadZString( rSt, aFontName, GetPropertyValue( DFF_Prop_gtextFont ), sal_True ); + aFontName = MSDFFReadZString( rSt, GetPropertyValue( DFF_Prop_gtextFont ), sal_True ); aSet.Put( SvxFontItem( aLatin.GetFamily(), aFontName, aLatin.GetStyleName(), PITCH_DONTKNOW, RTL_TEXTENCODING_DONTKNOW, EE_CHAR_FONTINFO )); aSet.Put( SvxFontItem( aLatin.GetFamily(), aFontName, aLatin.GetStyleName(), @@ -4740,7 +4738,7 @@ SdrObject* SvxMSDffManager::ImportShape( const DffRecordHeader& rHd, SvStream& r if ( SeekToContent( DFF_Prop_gtextUNICODE, rSt ) ) { - MSDFFReadZString( rSt, aObjectText, GetPropertyValue( DFF_Prop_gtextUNICODE ), sal_True ); + aObjectText = MSDFFReadZString( rSt, GetPropertyValue( DFF_Prop_gtextUNICODE ), sal_True ); ReadObjText( aObjectText, pRet ); } diff --git a/filter/source/msfilter/svdfppt.cxx b/filter/source/msfilter/svdfppt.cxx index 5e5726661284..11e84a9fbeb5 100644 --- a/filter/source/msfilter/svdfppt.cxx +++ b/filter/source/msfilter/svdfppt.cxx @@ -188,7 +188,7 @@ SvStream& operator>>( SvStream& rIn, PptCurrentUserAtom& rAtom ) >> rAtom.nMajorVersion >> rAtom.nMinorVersion >> nPad; - SvxMSDffManager::MSDFFReadZString( rIn, rAtom.aCurrentUser, nUserNameLen, sal_True ); + rAtom.aCurrentUser = SvxMSDffManager::MSDFFReadZString( rIn, nUserNameLen, sal_True ); } aHd.SeekToEndOfRecord( rIn ); return rIn; @@ -562,7 +562,7 @@ sal_Bool SdrEscherImport::ReadString( String& rStr ) const || aStrHd.nRecType == PPT_PST_CString); bRet=sal_True; sal_uLong nBytes = aStrHd.nRecLen; - MSDFFReadZString( rStCtrl, rStr, nBytes, bUniCode ); + rStr = MSDFFReadZString( rStCtrl, nBytes, bUniCode ); aStrHd.SeekToEndOfRecord( rStCtrl ); } else @@ -2675,8 +2675,8 @@ void ImportComment10( SvxMSDffManager& rMan, SvStream& rStCtrl, SdrPage* pPage, { case PPT_PST_CString : { - String aString; - SvxMSDffManager::MSDFFReadZString( rStCtrl, aString, aCommentHd.nRecLen, sal_True ); + rtl::OUString aString = SvxMSDffManager::MSDFFReadZString( rStCtrl, + aCommentHd.nRecLen, sal_True ); switch ( aCommentHd.nRecInstance ) { case 0 : sAuthor = aString; break; @@ -3149,7 +3149,10 @@ void SdrEscherImport::ImportHeaderFooterContainer( DffRecordHeader& rHd, HeaderF case PPT_PST_CString : { if ( aHd.nRecInstance < 4 ) - MSDFFReadZString( rStCtrl, rE.pPlaceholder[ aHd.nRecInstance ], aHd.nRecLen, sal_True ); + { + rE.pPlaceholder[ aHd.nRecInstance ] = MSDFFReadZString( rStCtrl, + aHd.nRecLen, sal_True ); + } } break; } |