canvas/source/vcl/spritecanvashelper.cxx | 4 +- canvas/source/vcl/spritecanvashelper.hxx | 2 - include/svx/sdrpaintwindow.hxx | 6 +-- include/svx/svdobj.hxx | 3 + include/svx/svdpntv.hxx | 4 +- svx/source/svdraw/sdrpaintwindow.cxx | 26 +++++++++------- svx/source/svdraw/svdedxv.cxx | 8 ++--- svx/source/svdraw/svdpntv.cxx | 8 ++--- svx/source/svdraw/svdview.cxx | 14 ++++----- svx/source/unodraw/UnoGraphicExporter.cxx | 46 +++++++++++++++--------------- svx/source/unodraw/unoshape.cxx | 6 +-- svx/source/xoutdev/_xoutbmp.cxx | 38 ++++++++++++------------ svx/source/xoutdev/xattrbmp.cxx | 24 +++++++-------- svx/source/xoutdev/xtabdash.cxx | 16 +++++----- svx/source/xoutdev/xtabgrdt.cxx | 10 +++--- svx/source/xoutdev/xtabhtch.cxx | 16 +++++----- svx/source/xoutdev/xtablend.cxx | 16 +++++----- sw/inc/viewsh.hxx | 12 +++---- sw/qa/tiledrendering/tiledrendering.cxx | 6 +-- sw/source/core/frmedt/fecopy.cxx | 18 +++++------ sw/source/core/layout/paintfrm.cxx | 14 ++++----- sw/source/core/view/vnew.cxx | 2 - sw/source/filter/ww8/wrtww8gr.cxx | 12 +++---- vcl/workben/vcldemo.cxx | 5 +-- 24 files changed, 160 insertions(+), 156 deletions(-)
New commits: commit 32f1a7dbca9827642653d314bd96560c093a06ea Author: Michael Meeks <michael.me...@collabora.com> Date: Thu Mar 19 14:38:23 2015 +0000 Fix OutputDevice members / stack allocation. Change-Id: Ie57434607b61085a882af40b63d6a4b7aac0d4d3 diff --git a/canvas/source/vcl/spritecanvashelper.cxx b/canvas/source/vcl/spritecanvashelper.cxx index 9164d86..51d01f4 100644 --- a/canvas/source/vcl/spritecanvashelper.cxx +++ b/canvas/source/vcl/spritecanvashelper.cxx @@ -324,7 +324,7 @@ namespace vclcanvas mpRedrawManager->forEachSprite( ::boost::bind( &spriteRedraw, - ::boost::ref( maVDev.get() ), + ::boost::ref( *maVDev.get() ), _1 ) ); // flush to screen @@ -582,7 +582,7 @@ namespace vclcanvas ::std::for_each( rSortedUpdateSprites.begin(), rSortedUpdateSprites.end(), ::boost::bind( &spriteRedrawStub2, - ::boost::ref( maVDev.get() ), + ::boost::ref( *maVDev.get() ), ::vcl::unotools::b2DPointFromPoint( aOutputPosition), _1 ) ); diff --git a/canvas/source/vcl/spritecanvashelper.hxx b/canvas/source/vcl/spritecanvashelper.hxx index 0396217..a6b3c03 100644 --- a/canvas/source/vcl/spritecanvashelper.hxx +++ b/canvas/source/vcl/spritecanvashelper.hxx @@ -41,7 +41,7 @@ namespace vclcanvas { public: SpriteCanvasHelper(); - ~SpriteCanvasHelper() + ~SpriteCanvasHelper(); void init( const OutDevProviderSharedPtr& rOutDev, SpriteCanvas& rOwningSpriteCanvas, diff --git a/include/svx/sdrpaintwindow.hxx b/include/svx/sdrpaintwindow.hxx index 3a1f1ef..d8f0918 100644 --- a/include/svx/sdrpaintwindow.hxx +++ b/include/svx/sdrpaintwindow.hxx @@ -50,10 +50,10 @@ PaintTransparentChildren(vcl::Window & rWindow, Rectangle const& rPixelRect); class SdrPreRenderDevice { // The original OutputDevice - OutputDevice& mrOutputDevice; + OutputDevice& mrOutputDevice; // The VirtualDevice for PreRendering - VirtualDevice maPreRenderDevice; + VclPtr<VirtualDevice> mpPreRenderDevice; public: explicit SdrPreRenderDevice(OutputDevice& rOriginal); @@ -63,7 +63,7 @@ public: void OutputPreRenderDevice(const vcl::Region& rExpandedRegion); OutputDevice& GetOriginalOutputDevice() const { return mrOutputDevice; } - OutputDevice& GetPreRenderDevice() { return maPreRenderDevice; } + OutputDevice& GetPreRenderDevice() { return *mpPreRenderDevice.get(); } }; diff --git a/include/svx/svdobj.hxx b/include/svx/svdobj.hxx index fd1f56f..4ecf505 100644 --- a/include/svx/svdobj.hxx +++ b/include/svx/svdobj.hxx @@ -24,6 +24,7 @@ #include <com/sun/star/uno/Any.hxx> #include <cppuhelper/weakref.hxx> #include <rtl/ustring.hxx> +#include <vcl/vclptr.hxx> #include <svl/lstner.hxx> #include <svl/poolitem.hxx> #include <svx/svdtypes.hxx> @@ -172,7 +173,7 @@ class SVX_DLLPUBLIC SdrObjMacroHitRec public: Point aPos; Point aDownPos; - OutputDevice* pOut; + VclPtr<OutputDevice> pOut; const SetOfByte* pVisiLayer; const SdrPageView* pPageView; sal_uInt16 nTol; diff --git a/include/svx/svdpntv.hxx b/include/svx/svdpntv.hxx index 110bb84..347de0b 100644 --- a/include/svx/svdpntv.hxx +++ b/include/svx/svdpntv.hxx @@ -134,8 +134,8 @@ protected: #ifdef DBG_UTIL VclPtr<SdrItemBrowser> pItemBrowser; #endif - const OutputDevice* pActualOutDev; // Nur zum vergleichen - OutputDevice* pDragWin; + VclPtr<OutputDevice> pActualOutDev; // Nur zum vergleichen + VclPtr<OutputDevice> pDragWin; SfxStyleSheet* pDefaultStyleSheet; OUString aAktLayer; // Aktueller Zeichenlayer diff --git a/svx/source/svdraw/sdrpaintwindow.cxx b/svx/source/svdraw/sdrpaintwindow.cxx index 27a0cd0..929273c 100644 --- a/svx/source/svdraw/sdrpaintwindow.cxx +++ b/svx/source/svdraw/sdrpaintwindow.cxx @@ -113,31 +113,33 @@ void CandidateMgr::PaintTransparentChildren(vcl::Window & rWindow, Rectangle con } SdrPreRenderDevice::SdrPreRenderDevice(OutputDevice& rOriginal) -: mrOutputDevice(rOriginal) +: mrOutputDevice(rOriginal), + mpPreRenderDevice(new VirtualDevice()) { } SdrPreRenderDevice::~SdrPreRenderDevice() { + mpPreRenderDevice.disposeAndClear(); } void SdrPreRenderDevice::PreparePreRenderDevice() { - // compare size of maPreRenderDevice with size of visible area - if(maPreRenderDevice.GetOutputSizePixel() != mrOutputDevice.GetOutputSizePixel()) + // compare size of mpPreRenderDevice with size of visible area + if(mpPreRenderDevice->GetOutputSizePixel() != mrOutputDevice.GetOutputSizePixel()) { - maPreRenderDevice.SetOutputSizePixel(mrOutputDevice.GetOutputSizePixel()); + mpPreRenderDevice->SetOutputSizePixel(mrOutputDevice.GetOutputSizePixel()); } // Also compare the MapModes for zoom/scroll changes - if(maPreRenderDevice.GetMapMode() != mrOutputDevice.GetMapMode()) + if(mpPreRenderDevice->GetMapMode() != mrOutputDevice.GetMapMode()) { - maPreRenderDevice.SetMapMode(mrOutputDevice.GetMapMode()); + mpPreRenderDevice->SetMapMode(mrOutputDevice.GetMapMode()); } // #i29186# - maPreRenderDevice.SetDrawMode(mrOutputDevice.GetDrawMode()); - maPreRenderDevice.SetSettings(mrOutputDevice.GetSettings()); + mpPreRenderDevice->SetDrawMode(mrOutputDevice.GetDrawMode()); + mpPreRenderDevice->SetSettings(mrOutputDevice.GetSettings()); } void SdrPreRenderDevice::OutputPreRenderDevice(const vcl::Region& rExpandedRegion) @@ -149,9 +151,9 @@ void SdrPreRenderDevice::OutputPreRenderDevice(const vcl::Region& rExpandedRegio // MapModes off bool bMapModeWasEnabledDest(mrOutputDevice.IsMapModeEnabled()); - bool bMapModeWasEnabledSource(maPreRenderDevice.IsMapModeEnabled()); + bool bMapModeWasEnabledSource(mpPreRenderDevice->IsMapModeEnabled()); mrOutputDevice.EnableMapMode(false); - maPreRenderDevice.EnableMapMode(false); + mpPreRenderDevice->EnableMapMode(false); RectangleVector aRectangles; aRegionPixel.GetRegionRectangles(aRectangles); @@ -165,7 +167,7 @@ void SdrPreRenderDevice::OutputPreRenderDevice(const vcl::Region& rExpandedRegio mrOutputDevice.DrawOutDev( aTopLeft, aSize, aTopLeft, aSize, - maPreRenderDevice); + *mpPreRenderDevice.get()); #ifdef DBG_UTIL // #i74769# @@ -186,7 +188,7 @@ void SdrPreRenderDevice::OutputPreRenderDevice(const vcl::Region& rExpandedRegio } mrOutputDevice.EnableMapMode(bMapModeWasEnabledDest); - maPreRenderDevice.EnableMapMode(bMapModeWasEnabledSource); + mpPreRenderDevice->EnableMapMode(bMapModeWasEnabledSource); } diff --git a/svx/source/svdraw/svdedxv.cxx b/svx/source/svdraw/svdedxv.cxx index 553af3d..95bd4d3 100644 --- a/svx/source/svdraw/svdedxv.cxx +++ b/svx/source/svdraw/svdedxv.cxx @@ -1723,7 +1723,7 @@ void SdrObjEditView::ImpMacroUp(const Point& rUpPos) aHitRec.nTol=nMacroTol; aHitRec.pVisiLayer=&pMacroPV->GetVisibleLayers(); aHitRec.pPageView=pMacroPV; - aHitRec.pOut=pMacroWin; + aHitRec.pOut=pMacroWin.get(); pMacroObj->PaintMacro(*pMacroWin,Rectangle(),aHitRec); bMacroDown=false; } @@ -1740,7 +1740,7 @@ void SdrObjEditView::ImpMacroDown(const Point& rDownPos) aHitRec.pVisiLayer=&pMacroPV->GetVisibleLayers(); aHitRec.pPageView=pMacroPV; aHitRec.bDown=true; - aHitRec.pOut=pMacroWin; + aHitRec.pOut=pMacroWin.get(); pMacroObj->PaintMacro(*pMacroWin,Rectangle(),aHitRec); bMacroDown=true; } @@ -1756,7 +1756,7 @@ void SdrObjEditView::MovMacroObj(const Point& rPnt) aHitRec.pVisiLayer=&pMacroPV->GetVisibleLayers(); aHitRec.pPageView=pMacroPV; aHitRec.bDown=bMacroDown; - aHitRec.pOut=pMacroWin; + aHitRec.pOut=pMacroWin.get(); bool bDown=pMacroObj->IsMacroHit(aHitRec); if (bDown) ImpMacroDown(rPnt); else ImpMacroUp(rPnt); @@ -1784,7 +1784,7 @@ bool SdrObjEditView::EndMacroObj() aHitRec.pVisiLayer=&pMacroPV->GetVisibleLayers(); aHitRec.pPageView=pMacroPV; aHitRec.bDown=true; - aHitRec.pOut=pMacroWin; + aHitRec.pOut=pMacroWin.get(); bool bRet=pMacroObj->DoMacro(aHitRec); pMacroObj=NULL; pMacroPV=NULL; diff --git a/svx/source/svdraw/svdpntv.cxx b/svx/source/svdraw/svdpntv.cxx index 5e2952f..93cd90b 100644 --- a/svx/source/svdraw/svdpntv.cxx +++ b/svx/source/svdraw/svdpntv.cxx @@ -405,15 +405,15 @@ sal_uInt16 SdrPaintView::ImpGetHitTolLogic(short nHitTol, const OutputDevice* pO void SdrPaintView::TheresNewMapMode() { - if (pActualOutDev!=NULL) { - nHitTolLog=(sal_uInt16)((OutputDevice*)pActualOutDev)->PixelToLogic(Size(nHitTolPix,0)).Width(); - nMinMovLog=(sal_uInt16)((OutputDevice*)pActualOutDev)->PixelToLogic(Size(nMinMovPix,0)).Width(); + if (pActualOutDev) { + nHitTolLog=(sal_uInt16)pActualOutDev->PixelToLogic(Size(nHitTolPix,0)).Width(); + nMinMovLog=(sal_uInt16)pActualOutDev->PixelToLogic(Size(nMinMovPix,0)).Width(); } } void SdrPaintView::SetActualWin(const OutputDevice* pWin) { - pActualOutDev=pWin; + pActualOutDev = const_cast<OutputDevice *>(pWin); TheresNewMapMode(); } diff --git a/svx/source/svdraw/svdview.cxx b/svx/source/svdraw/svdview.cxx index 18df2e6..9a94bf8 100644 --- a/svx/source/svdraw/svdview.cxx +++ b/svx/source/svdraw/svdview.cxx @@ -488,7 +488,7 @@ SdrHitKind SdrView::PickAnything(const Point& rLogicPos, SdrViewEvent& rVEvt) co // we currently don't account for ticker text if(pActualOutDev && pActualOutDev->GetOutDevType() == OUTDEV_WINDOW) { - OutlinerView aOLV(pOutliner, const_cast<vcl::Window*>(static_cast<const vcl::Window*>(pActualOutDev))); + OutlinerView aOLV(pOutliner, const_cast<vcl::Window*>(static_cast<const vcl::Window*>(pActualOutDev.get()))); const EditView& aEV=aOLV.GetEditView(); const SvxFieldItem* pItem=aEV.GetField(aTemporaryTextRelativePosition); if (pItem!=NULL) { @@ -822,7 +822,7 @@ bool SdrView::DoMouseEvent(const SdrViewEvent& rVEvt) if (eHit==SDRHIT_TEXTEDIT) { bool bRet2(pActualOutDev && OUTDEV_WINDOW == pActualOutDev->GetOutDevType() && - SdrBeginTextEdit(rVEvt.pObj, rVEvt.pPV, const_cast<vcl::Window*>(static_cast<const vcl::Window*>(pActualOutDev)), false, (SdrOutliner*)0L)); + SdrBeginTextEdit(rVEvt.pObj, rVEvt.pPV, const_cast<vcl::Window*>(static_cast<const vcl::Window*>(pActualOutDev.get())), false, (SdrOutliner*)0L)); if(bRet2) { @@ -906,7 +906,7 @@ bool SdrView::DoMouseEvent(const SdrViewEvent& rVEvt) } else bRet=BegCreateObj(aLogicPos); } break; case SDREVENT_BEGMACROOBJ: { - bRet=BegMacroObj(aLogicPos,nHitTolLog,rVEvt.pObj,rVEvt.pPV,const_cast<vcl::Window*>(static_cast<const vcl::Window*>(pActualOutDev))); + bRet=BegMacroObj(aLogicPos,nHitTolLog,rVEvt.pObj,rVEvt.pPV,const_cast<vcl::Window*>(static_cast<const vcl::Window*>(pActualOutDev.get()))); } break; case SDREVENT_BEGTEXTEDIT: { if (!IsObjMarked(rVEvt.pObj)) { @@ -915,7 +915,7 @@ bool SdrView::DoMouseEvent(const SdrViewEvent& rVEvt) } bRet = pActualOutDev && OUTDEV_WINDOW == pActualOutDev->GetOutDevType()&& - SdrBeginTextEdit(rVEvt.pObj, rVEvt.pPV, const_cast<vcl::Window*>(static_cast<const vcl::Window*>(pActualOutDev)), false, (SdrOutliner*)0L); + SdrBeginTextEdit(rVEvt.pObj, rVEvt.pPV, const_cast<vcl::Window*>(static_cast<const vcl::Window*>(pActualOutDev.get())), false, (SdrOutliner*)0L); if(bRet) { @@ -927,8 +927,8 @@ bool SdrView::DoMouseEvent(const SdrViewEvent& rVEvt) } break; default: break; } // switch - if (bRet && pActualOutDev!=NULL && pActualOutDev->GetOutDevType()==OUTDEV_WINDOW) { - vcl::Window* pWin=const_cast<vcl::Window*>(static_cast<const vcl::Window*>(pActualOutDev)); + if (bRet && pActualOutDev && pActualOutDev->GetOutDevType()==OUTDEV_WINDOW) { + vcl::Window* pWin=const_cast<vcl::Window*>(static_cast<const vcl::Window*>(pActualOutDev.get())); // left mouse button pressed? bool bLeftDown=(rVEvt.nMouseCode&MOUSE_LEFT)!=0 && rVEvt.bMouseDown; // left mouse button released? @@ -970,7 +970,7 @@ Pointer SdrView::GetPreferredPointer(const Point& rMousePos, const OutputDevice* aHitRec.nTol=nMacroTol; aHitRec.pVisiLayer=&pMacroPV->GetVisibleLayers(); aHitRec.pPageView=pMacroPV; - aHitRec.pOut=pMacroWin; + aHitRec.pOut=pMacroWin.get(); aHitRec.bDown=bMacroDown; return pMacroObj->GetMacroPointer(aHitRec); } diff --git a/svx/source/unodraw/UnoGraphicExporter.cxx b/svx/source/unodraw/UnoGraphicExporter.cxx index 1f837a9..60eb00f 100644 --- a/svx/source/unodraw/UnoGraphicExporter.cxx +++ b/svx/source/unodraw/UnoGraphicExporter.cxx @@ -624,7 +624,7 @@ bool GraphicExporter::GetGraphic( ExportSettings& rSettings, Graphic& aGraphic, if( !pPage ) return false; - VirtualDevice aVDev; + ScopedVclPtr<VirtualDevice> aVDev( new VirtualDevice() ); const MapMode aMap( mpDoc->GetScaleUnit(), Point(), rSettings.maScaleX, rSettings.maScaleY ); SdrOutliner& rOutl=mpDoc->GetDrawOutliner(NULL); @@ -704,15 +704,15 @@ bool GraphicExporter::GetGraphic( ExportSettings& rSettings, Graphic& aGraphic, boost::scoped_ptr< SdrView > pLocalView; if( PTR_CAST( FmFormModel, mpDoc ) ) { - pLocalView.reset( new FmFormView( PTR_CAST( FmFormModel, mpDoc ), &aVDev ) ); + pLocalView.reset( new FmFormView( PTR_CAST( FmFormModel, mpDoc ), aVDev ) ); } else { - pLocalView.reset( new SdrView( mpDoc, &aVDev ) ); + pLocalView.reset( new SdrView( mpDoc, aVDev ) ); } - boost::scoped_ptr<VirtualDevice> pVDev(CreatePageVDev( pPage, nWidthPix, nHeightPix )); + ScopedVclPtr<VirtualDevice> pVDev(CreatePageVDev( pPage, nWidthPix, nHeightPix )); if( pVDev ) { @@ -726,22 +726,22 @@ bool GraphicExporter::GetGraphic( ExportSettings& rSettings, Graphic& aGraphic, { GDIMetaFile aMtf; - aVDev.SetMapMode( aMap ); + aVDev->SetMapMode( aMap ); if( rSettings.mbUseHighContrast ) - aVDev.SetDrawMode( aVDev.GetDrawMode() | DRAWMODE_SETTINGSLINE | DRAWMODE_SETTINGSFILL | DRAWMODE_SETTINGSTEXT | DRAWMODE_SETTINGSGRADIENT ); - aVDev.EnableOutput( false ); - aMtf.Record( &aVDev ); + aVDev->SetDrawMode( aVDev->GetDrawMode() | DRAWMODE_SETTINGSLINE | DRAWMODE_SETTINGSFILL | DRAWMODE_SETTINGSTEXT | DRAWMODE_SETTINGSGRADIENT ); + aVDev->EnableOutput( false ); + aMtf.Record( aVDev ); Size aNewSize; // create a view boost::scoped_ptr< SdrView > pView; if( PTR_CAST( FmFormModel, mpDoc ) ) { - pView.reset(new FmFormView( PTR_CAST( FmFormModel, mpDoc ), &aVDev )); + pView.reset(new FmFormView( PTR_CAST( FmFormModel, mpDoc ), aVDev )); } else { - pView.reset(new SdrView( mpDoc, &aVDev )); + pView.reset(new SdrView( mpDoc, aVDev )); } pView->SetBordVisible( false ); @@ -754,17 +754,17 @@ bool GraphicExporter::GetGraphic( ExportSettings& rSettings, Graphic& aGraphic, const Rectangle aClipRect( aNewOrg, aNewSize ); MapMode aVMap( aMap ); - aVDev.Push(); + aVDev->Push(); aVMap.SetOrigin( Point( -aNewOrg.X(), -aNewOrg.Y() ) ); - aVDev.SetRelativeMapMode( aVMap ); - aVDev.IntersectClipRegion( aClipRect ); + aVDev->SetRelativeMapMode( aVMap ); + aVDev->IntersectClipRegion( aClipRect ); // Use new StandardCheckVisisbilityRedirector ImplExportCheckVisisbilityRedirector aRedirector( mpCurrentPage ); - pView->CompleteRedraw(&aVDev, vcl::Region(Rectangle(aNewOrg, aNewSize)), &aRedirector); + pView->CompleteRedraw(aVDev, vcl::Region(Rectangle(aNewOrg, aNewSize)), &aRedirector); - aVDev.Pop(); + aVDev->Pop(); aMtf.Stop(); aMtf.WindStart(); @@ -907,7 +907,7 @@ bool GraphicExporter::GetGraphic( ExportSettings& rSettings, Graphic& aGraphic, if( !bSingleGraphic ) { // create a metafile for all shapes - VirtualDevice aOut; + ScopedVclPtr<VirtualDevice> aOut; // calculate bound rect for all shapes Rectangle aBound; @@ -927,18 +927,18 @@ bool GraphicExporter::GetGraphic( ExportSettings& rSettings, Graphic& aGraphic, } } - aOut.EnableOutput( false ); - aOut.SetMapMode( aMap ); + aOut->EnableOutput( false ); + aOut->SetMapMode( aMap ); if( rSettings.mbUseHighContrast ) - aOut.SetDrawMode( aOut.GetDrawMode() | DRAWMODE_SETTINGSLINE | DRAWMODE_SETTINGSFILL | DRAWMODE_SETTINGSTEXT | DRAWMODE_SETTINGSGRADIENT ); + aOut->SetDrawMode( aOut->GetDrawMode() | DRAWMODE_SETTINGSLINE | DRAWMODE_SETTINGSFILL | DRAWMODE_SETTINGSTEXT | DRAWMODE_SETTINGSGRADIENT ); GDIMetaFile aMtf; aMtf.Clear(); - aMtf.Record( &aOut ); + aMtf.Record( aOut ); MapMode aOutMap( aMap ); aOutMap.SetOrigin( Point( -aBound.TopLeft().X(), -aBound.TopLeft().Y() ) ); - aOut.SetRelativeMapMode( aOutMap ); + aOut->SetRelativeMapMode( aOutMap ); sdr::contact::DisplayInfo aDisplayInfo; @@ -956,7 +956,7 @@ bool GraphicExporter::GetGraphic( ExportSettings& rSettings, Graphic& aGraphic, { // more effective way to paint a vector of SdrObjects. Hand over the processed page // to have it in the - sdr::contact::ObjectContactOfObjListPainter aMultiObjectPainter(aOut, aShapes, mpCurrentPage); + sdr::contact::ObjectContactOfObjListPainter aMultiObjectPainter(*aOut.get(), aShapes, mpCurrentPage); ImplExportCheckVisisbilityRedirector aCheckVisibilityRedirector(mpCurrentPage); aMultiObjectPainter.SetViewObjectContactRedirector(&aCheckVisibilityRedirector); @@ -966,7 +966,7 @@ bool GraphicExporter::GetGraphic( ExportSettings& rSettings, Graphic& aGraphic, aMtf.Stop(); aMtf.WindStart(); - const Size aExtSize( aOut.PixelToLogic( Size( 0, 0 ) ) ); + const Size aExtSize( aOut->PixelToLogic( Size( 0, 0 ) ) ); Size aBoundSize( aBound.GetWidth() + ( aExtSize.Width() ), aBound.GetHeight() + ( aExtSize.Height() ) ); diff --git a/svx/source/unodraw/unoshape.cxx b/svx/source/unodraw/unoshape.cxx index 83c6f77..1279c3c 100644 --- a/svx/source/unodraw/unoshape.cxx +++ b/svx/source/unodraw/unoshape.cxx @@ -670,13 +670,13 @@ uno::Any SvxShape::GetBitmap( bool bMetaFile /* = false */ ) const if( !mpObj.is() || mpModel == NULL || !mpObj->IsInserted() || NULL == mpObj->GetPage() ) return aAny; - VirtualDevice aVDev; - aVDev.SetMapMode(MapMode(MAP_100TH_MM)); + ScopedVclPtr<VirtualDevice> pVDev( new VirtualDevice() ); + pVDev->SetMapMode(MapMode(MAP_100TH_MM)); SdrModel* pModel = mpObj->GetModel(); SdrPage* pPage = mpObj->GetPage(); - boost::scoped_ptr<E3dView> pView(new E3dView( pModel, &aVDev )); + boost::scoped_ptr<E3dView> pView(new E3dView( pModel, pVDev.get() )); pView->hideMarkHandles(); SdrPageView* pPageView = pView->ShowSdrPage(pPage); diff --git a/svx/source/xoutdev/_xoutbmp.cxx b/svx/source/xoutdev/_xoutbmp.cxx index a24689b..f769704 100644 --- a/svx/source/xoutdev/_xoutbmp.cxx +++ b/svx/source/xoutdev/_xoutbmp.cxx @@ -250,27 +250,27 @@ sal_uInt16 XOutBitmap::WriteGraphic( const Graphic& rGraphic, OUString& rFileNam { if( pMtfSize_100TH_MM && ( rGraphic.GetType() != GRAPHIC_BITMAP ) ) { - VirtualDevice aVDev; - const Size aSize( aVDev.LogicToPixel( *pMtfSize_100TH_MM, MAP_100TH_MM ) ); + ScopedVclPtr< VirtualDevice > pVDev(new VirtualDevice()); + const Size aSize( pVDev->LogicToPixel( *pMtfSize_100TH_MM, MAP_100TH_MM ) ); - if( aVDev.SetOutputSizePixel( aSize ) ) + if( pVDev->SetOutputSizePixel( aSize ) ) { - const Wallpaper aWallpaper( aVDev.GetBackground() ); + const Wallpaper aWallpaper( pVDev->GetBackground() ); const Point aPt; - aVDev.SetBackground( Wallpaper( Color( COL_BLACK ) ) ); - aVDev.Erase(); - rGraphic.Draw( &aVDev, aPt, aSize ); + pVDev->SetBackground( Wallpaper( Color( COL_BLACK ) ) ); + pVDev->Erase(); + rGraphic.Draw( pVDev.get(), aPt, aSize ); - const Bitmap aBitmap( aVDev.GetBitmap( aPt, aSize ) ); + const Bitmap aBitmap( pVDev->GetBitmap( aPt, aSize ) ); - aVDev.SetBackground( aWallpaper ); - aVDev.Erase(); - rGraphic.Draw( &aVDev, aPt, aSize ); + pVDev->SetBackground( aWallpaper ); + pVDev->Erase(); + rGraphic.Draw( pVDev.get(), aPt, aSize ); - aVDev.SetRasterOp( ROP_XOR ); - aVDev.DrawBitmap( aPt, aSize, aBitmap ); - aGraphic = BitmapEx( aBitmap, aVDev.GetBitmap( aPt, aSize ) ); + pVDev->SetRasterOp( ROP_XOR ); + pVDev->DrawBitmap( aPt, aSize, aBitmap ); + aGraphic = BitmapEx( aBitmap, pVDev->GetBitmap( aPt, aSize ) ); } else aGraphic = rGraphic.GetBitmapEx(); @@ -283,13 +283,13 @@ sal_uInt16 XOutBitmap::WriteGraphic( const Graphic& rGraphic, OUString& rFileNam { if( pMtfSize_100TH_MM && ( rGraphic.GetType() != GRAPHIC_BITMAP ) ) { - VirtualDevice aVDev; - const Size aSize( aVDev.LogicToPixel( *pMtfSize_100TH_MM, MAP_100TH_MM ) ); + ScopedVclPtr< VirtualDevice > pVDev(new VirtualDevice()); + const Size aSize( pVDev->LogicToPixel( *pMtfSize_100TH_MM, MAP_100TH_MM ) ); - if( aVDev.SetOutputSizePixel( aSize ) ) + if( pVDev->SetOutputSizePixel( aSize ) ) { - rGraphic.Draw( &aVDev, Point(), aSize ); - aGraphic = aVDev.GetBitmap( Point(), aSize ); + rGraphic.Draw( pVDev.get(), Point(), aSize ); + aGraphic = pVDev->GetBitmap( Point(), aSize ); } else aGraphic = rGraphic.GetBitmap(); diff --git a/svx/source/xoutdev/xattrbmp.cxx b/svx/source/xoutdev/xattrbmp.cxx index 101f8d7..28b3ab5 100644 --- a/svx/source/xoutdev/xattrbmp.cxx +++ b/svx/source/xoutdev/xattrbmp.cxx @@ -138,7 +138,7 @@ const GraphicObject& XOBitmap::GetGraphicObject() const void XOBitmap::Bitmap2Array() { - VirtualDevice aVD; + ScopedVclPtr<VirtualDevice> pVDev( new VirtualDevice() ); bool bPixelColor = false; const Bitmap aBitmap( GetBitmap() ); const sal_uInt16 nLines = 8; // type dependent @@ -146,23 +146,23 @@ void XOBitmap::Bitmap2Array() if( !pPixelArray ) pPixelArray = new sal_uInt16[ nLines * nLines ]; - aVD.SetOutputSizePixel( aBitmap.GetSizePixel() ); - aVD.DrawBitmap( Point(), aBitmap ); - aPixelColor = aBckgrColor = aVD.GetPixel( Point() ); + pVDev->SetOutputSizePixel( aBitmap.GetSizePixel() ); + pVDev->DrawBitmap( Point(), aBitmap ); + aPixelColor = aBckgrColor = pVDev->GetPixel( Point() ); // create array and determine foreground and background color for( sal_uInt16 i = 0; i < nLines; i++ ) { for( sal_uInt16 j = 0; j < nLines; j++ ) { - if ( aVD.GetPixel( Point( j, i ) ) == aBckgrColor ) + if ( pVDev->GetPixel( Point( j, i ) ) == aBckgrColor ) *( pPixelArray + j + i * nLines ) = 0; else { *( pPixelArray + j + i * nLines ) = 1; if( !bPixelColor ) { - aPixelColor = aVD.GetPixel( Point( j, i ) ); + aPixelColor = pVDev->GetPixel( Point( j, i ) ); bPixelColor = true; } } @@ -173,13 +173,13 @@ void XOBitmap::Bitmap2Array() /// convert array, fore- and background color into a bitmap void XOBitmap::Array2Bitmap() { - VirtualDevice aVD; - sal_uInt16 nLines = 8; // type dependent + ScopedVclPtr<VirtualDevice> pVDev( new VirtualDevice() ); + sal_uInt16 nLines = 8; // type dependent if( !pPixelArray ) return; - aVD.SetOutputSizePixel( Size( nLines, nLines ) ); + pVDev->SetOutputSizePixel( Size( nLines, nLines ) ); // create bitmap for( sal_uInt16 i = 0; i < nLines; i++ ) @@ -187,13 +187,13 @@ void XOBitmap::Array2Bitmap() for( sal_uInt16 j = 0; j < nLines; j++ ) { if( *( pPixelArray + j + i * nLines ) == 0 ) - aVD.DrawPixel( Point( j, i ), aBckgrColor ); + pVDev->DrawPixel( Point( j, i ), aBckgrColor ); else - aVD.DrawPixel( Point( j, i ), aPixelColor ); + pVDev->DrawPixel( Point( j, i ), aPixelColor ); } } - aGraphicObject = GraphicObject( aVD.GetBitmap( Point(), Size( nLines, nLines ) ) ); + aGraphicObject = GraphicObject( pVDev->GetBitmap( Point(), Size( nLines, nLines ) ) ); bGraphicDirty = false; } diff --git a/svx/source/xoutdev/xtabdash.cxx b/svx/source/xoutdev/xtabdash.cxx index 129490a..07d02a1 100644 --- a/svx/source/xoutdev/xtabdash.cxx +++ b/svx/source/xoutdev/xtabdash.cxx @@ -135,11 +135,11 @@ Bitmap XDashList::ImpCreateBitmapForXDash(const XDash* pDash) aStrokeAttribute)); // prepare VirtualDevice - VirtualDevice aVirtualDevice; + ScopedVclPtr< VirtualDevice > pVirtualDevice(new VirtualDevice()); const drawinglayer::geometry::ViewInformation2D aNewViewInformation2D; - aVirtualDevice.SetOutputSizePixel(aSize); - aVirtualDevice.SetDrawMode(rStyleSettings.GetHighContrastMode() + pVirtualDevice->SetOutputSizePixel(aSize); + pVirtualDevice->SetDrawMode(rStyleSettings.GetHighContrastMode() ? DRAWMODE_SETTINGSLINE | DRAWMODE_SETTINGSFILL | DRAWMODE_SETTINGSTEXT | DRAWMODE_SETTINGSGRADIENT : DRAWMODE_DEFAULT); @@ -150,17 +150,17 @@ Bitmap XDashList::ImpCreateBitmapForXDash(const XDash* pDash) static const Color aW(COL_WHITE); static const Color aG(0xef, 0xef, 0xef); - aVirtualDevice.DrawCheckered(aNull, aSize, nLen, aW, aG); + pVirtualDevice->DrawCheckered(aNull, aSize, nLen, aW, aG); } else { - aVirtualDevice.SetBackground(rStyleSettings.GetFieldColor()); - aVirtualDevice.Erase(); + pVirtualDevice->SetBackground(rStyleSettings.GetFieldColor()); + pVirtualDevice->Erase(); } // create processor and draw primitives boost::scoped_ptr<drawinglayer::processor2d::BaseProcessor2D> pProcessor2D(drawinglayer::processor2d::createPixelProcessor2DFromOutputDevice( - aVirtualDevice, + *pVirtualDevice.get(), aNewViewInformation2D)); if(pProcessor2D) @@ -172,7 +172,7 @@ Bitmap XDashList::ImpCreateBitmapForXDash(const XDash* pDash) } // get result bitmap and scale - Bitmap aRetval(aVirtualDevice.GetBitmap(Point(0, 0), aVirtualDevice.GetOutputSizePixel())); + Bitmap aRetval(pVirtualDevice->GetBitmap(Point(0, 0), pVirtualDevice->GetOutputSizePixel())); if(1 != nFactor) { diff --git a/svx/source/xoutdev/xtabgrdt.cxx b/svx/source/xoutdev/xtabgrdt.cxx index f25a215..5607659 100644 --- a/svx/source/xoutdev/xtabgrdt.cxx +++ b/svx/source/xoutdev/xtabgrdt.cxx @@ -181,17 +181,17 @@ Bitmap XGradientList::CreateBitmapForUI( long nIndex ) aBlack)); // prepare VirtualDevice - VirtualDevice aVirtualDevice; + ScopedVclPtr< VirtualDevice > pVirtualDevice(new VirtualDevice()); const drawinglayer::geometry::ViewInformation2D aNewViewInformation2D; - aVirtualDevice.SetOutputSizePixel(rSize); - aVirtualDevice.SetDrawMode(rStyleSettings.GetHighContrastMode() + pVirtualDevice->SetOutputSizePixel(rSize); + pVirtualDevice->SetDrawMode(rStyleSettings.GetHighContrastMode() ? DRAWMODE_SETTINGSLINE | DRAWMODE_SETTINGSFILL | DRAWMODE_SETTINGSTEXT | DRAWMODE_SETTINGSGRADIENT : DRAWMODE_DEFAULT); // create processor and draw primitives boost::scoped_ptr<drawinglayer::processor2d::BaseProcessor2D> pProcessor2D(drawinglayer::processor2d::createPixelProcessor2DFromOutputDevice( - aVirtualDevice, + *pVirtualDevice.get(), aNewViewInformation2D)); if(pProcessor2D) @@ -206,7 +206,7 @@ Bitmap XGradientList::CreateBitmapForUI( long nIndex ) } // get result bitmap and scale - aRetval = aVirtualDevice.GetBitmap(Point(0, 0), aVirtualDevice.GetOutputSizePixel()); + aRetval = pVirtualDevice->GetBitmap(Point(0, 0), pVirtualDevice->GetOutputSizePixel()); } return aRetval; diff --git a/svx/source/xoutdev/xtabhtch.cxx b/svx/source/xoutdev/xtabhtch.cxx index ba73c5c..5553476 100644 --- a/svx/source/xoutdev/xtabhtch.cxx +++ b/svx/source/xoutdev/xtabhtch.cxx @@ -142,11 +142,11 @@ Bitmap XHatchList::CreateBitmapForUI( long nIndex ) aBlack)); // prepare VirtualDevice - VirtualDevice aVirtualDevice; + ScopedVclPtr< VirtualDevice > pVirtualDevice(new VirtualDevice()); const drawinglayer::geometry::ViewInformation2D aNewViewInformation2D; - aVirtualDevice.SetOutputSizePixel(rSize); - aVirtualDevice.SetDrawMode(rStyleSettings.GetHighContrastMode() + pVirtualDevice->SetOutputSizePixel(rSize); + pVirtualDevice->SetDrawMode(rStyleSettings.GetHighContrastMode() ? DRAWMODE_SETTINGSLINE | DRAWMODE_SETTINGSFILL | DRAWMODE_SETTINGSTEXT | DRAWMODE_SETTINGSGRADIENT : DRAWMODE_DEFAULT); @@ -156,17 +156,17 @@ Bitmap XHatchList::CreateBitmapForUI( long nIndex ) static const sal_uInt32 nLen(8); static const Color aW(COL_WHITE); static const Color aG(0xef, 0xef, 0xef); - aVirtualDevice.DrawCheckered(aNull, rSize, nLen, aW, aG); + pVirtualDevice->DrawCheckered(aNull, rSize, nLen, aW, aG); } else { - aVirtualDevice.SetBackground(rStyleSettings.GetFieldColor()); - aVirtualDevice.Erase(); + pVirtualDevice->SetBackground(rStyleSettings.GetFieldColor()); + pVirtualDevice->Erase(); } // create processor and draw primitives boost::scoped_ptr<drawinglayer::processor2d::BaseProcessor2D> pProcessor2D(drawinglayer::processor2d::createPixelProcessor2DFromOutputDevice( - aVirtualDevice, + *pVirtualDevice.get(), aNewViewInformation2D)); if(pProcessor2D) @@ -180,7 +180,7 @@ Bitmap XHatchList::CreateBitmapForUI( long nIndex ) } // get result bitmap and scale - aRetval = aVirtualDevice.GetBitmap(Point(0, 0), aVirtualDevice.GetOutputSizePixel()); + aRetval = pVirtualDevice->GetBitmap(Point(0, 0), pVirtualDevice->GetOutputSizePixel()); } return aRetval; diff --git a/svx/source/xoutdev/xtablend.cxx b/svx/source/xoutdev/xtablend.cxx index cd4dae3..1c5b8a8 100644 --- a/svx/source/xoutdev/xtablend.cxx +++ b/svx/source/xoutdev/xtablend.cxx @@ -125,11 +125,11 @@ Bitmap XLineEndList::CreateBitmapForUI( long nIndex ) aLineStartEndAttribute)); // prepare VirtualDevice - VirtualDevice aVirtualDevice; + ScopedVclPtr< VirtualDevice > pVirtualDevice(new VirtualDevice()); const drawinglayer::geometry::ViewInformation2D aNewViewInformation2D; - aVirtualDevice.SetOutputSizePixel(aSize); - aVirtualDevice.SetDrawMode(rStyleSettings.GetHighContrastMode() + pVirtualDevice->SetOutputSizePixel(aSize); + pVirtualDevice->SetDrawMode(rStyleSettings.GetHighContrastMode() ? DRAWMODE_SETTINGSLINE | DRAWMODE_SETTINGSFILL | DRAWMODE_SETTINGSTEXT | DRAWMODE_SETTINGSGRADIENT : DRAWMODE_DEFAULT); @@ -139,17 +139,17 @@ Bitmap XLineEndList::CreateBitmapForUI( long nIndex ) static const sal_uInt32 nLen(8); static const Color aW(COL_WHITE); static const Color aG(0xef, 0xef, 0xef); - aVirtualDevice.DrawCheckered(aNull, aSize, nLen, aW, aG); + pVirtualDevice->DrawCheckered(aNull, aSize, nLen, aW, aG); } else { - aVirtualDevice.SetBackground(rStyleSettings.GetFieldColor()); - aVirtualDevice.Erase(); + pVirtualDevice->SetBackground(rStyleSettings.GetFieldColor()); + pVirtualDevice->Erase(); } // create processor and draw primitives boost::scoped_ptr<drawinglayer::processor2d::BaseProcessor2D> pProcessor2D(drawinglayer::processor2d::createPixelProcessor2DFromOutputDevice( - aVirtualDevice, + *pVirtualDevice.get(), aNewViewInformation2D)); if(pProcessor2D) @@ -161,7 +161,7 @@ Bitmap XLineEndList::CreateBitmapForUI( long nIndex ) } // get result bitmap and scale - aRetval = aVirtualDevice.GetBitmap(Point(0, 0), aVirtualDevice.GetOutputSizePixel()); + aRetval = pVirtualDevice->GetBitmap(Point(0, 0), pVirtualDevice->GetOutputSizePixel()); } return aRetval; diff --git a/sw/inc/viewsh.hxx b/sw/inc/viewsh.hxx index 22293b8..8f8abca 100644 --- a/sw/inc/viewsh.hxx +++ b/sw/inc/viewsh.hxx @@ -124,11 +124,11 @@ class SW_DLLPUBLIC SwViewShell : public sw::Ring<SwViewShell> SfxViewShell *mpSfxViewShell; SwViewImp *mpImp; // Core-internals of SwViewShell. - // The pointer is never 0. + // The pointer is never 0. - VclPtr<::vcl::Window> mpWin; ///< = 0 during printing or pdf export - OutputDevice *mpOut; ///< Window, Printer, VirtDev, ... - OutputDevice* mpTmpRef; // Temporariy reference device. Is used + VclPtr<::vcl::Window> mpWin; ///< = 0 during printing or pdf export + VclPtr<OutputDevice> mpOut; ///< Window, Printer, VirtDev, ... + VclPtr<OutputDevice> mpTmpRef; // Temporariy reference device. Is used // during (printer depending) prospect // and page preview printing // (because a scaling has to be set at @@ -160,7 +160,7 @@ class SW_DLLPUBLIC SwViewShell : public sw::Ring<SwViewShell> bool mbTiledRendering:1; ///< Set if we are doing the tiled rendering (using PaintTile()). SdrPaintWindow* mpTargetPaintWindow; - OutputDevice* mpBufferedOut; + VclPtr<OutputDevice> mpBufferedOut; SwRootFrmPtr mpLayout; @@ -233,7 +233,7 @@ public: // #i72754# set of Pre/PostPaints with lock counter and initial target OutDev protected: std::stack<vcl::Region> mPrePostPaintRegions; // acts also as a lock counter (empty == not locked) - OutputDevice* mpPrePostOutDev; + VclPtr<OutputDevice> mpPrePostOutDev; MapMode maPrePostMapMode; public: void PrePaint(); diff --git a/sw/qa/tiledrendering/tiledrendering.cxx b/sw/qa/tiledrendering/tiledrendering.cxx index a7a84fb..73845bd 100644 --- a/sw/qa/tiledrendering/tiledrendering.cxx +++ b/sw/qa/tiledrendering/tiledrendering.cxx @@ -131,13 +131,13 @@ IMPL_LINK ( TiledRenderingDialog, RenderHdl, Button *, EMPTYARG ) // SystemGraphicsData aData; // [setup the aData] // VirtualDevice aDevice(&aData, [color depth]); - VirtualDevice aDevice; + ScopedVclPtr< VirtualDevice > pDevice(new VirtualDevice()); // paint to it - pViewShell->PaintTile(aDevice, contextWidth, contextHeight, tilePosX, tilePosY, tileWidth, tileHeight); + pViewShell->PaintTile(*pDevice.get(), contextWidth, contextHeight, tilePosX, tilePosY, tileWidth, tileHeight); // copy the aDevice content to mpImage - Bitmap aBitmap(aDevice.GetBitmap(aDevice.PixelToLogic(Point(0,0)), aDevice.PixelToLogic(Size(contextWidth, contextHeight)))); + Bitmap aBitmap(pDevice->GetBitmap(aDevice->PixelToLogic(Point(0,0)), pDevice->PixelToLogic(Size(contextWidth, contextHeight)))); mpImage->SetImage(Image(aBitmap)); // update the dialog size diff --git a/sw/source/core/frmedt/fecopy.cxx b/sw/source/core/frmedt/fecopy.cxx index 2fb7377..69dc7e8 100644 --- a/sw/source/core/frmedt/fecopy.cxx +++ b/sw/source/core/frmedt/fecopy.cxx @@ -1232,15 +1232,15 @@ bool SwFEShell::GetDrawObjGraphic( sal_uLong nFmt, Graphic& rGrf ) const Point aPt; GetGrfSize( aSz ); - VirtualDevice aVirtDev; - aVirtDev.EnableOutput( false ); + ScopedVclPtr< VirtualDevice > pVirtDev(new VirtualDevice()); + pVirtDev->EnableOutput( false ); MapMode aTmp( GetWin()->GetMapMode() ); aTmp.SetOrigin( aPt ); - aVirtDev.SetMapMode( aTmp ); + pVirtDev->SetMapMode( aTmp ); GDIMetaFile aMtf; - aMtf.Record( &aVirtDev ); + aMtf.Record( pVirtDev.get() ); aGrf.Draw( &aVirtDev, aPt, aSz ); aMtf.Stop(); aMtf.SetPrefMapMode( aTmp ); @@ -1259,14 +1259,14 @@ bool SwFEShell::GetDrawObjGraphic( sal_uLong nFmt, Graphic& rGrf ) const // Otherwise it could happen that for vector graphics // many MB's of memory are allocated. const Size aSz( FindFlyFrm()->Prt().SSize() ); - VirtualDevice aVirtDev( *GetWin() ); + ScopedVclPtr< VirtualDevice > pVirtDev(new VirtualDevice(*GetWin())); MapMode aTmp( MAP_TWIP ); - aVirtDev.SetMapMode( aTmp ); - if( aVirtDev.SetOutputSize( aSz ) ) + pVirtDev->SetMapMode( aTmp ); + if( pVirtDev->SetOutputSize( aSz ) ) { - aGrf.Draw( &aVirtDev, Point(), aSz ); - rGrf = aVirtDev.GetBitmap( Point(), aSz ); + aGrf.Draw( pVirtDev.get(), Point(), aSz ); + rGrf = pVirtDev->GetBitmap( Point(), aSz ); } else { diff --git a/sw/source/core/layout/paintfrm.cxx b/sw/source/core/layout/paintfrm.cxx index 228bbee..b408f36 100644 --- a/sw/source/core/layout/paintfrm.cxx +++ b/sw/source/core/layout/paintfrm.cxx @@ -7644,21 +7644,21 @@ Graphic SwFlyFrmFmt::MakeGraphic( ImageMap* pMap ) SwFlyFrm *pFly = static_cast<SwFlyFrm*>(pFirst); OutputDevice *pOld = pSh->GetOut(); - VirtualDevice aDev( *pOld ); - aDev.EnableOutput( false ); + ScopedVclPtr< VirtualDevice > pDev( new VirtualDevice( *pOld ) ); + pDev->EnableOutput( false ); GDIMetaFile aMet; MapMode aMap( pOld->GetMapMode().GetMapUnit() ); - aDev.SetMapMode( aMap ); + pDev->SetMapMode( aMap ); aMet.SetPrefMapMode( aMap ); ::SwCalcPixStatics( pSh->GetOut() ); aMet.SetPrefSize( pFly->Frm().SSize() ); - aMet.Record( &aDev ); - aDev.SetLineColor(); - aDev.SetFillColor(); - aDev.SetFont( pOld->GetFont() ); + aMet.Record( pDev.get() ); + pDev->SetLineColor(); + pDev->SetFillColor(); + pDev->SetFont( pOld->GetFont() ); //Enlarge the rectangle if needed, so the border is painted too. SwRect aOut( pFly->Frm() ); diff --git a/sw/source/core/view/vnew.cxx b/sw/source/core/view/vnew.cxx index 3cfe679..b48f5e9 100644 --- a/sw/source/core/view/vnew.cxx +++ b/sw/source/core/view/vnew.cxx @@ -361,7 +361,7 @@ SwViewShell::~SwViewShell() this->GetNext() : nullptr ); } - delete mpTmpRef; + mpTmpRef.disposeAndClear(); delete mpAccOptions; } diff --git a/sw/source/filter/ww8/wrtww8gr.cxx b/sw/source/filter/ww8/wrtww8gr.cxx index fd2e5b1..c021360 100644 --- a/sw/source/filter/ww8/wrtww8gr.cxx +++ b/sw/source/filter/ww8/wrtww8gr.cxx @@ -727,9 +727,9 @@ void SwWW8WrGrf::WriteGrfFromGrfNode(SvStream& rStrm, const SwGrfNode &rGrfNd, { case GRAPHIC_BITMAP: // Bitmap -> play in Metafile { - VirtualDevice aVirt; - aMeta.Record(&aVirt); - aVirt.DrawBitmap( Point( 0,0 ), rGrf.GetBitmap() ); + ScopedVclPtr< VirtualDevice > pVirt(new VirtualDevice()); + aMeta.Record(pVirt.get()); + pVirt->DrawBitmap( Point( 0,0 ), rGrf.GetBitmap() ); aMeta.Stop(); aMeta.WindStart(); aMeta.SetPrefMapMode( rGrf.GetPrefMapMode()); @@ -857,9 +857,9 @@ void SwWW8WrGrf::WriteGrfForBullet(SvStream& rStrm, const Graphic &rGrf, sal_uIn { case GRAPHIC_BITMAP: // Bitmap -> in Metafile abspielen { - VirtualDevice aVirt; - aMeta.Record(&aVirt); - aVirt.DrawBitmap( Point( 0,0 ), rGrf.GetBitmap() ); + ScopedVclPtr< VirtualDevice > pVirt(new VirtualDevice()); + aMeta.Record(pVirt.get()); + pVirt->DrawBitmap( Point( 0,0 ), rGrf.GetBitmap() ); aMeta.Stop(); aMeta.WindStart(); aMeta.SetPrefMapMode( rGrf.GetPrefMapMode()); diff --git a/vcl/workben/vcldemo.cxx b/vcl/workben/vcldemo.cxx index 7e94358..8936553 100644 --- a/vcl/workben/vcldemo.cxx +++ b/vcl/workben/vcldemo.cxx @@ -805,7 +805,8 @@ public: BitmapEx AlphaRecovery(OutputDevice &rDev, Point aPt, BitmapEx &aSrc) { // Compositing onto 2x colors beyond our control - VirtualDevice aWhite, aBlack; + ScopedVclPtr< VirtualDevice > aWhite(new VirtualDevice()); + ScopedVclPtr< VirtualDevice > aBlack(new VirtualDevice()); aWhite.SetOutputSizePixel(aSrc.GetSizePixel()); aWhite.SetBackground(Wallpaper(COL_WHITE)); aWhite.Erase(); @@ -1294,7 +1295,7 @@ public: DrawWallpaper(aWholeSize, aWallpaper); Pop(); - VirtualDevice aDev(*this); + ScopedVclPtr< VirtualDevice > aDev(new VirtualDevice(*this)); aDev.EnableRTL(IsRTLEnabled()); aDev.SetOutputSizePixel(aExclude.GetSize()); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits