diff options
Diffstat (limited to 'canvas/source/vcl/spritecanvashelper.cxx')
-rw-r--r-- | canvas/source/vcl/spritecanvashelper.cxx | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/canvas/source/vcl/spritecanvashelper.cxx b/canvas/source/vcl/spritecanvashelper.cxx index 682950534135..51a234feca1c 100644 --- a/canvas/source/vcl/spritecanvashelper.cxx +++ b/canvas/source/vcl/spritecanvashelper.cxx @@ -189,6 +189,12 @@ namespace vclcanvas #endif } + SpriteCanvasHelper::~SpriteCanvasHelper() + { + SolarMutexGuard aGuard; + maVDev.disposeAndClear(); + } + void SpriteCanvasHelper::init( const OutDevProviderSharedPtr& rOutDev, SpriteCanvas& rOwningSpriteCanvas, ::canvas::SpriteRedrawManager& rManager, @@ -318,7 +324,7 @@ namespace vclcanvas mpRedrawManager->forEachSprite( ::boost::bind( &spriteRedraw, - ::boost::ref( maVDev.get() ), + ::boost::ref( *maVDev.get() ), _1 ) ); // flush to screen @@ -576,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 ) ); |