summaryrefslogtreecommitdiff
path: root/canvas/source/vcl/spritecanvashelper.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'canvas/source/vcl/spritecanvashelper.cxx')
-rw-r--r--canvas/source/vcl/spritecanvashelper.cxx10
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 ) );