summaryrefslogtreecommitdiff
path: root/filter/source
diff options
context:
space:
mode:
authorMichael Meeks <michael.meeks@collabora.com>2015-03-19 16:56:13 +0000
committerMichael Meeks <michael.meeks@collabora.com>2015-04-10 12:21:37 +0100
commitaeacfe0967f930f5e16711a32b90784fc856f0ec (patch)
treed7a67c12ad4ab2de3cb663018c2b5e347ab12fe2 /filter/source
parented953d1842caf0b8a00d1528cd012e3a9b83bdd2 (diff)
Fix OutputDevice members / stack allocation: filter.
Change-Id: Ib67fd510626809baab774382d37b20462253fc31
Diffstat (limited to 'filter/source')
-rw-r--r--filter/source/graphicfilter/eos2met/eos2met.cxx37
-rw-r--r--filter/source/graphicfilter/epict/epict.cxx29
-rw-r--r--filter/source/graphicfilter/eps/eps.cxx30
-rw-r--r--filter/source/graphicfilter/ieps/ieps.cxx36
-rw-r--r--filter/source/msfilter/escherex.cxx18
-rw-r--r--filter/source/msfilter/msdffimp.cxx6
-rw-r--r--filter/source/svg/svgfontexport.cxx24
7 files changed, 90 insertions, 90 deletions
diff --git a/filter/source/graphicfilter/eos2met/eos2met.cxx b/filter/source/graphicfilter/eos2met/eos2met.cxx
index 780ac5dcfc4d..c2bb58460a93 100644
--- a/filter/source/graphicfilter/eos2met/eos2met.cxx
+++ b/filter/source/graphicfilter/eos2met/eos2met.cxx
@@ -156,7 +156,7 @@ private:
sal_uInt32 nWrittenBitmaps; // number of already written Bitmaps
sal_uInt32 nActBitmapPercent; // percentage of the next bitmap that's already written
- ::std::unique_ptr< VirtualDevice > apDummyVDev;
+ ScopedVclPtr<VirtualDevice> apDummyVDev;
OutputDevice* pCompDev;
com::sun::star::uno::Reference< com::sun::star::task::XStatusIndicator > xStatusIndicator;
@@ -261,6 +261,7 @@ public:
pCompDev = reinterpret_cast< OutputDevice* >( Application::GetAppWindow() );
if( !pCompDev )
{
+ apDummyVDev.disposeAndClear();
apDummyVDev.reset( new VirtualDevice );
pCompDev = apDummyVDev.get();
}
@@ -1850,12 +1851,12 @@ void METWriter::WriteOrders( const GDIMetaFile* pMTF )
if( aGDIFont.GetAlign() != ALIGN_BASELINE)
{
- VirtualDevice aVDev;
+ ScopedVclPtr<VirtualDevice> pVDev( new VirtualDevice() );
if( aGDIFont.GetAlign()==ALIGN_TOP )
- aPt.Y()+=(long)aVDev.GetFontMetric( aGDIFont ).GetAscent();
+ aPt.Y()+=(long)pVDev->GetFontMetric( aGDIFont ).GetAscent();
else
- aPt.Y()-=(long)aVDev.GetFontMetric( aGDIFont ).GetDescent();
+ aPt.Y()-=(long)pVDev->GetFontMetric( aGDIFont ).GetDescent();
}
METSetMix(eGDIRasterOp);
@@ -1879,11 +1880,11 @@ void METWriter::WriteOrders( const GDIMetaFile* pMTF )
if( aGDIFont.GetAlign() != ALIGN_BASELINE )
{
- VirtualDevice aVDev;
+ ScopedVclPtr<VirtualDevice> pVDev( new VirtualDevice() );
if( aGDIFont.GetAlign() == ALIGN_TOP )
- aPt.Y()+=(long)aVDev.GetFontMetric(aGDIFont).GetAscent();
+ aPt.Y()+=(long)pVDev->GetFontMetric(aGDIFont).GetAscent();
else
- aPt.Y()-=(long)aVDev.GetFontMetric(aGDIFont).GetDescent();
+ aPt.Y()-=(long)pVDev->GetFontMetric(aGDIFont).GetDescent();
}
METSetMix(eGDIRasterOp);
@@ -1922,7 +1923,7 @@ void METWriter::WriteOrders( const GDIMetaFile* pMTF )
case META_STRETCHTEXT_ACTION:
{
const MetaStretchTextAction* pA = static_cast<const MetaStretchTextAction*>(pMA);
- VirtualDevice aVDev;
+ ScopedVclPtr<VirtualDevice> pVDev( new VirtualDevice() );
sal_uInt16 i;
sal_Int32 nNormSize;
OUString aStr;
@@ -1931,14 +1932,14 @@ void METWriter::WriteOrders( const GDIMetaFile* pMTF )
Point aPt( pA->GetPoint() );
Point aPt2;
- aVDev.SetFont( aGDIFont );
+ pVDev->SetFont( aGDIFont );
if( aGDIFont.GetAlign() != ALIGN_BASELINE)
{
if( aGDIFont.GetAlign() == ALIGN_TOP )
- aPt.Y()+=(long)aVDev.GetFontMetric().GetAscent();
+ aPt.Y()+=(long)pVDev->GetFontMetric().GetAscent();
else
- aPt.Y()-=(long)aVDev.GetFontMetric().GetDescent();
+ aPt.Y()-=(long)pVDev->GetFontMetric().GetDescent();
}
METSetMix(eGDIRasterOp);
@@ -1949,7 +1950,7 @@ void METWriter::WriteOrders( const GDIMetaFile* pMTF )
METSetChrSet(FindChrSet(aGDIFont));
aStr = pA->GetText().copy(pA->GetIndex(),pA->GetLen());
boost::scoped_array<long> pDXAry(new long[aStr.getLength()]);
- nNormSize = aVDev.GetTextArray( aStr, pDXAry.get() );
+ nNormSize = pVDev->GetTextArray( aStr, pDXAry.get() );
for ( i = 0; i < aStr.getLength(); i++ )
{
@@ -2067,24 +2068,24 @@ void METWriter::WriteOrders( const GDIMetaFile* pMTF )
case META_GRADIENT_ACTION:
{
- VirtualDevice aVDev;
+ ScopedVclPtr<VirtualDevice> pVDev( new VirtualDevice() );
GDIMetaFile aTmpMtf;
const MetaGradientAction* pA = static_cast<const MetaGradientAction*>(pMA);
- aVDev.SetMapMode( aTargetMapMode );
- aVDev.AddGradientActions( pA->GetRect(), pA->GetGradient(), aTmpMtf );
+ pVDev->SetMapMode( aTargetMapMode );
+ pVDev->AddGradientActions( pA->GetRect(), pA->GetGradient(), aTmpMtf );
WriteOrders( &aTmpMtf );
}
break;
case META_HATCH_ACTION:
{
- VirtualDevice aVDev;
+ ScopedVclPtr<VirtualDevice> pVDev( new VirtualDevice() );
GDIMetaFile aTmpMtf;
const MetaHatchAction* pA = static_cast<const MetaHatchAction*>(pMA);
- aVDev.SetMapMode( aTargetMapMode );
- aVDev.AddHatchActions( pA->GetPolyPolygon(), pA->GetHatch(), aTmpMtf );
+ pVDev->SetMapMode( aTargetMapMode );
+ pVDev->AddHatchActions( pA->GetPolyPolygon(), pA->GetHatch(), aTmpMtf );
WriteOrders( &aTmpMtf );
}
break;
diff --git a/filter/source/graphicfilter/epict/epict.cxx b/filter/source/graphicfilter/epict/epict.cxx
index e9a7568a9bbd..33f5fdbad813 100644
--- a/filter/source/graphicfilter/epict/epict.cxx
+++ b/filter/source/graphicfilter/epict/epict.cxx
@@ -1699,12 +1699,11 @@ void PictWriter::WriteOpcodes( const GDIMetaFile & rMTF )
if ( aSrcFont.GetAlign() != ALIGN_BASELINE )
{
- VirtualDevice aVirDev;
-
+ ScopedVclPtr<VirtualDevice> pVirDev( new VirtualDevice() );
if (aSrcFont.GetAlign()==ALIGN_TOP)
- aPt.Y()+=(long)aVirDev.GetFontMetric(aSrcFont).GetAscent();
+ aPt.Y()+=(long)pVirDev->GetFontMetric(aSrcFont).GetAscent();
else
- aPt.Y()-=(long)aVirDev.GetFontMetric(aSrcFont).GetDescent();
+ aPt.Y()-=(long)pVirDev->GetFontMetric(aSrcFont).GetDescent();
}
SetAttrForText();
@@ -1720,12 +1719,12 @@ void PictWriter::WriteOpcodes( const GDIMetaFile & rMTF )
if (aSrcFont.GetAlign()!=ALIGN_BASELINE)
{
- VirtualDevice aVirDev;
+ ScopedVclPtr<VirtualDevice> pVirDev( new VirtualDevice() );
if (aSrcFont.GetAlign()==ALIGN_TOP)
- aPt.Y()+=(long)aVirDev.GetFontMetric(aSrcFont).GetAscent();
+ aPt.Y()+=(long)pVirDev->GetFontMetric(aSrcFont).GetAscent();
else
- aPt.Y()-=(long)aVirDev.GetFontMetric(aSrcFont).GetDescent();
+ aPt.Y()-=(long)pVirDev->GetFontMetric(aSrcFont).GetDescent();
}
SetAttrForText();
OUString aStr = pA->GetText().copy( pA->GetIndex(),pA->GetLen() );
@@ -1738,16 +1737,16 @@ void PictWriter::WriteOpcodes( const GDIMetaFile & rMTF )
const MetaStretchTextAction* pA = static_cast<const MetaStretchTextAction*>(pMA);
Point aPt( pA->GetPoint() );
OUString aStr = pA->GetText().copy( pA->GetIndex(),pA->GetLen() );
- VirtualDevice aVirDev;
+ ScopedVclPtr<VirtualDevice> pVirDev( new VirtualDevice() );
boost::scoped_array<long> pDXAry(new long[ aStr.getLength() ]);
- sal_Int32 nNormSize( aVirDev.GetTextArray( aStr,pDXAry.get() ) );
+ sal_Int32 nNormSize( pVirDev->GetTextArray( aStr,pDXAry.get() ) );
if (aSrcFont.GetAlign()!=ALIGN_BASELINE)
{
if (aSrcFont.GetAlign()==ALIGN_TOP)
- aPt.Y()+=(long)aVirDev.GetFontMetric(aSrcFont).GetAscent();
+ aPt.Y()+=(long)pVirDev->GetFontMetric(aSrcFont).GetAscent();
else
- aPt.Y()-=(long)aVirDev.GetFontMetric(aSrcFont).GetDescent();
+ aPt.Y()-=(long)pVirDev->GetFontMetric(aSrcFont).GetDescent();
}
sal_Int32 nLength = aStr.getLength() - 1;
@@ -1774,9 +1773,9 @@ void PictWriter::WriteOpcodes( const GDIMetaFile & rMTF )
{
const MetaBmpAction* pA = static_cast<const MetaBmpAction*>(pMA);
const Bitmap aBmp( pA->GetBitmap() );
- VirtualDevice aVirDev;
+ ScopedVclPtr<VirtualDevice> pVirDev( new VirtualDevice() );
- WriteOpcode_BitsRect( pA->GetPoint(), aVirDev.PixelToLogic( aBmp.GetSizePixel(), aSrcMapMode ), aBmp );
+ WriteOpcode_BitsRect( pA->GetPoint(), pVirDev->PixelToLogic( aBmp.GetSizePixel(), aSrcMapMode ), aBmp );
}
break;
@@ -1801,9 +1800,9 @@ void PictWriter::WriteOpcodes( const GDIMetaFile & rMTF )
{
const MetaBmpExAction* pA = static_cast<const MetaBmpExAction*>(pMA);
const Bitmap aBmp( Graphic( pA->GetBitmapEx() ).GetBitmap() );
- VirtualDevice aVirDev;
+ ScopedVclPtr<VirtualDevice> pVirDev( new VirtualDevice() );
- WriteOpcode_BitsRect( pA->GetPoint(), aVirDev.PixelToLogic( aBmp.GetSizePixel(), aSrcMapMode ), aBmp );
+ WriteOpcode_BitsRect( pA->GetPoint(), pVirDev->PixelToLogic( aBmp.GetSizePixel(), aSrcMapMode ), aBmp );
}
break;
diff --git a/filter/source/graphicfilter/eps/eps.cxx b/filter/source/graphicfilter/eps/eps.cxx
index 4a5d8f28cd0e..c4f1b7b5e91b 100644
--- a/filter/source/graphicfilter/eps/eps.cxx
+++ b/filter/source/graphicfilter/eps/eps.cxx
@@ -116,7 +116,7 @@ private:
SvStream* mpPS;
const GDIMetaFile* pMTF;
GDIMetaFile* pAMTF; // only created if Graphics is not a Metafile
- VirtualDevice aVDev;
+ ScopedVclPtr<VirtualDevice> pVDev;
double nBoundingX1; // this represents the bounding box
double nBoundingY1;
@@ -418,9 +418,9 @@ bool PSWriter::WritePS( const Graphic& rGraphic, SvStream& rTargetStream, Filter
{
Bitmap aBmp( rGraphic.GetBitmap() );
pAMTF = new GDIMetaFile();
- VirtualDevice aTmpVDev;
+ ScopedVclPtr<VirtualDevice> pTmpVDev(new VirtualDevice());
pAMTF->Record( &aTmpVDev );
- aTmpVDev.DrawBitmap( Point(), aBmp );
+ pTmpVDev->DrawBitmap( Point(), aBmp );
pAMTF->Stop();
pAMTF->SetPrefSize( aBmp.GetSizePixel() );
pMTF = pAMTF;
@@ -940,12 +940,12 @@ void PSWriter::ImplWriteActions( const GDIMetaFile& rMtf, VirtualDevice& rVDev )
case META_HATCH_ACTION :
{
- VirtualDevice l_aVDev;
+ ScopedVclPtr<VirtualDevice> l_pVirDev( new VirtualDevice() );
GDIMetaFile aTmpMtf;
- l_aVDev.SetMapMode( rVDev.GetMapMode() );
- l_aVDev.AddHatchActions( static_cast<const MetaHatchAction*>(pMA)->GetPolyPolygon(),
- static_cast<const MetaHatchAction*>(pMA)->GetHatch(), aTmpMtf );
+ l_pVirDev->SetMapMode( rVDev.GetMapMode() );
+ l_pVirDev->AddHatchActions( static_cast<const MetaHatchAction*>(pMA)->GetPolyPolygon(),
+ static_cast<const MetaHatchAction*>(pMA)->GetHatch(), aTmpMtf );
ImplWriteActions( aTmpMtf, rVDev );
}
break;
@@ -1608,10 +1608,10 @@ void PSWriter::ImplIntersect( const tools::PolyPolygon& rPolyPoly )
void PSWriter::ImplWriteGradient( const tools::PolyPolygon& rPolyPoly, const Gradient& rGradient, VirtualDevice& rVDev )
{
- VirtualDevice l_aVDev;
+ ScopedVclPtr<VirtualDevice> l_pVirDev( new VirtualDevice() );
GDIMetaFile aTmpMtf;
- l_aVDev.SetMapMode( rVDev.GetMapMode() );
- l_aVDev.AddGradientActions( rPolyPoly.GetBoundRect(), rGradient, aTmpMtf );
+ l_pVDev->SetMapMode( rVDev.GetMapMode() );
+ l_pVDev->AddGradientActions( rPolyPoly.GetBoundRect(), rGradient, aTmpMtf );
ImplWriteActions( aTmpMtf, rVDev );
}
@@ -2141,10 +2141,10 @@ void PSWriter::ImplText( const OUString& rUniString, const Point& rPos, const lo
vcl::Font aNotRotatedFont( maFont );
aNotRotatedFont.SetOrientation( 0 );
- VirtualDevice aVirDev( 1 );
- aVirDev.SetMapMode( rVDev.GetMapMode() );
- aVirDev.SetFont( aNotRotatedFont );
- aVirDev.SetTextAlign( eTextAlign );
+ ScopedVclPtr<VirtualDevice> pVirDev( new VirtualDevice() );
+ pVirDev->SetMapMode( rVDev.GetMapMode() );
+ pVirDev->SetFont( aNotRotatedFont );
+ pVirDev->SetTextAlign( eTextAlign );
sal_Int16 nRotation = maFont.GetOrientation();
Polygon aPolyDummy( 1 );
@@ -2159,7 +2159,7 @@ void PSWriter::ImplText( const OUString& rUniString, const Point& rPos, const lo
bool bOldLineColor = bLineColor;
bLineColor = false;
std::vector<tools::PolyPolygon> aPolyPolyVec;
- if ( aVirDev.GetTextOutlines( aPolyPolyVec, rUniString, 0, 0, -1, true, nWidth, pDXArry ) )
+ if ( pVirDev->GetTextOutlines( aPolyPolyVec, rUniString, 0, 0, -1, true, nWidth, pDXArry ) )
{
// always adjust text position to match baseline alignment
ImplWriteLine( "pum" );
diff --git a/filter/source/graphicfilter/ieps/ieps.cxx b/filter/source/graphicfilter/ieps/ieps.cxx
index b933574f4ed8..41b699405363 100644
--- a/filter/source/graphicfilter/ieps/ieps.cxx
+++ b/filter/source/graphicfilter/ieps/ieps.cxx
@@ -125,7 +125,7 @@ static int ImplGetLen( sal_uInt8* pBuf, int nMax )
static void MakeAsMeta(Graphic &rGraphic)
{
- VirtualDevice aVDev;
+ ScopedVclPtr<VirtualDevice> pVDev( new VirtualDevice() );
GDIMetaFile aMtf;
Bitmap aBmp( rGraphic.GetBitmap() );
Size aSize = aBmp.GetPrefSize();
@@ -137,9 +137,9 @@ static void MakeAsMeta(Graphic &rGraphic)
aSize = OutputDevice::LogicToLogic( aSize,
aBmp.GetPrefMapMode(), MAP_100TH_MM );
- aVDev.EnableOutput( false );
- aMtf.Record( &aVDev );
- aVDev.DrawBitmap( Point(), aSize, rGraphic.GetBitmap() );
+ pVDev->EnableOutput( false );
+ aMtf.Record( pVDev );
+ pVDev->DrawBitmap( Point(), aSize, rGraphic.GetBitmap() );
aMtf.Stop();
aMtf.WindStart();
aMtf.SetPrefMapMode( MAP_100TH_MM );
@@ -442,22 +442,22 @@ void MakePreview(sal_uInt8* pBuf, sal_uInt32 nBytesRead,
long nWidth, long nHeight, Graphic &rGraphic)
{
GDIMetaFile aMtf;
- VirtualDevice aVDev;
+ ScopedVclPtr<VirtualDevice> pVDev( new VirtualDevice() );
vcl::Font aFont;
- aVDev.EnableOutput( false );
- aMtf.Record( &aVDev );
- aVDev.SetLineColor( Color( COL_RED ) );
- aVDev.SetFillColor();
+ pVDev->EnableOutput( false );
+ aMtf.Record( pVDev );
+ pVDev->SetLineColor( Color( COL_RED ) );
+ pVDev->SetFillColor();
aFont.SetColor( COL_LIGHTRED );
// aFont.SetSize( Size( 0, 32 ) );
- aVDev.Push( PushFlags::FONT );
- aVDev.SetFont( aFont );
+ pVDev->Push( PushFlags::FONT );
+ pVDev->SetFont( aFont );
Rectangle aRect( Point( 1, 1 ), Size( nWidth - 2, nHeight - 2 ) );
- aVDev.DrawRect( aRect );
+ pVDev->DrawRect( aRect );
OUString aString;
int nLen;
@@ -511,8 +511,8 @@ void MakePreview(sal_uInt8* pBuf, sal_uInt32 nBytesRead,
aString += " LanguageLevel:" + OUString::number( nNumber );
}
}
- aVDev.DrawText( aRect, aString, TEXT_DRAW_CLIP | TEXT_DRAW_MULTILINE );
- aVDev.Pop();
+ pVDev->DrawText( aRect, aString, TEXT_DRAW_CLIP | TEXT_DRAW_MULTILINE );
+ pVDev->Pop();
aMtf.Stop();
aMtf.WindStart();
aMtf.SetPrefMapMode( MAP_POINT );
@@ -679,17 +679,17 @@ GraphicImport( SvStream & rStream, Graphic & rGraphic, FilterConfigItem* )
}
if ( bIsValid )
{
- VirtualDevice aVDev;
+ ScopedVclPtrInstance<VirtualDevice> pVDev;
GDIMetaFile aMtf;
Size aSize;
- aVDev.EnableOutput( false );
- aMtf.Record( &aVDev );
+ pVDev->EnableOutput( false );
+ aMtf.Record( pVDev );
aSize = aBitmap.GetPrefSize();
if( !aSize.Width() || !aSize.Height() )
aSize = Application::GetDefaultDevice()->PixelToLogic( aBitmap.GetSizePixel(), MAP_100TH_MM );
else
aSize = OutputDevice::LogicToLogic( aSize, aBitmap.GetPrefMapMode(), MAP_100TH_MM );
- aVDev.DrawBitmap( Point(), aSize, aBitmap );
+ pVDev->DrawBitmap( Point(), aSize, aBitmap );
aMtf.Stop();
aMtf.WindStart();
aMtf.SetPrefMapMode( MAP_100TH_MM );
diff --git a/filter/source/msfilter/escherex.cxx b/filter/source/msfilter/escherex.cxx
index 22bb0f0d5352..4d51af094b97 100644
--- a/filter/source/msfilter/escherex.cxx
+++ b/filter/source/msfilter/escherex.cxx
@@ -1387,18 +1387,18 @@ GraphicObject lclDrawHatch( const ::com::sun::star::drawing::Hatch& rHatch, cons
// do not create a bitmap in page size, that would explode file sizes (and have no good quality).
// Better use a MetaFile graphic in page size; thus we have good quality due to vector format and
// no bit file sizes.
- VirtualDevice aOut;
+ ScopedVclPtr<VirtualDevice> pVDev(new VirtualDevice());
GDIMetaFile aMtf;
- aOut.SetOutputSizePixel(Size(2, 2));
- aOut.EnableOutput(false);
- aOut.SetMapMode(MapMode(MAP_100TH_MM));
+ pVDev->SetOutputSizePixel(Size(2, 2));
+ pVDev->EnableOutput(false);
+ pVDev->SetMapMode(MapMode(MAP_100TH_MM));
aMtf.Clear();
- aMtf.Record(&aOut);
- aOut.SetLineColor();
- aOut.SetFillColor(bFillBackground ? rBackColor : Color(COL_TRANSPARENT));
- aOut.DrawRect(rRect);
- aOut.DrawHatch(tools::PolyPolygon(rRect), Hatch((HatchStyle)rHatch.Style, Color(rHatch.Color), rHatch.Distance, (sal_uInt16)rHatch.Angle));
+ aMtf.Record(pVDev);
+ pVDev->SetLineColor();
+ pVDev->SetFillColor(bFillBackground ? rBackColor : Color(COL_TRANSPARENT));
+ pVDev->DrawRect(rRect);
+ pVDev->DrawHatch(tools::PolyPolygon(rRect), Hatch((HatchStyle)rHatch.Style, Color(rHatch.Color), rHatch.Distance, (sal_uInt16)rHatch.Angle));
aMtf.Stop();
aMtf.WindStart();
aMtf.SetPrefMapMode(MapMode(MAP_100TH_MM));
diff --git a/filter/source/msfilter/msdffimp.cxx b/filter/source/msfilter/msdffimp.cxx
index c1be035f3257..6ed9b4ca872c 100644
--- a/filter/source/msfilter/msdffimp.cxx
+++ b/filter/source/msfilter/msdffimp.cxx
@@ -4397,8 +4397,8 @@ SdrObject* SvxMSDffManager::ImportShape( const DffRecordHeader& rHd, SvStream& r
rOutliner.SetStyleSheetPool( static_cast<SfxStyleSheetPool*>(pModel->GetStyleSheetPool()) );
rOutliner.SetUpdateMode( false );
rOutliner.SetText( *pParaObj );
- VirtualDevice aVirDev( 1 );
- aVirDev.SetMapMode( MAP_100TH_MM );
+ ScopedVclPtr<VirtualDevice> pVirDev( new VirtualDevice( 1 ) );
+ pVirDev->SetMapMode( MAP_100TH_MM );
sal_Int32 i, nParagraphs = rOutliner.GetParagraphCount();
if ( nParagraphs )
{
@@ -4406,7 +4406,7 @@ SdrObject* SvxMSDffManager::ImportShape( const DffRecordHeader& rHd, SvStream& r
for ( i = 0; i < nParagraphs; i++ )
{
OUString aString(rOutliner.GetText(rOutliner.GetParagraph(i)));
- bool bIsRTL = aVirDev.GetTextIsRTL(aString, 0, aString.getLength());
+ bool bIsRTL = pVirDev->GetTextIsRTL(aString, 0, aString.getLength());
if ( bIsRTL )
{
SfxItemSet aSet2( rOutliner.GetParaAttribs( i ) );
diff --git a/filter/source/svg/svgfontexport.cxx b/filter/source/svg/svgfontexport.cxx
index 2de4b734adbb..bd97906c37f3 100644
--- a/filter/source/svg/svgfontexport.cxx
+++ b/filter/source/svg/svgfontexport.cxx
@@ -78,10 +78,10 @@ SVGFontExport::GlyphSet& SVGFontExport::implGetGlyphSet( const vcl::Font& rFont
void SVGFontExport::implCollectGlyphs()
{
- VirtualDevice aVDev;
+ ScopedVclPtr<VirtualDevice> pVDev( new VirtualDevice() );
ObjectVector::const_iterator aIter( maObjects.begin() );
- aVDev.EnableOutput( false );
+ pVDev->EnableOutput( false );
while( aIter != maObjects.end() )
{
@@ -89,7 +89,7 @@ void SVGFontExport::implCollectGlyphs()
{
const GDIMetaFile& rMtf = (*aIter).GetRepresentation();
- aVDev.Push();
+ pVDev->Push();
for( size_t i = 0, nCount = rMtf.GetActionSize(); i < nCount; ++i )
{
@@ -128,13 +128,13 @@ void SVGFontExport::implCollectGlyphs()
break;
default:
- pAction->Execute( &aVDev );
+ pAction->Execute( pVDev );
break;
}
if( !aText.isEmpty() )
{
- GlyphSet& rGlyphSet = implGetGlyphSet( aVDev.GetFont() );
+ GlyphSet& rGlyphSet = implGetGlyphSet( pVDev->GetFont() );
::com::sun::star::uno::Reference< ::com::sun::star::i18n::XBreakIterator > xBI(
::vcl::unohelper::CreateBreakIterator() );
@@ -165,7 +165,7 @@ void SVGFontExport::implCollectGlyphs()
}
}
- aVDev.Pop();
+ pVDev->Pop();
}
++aIter;
@@ -189,14 +189,14 @@ void SVGFontExport::implEmbedFont( const vcl::Font& rFont )
SvXMLElementExport aExp( mrExport, XML_NAMESPACE_NONE, "defs", true, true );
OUString aCurIdStr( aEmbeddedFontStr );
OUString aUnitsPerEM( OUString::number( nFontEM ) );
- VirtualDevice aVDev;
+ ScopedVclPtr<VirtualDevice> pVDev( new VirtualDevice() );
vcl::Font aFont( rFont );
aFont.SetSize( Size( 0, nFontEM ) );
aFont.SetAlign( ALIGN_BASELINE );
- aVDev.SetMapMode( MAP_100TH_MM );
- aVDev.SetFont( aFont );
+ pVDev->SetMapMode( MAP_100TH_MM );
+ pVDev->SetFont( aFont );
mrExport.AddAttribute( XML_NAMESPACE_NONE, "id", aCurIdStr += OUString::number( ++mnCurFontId ) );
mrExport.AddAttribute( XML_NAMESPACE_NONE, "horiz-adv-x", aUnitsPerEM );
@@ -223,8 +223,8 @@ void SVGFontExport::implEmbedFont( const vcl::Font& rFont )
mrExport.AddAttribute( XML_NAMESPACE_NONE, "units-per-em", aUnitsPerEM );
mrExport.AddAttribute( XML_NAMESPACE_NONE, "font-weight", aFontWeight );
mrExport.AddAttribute( XML_NAMESPACE_NONE, "font-style", aFontStyle );
- mrExport.AddAttribute( XML_NAMESPACE_NONE, "ascent", OUString::number( aVDev.GetFontMetric().GetAscent() ) );
- mrExport.AddAttribute( XML_NAMESPACE_NONE, "descent", OUString::number( aVDev.GetFontMetric().GetDescent() ) );
+ mrExport.AddAttribute( XML_NAMESPACE_NONE, "ascent", OUString::number( pVDev->GetFontMetric().GetAscent() ) );
+ mrExport.AddAttribute( XML_NAMESPACE_NONE, "descent", OUString::number( pVDev->GetFontMetric().GetDescent() ) );
{
SvXMLElementExport aExp3( mrExport, XML_NAMESPACE_NONE, "font-face", true, true );
@@ -245,7 +245,7 @@ void SVGFontExport::implEmbedFont( const vcl::Font& rFont )
while( aIter != rGlyphSet.end() )
{
- implEmbedGlyph( aVDev, *aIter );
+ implEmbedGlyph( *pVDev.get(), *aIter );
++aIter;
}
}