diff options
10 files changed, 16 insertions, 4 deletions
diff --git a/drawinglayer/source/primitive2d/backgroundcolorprimitive2d.cxx b/drawinglayer/source/primitive2d/backgroundcolorprimitive2d.cxx index f13b92bc4ddb..68f31cb4c67a 100644 --- a/drawinglayer/source/primitive2d/backgroundcolorprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/backgroundcolorprimitive2d.cxx @@ -82,6 +82,7 @@ namespace drawinglayer::primitive2d } // use parent implementation + aGuard.unlock(); BufferedDecompositionPrimitive2D::get2DDecomposition(rVisitor, rViewInformation); } diff --git a/drawinglayer/source/primitive2d/controlprimitive2d.cxx b/drawinglayer/source/primitive2d/controlprimitive2d.cxx index 92f0ed5cf464..6eebc11a0fa5 100644 --- a/drawinglayer/source/primitive2d/controlprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/controlprimitive2d.cxx @@ -336,6 +336,7 @@ namespace drawinglayer::primitive2d } // use parent implementation + aGuard.unlock(); BufferedDecompositionPrimitive2D::get2DDecomposition(rVisitor, rViewInformation); } diff --git a/drawinglayer/source/primitive2d/fillhatchprimitive2d.cxx b/drawinglayer/source/primitive2d/fillhatchprimitive2d.cxx index 666f5459ed39..b01f8d76222a 100644 --- a/drawinglayer/source/primitive2d/fillhatchprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/fillhatchprimitive2d.cxx @@ -176,6 +176,7 @@ namespace drawinglayer::primitive2d std::unique_lock aGuard( m_aMutex ); bool bAdaptDistance(0 != getFillHatch().getMinimalDiscreteDistance()); + aGuard.unlock(); if(bAdaptDistance) { // behave view-dependent diff --git a/drawinglayer/source/primitive2d/gridprimitive2d.cxx b/drawinglayer/source/primitive2d/gridprimitive2d.cxx index 64816b076862..c7929a89c7cf 100644 --- a/drawinglayer/source/primitive2d/gridprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/gridprimitive2d.cxx @@ -324,6 +324,7 @@ namespace drawinglayer::primitive2d } // use parent implementation + aGuard.unlock(); BufferedDecompositionPrimitive2D::get2DDecomposition(rVisitor, rViewInformation); } diff --git a/drawinglayer/source/primitive2d/helplineprimitive2d.cxx b/drawinglayer/source/primitive2d/helplineprimitive2d.cxx index 0db4f37470c2..ba1a680560bb 100644 --- a/drawinglayer/source/primitive2d/helplineprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/helplineprimitive2d.cxx @@ -174,6 +174,7 @@ namespace drawinglayer::primitive2d } // use parent implementation + aGuard.unlock(); BufferedDecompositionPrimitive2D::get2DDecomposition(rVisitor, rViewInformation); } diff --git a/drawinglayer/source/primitive2d/polygonprimitive2d.cxx b/drawinglayer/source/primitive2d/polygonprimitive2d.cxx index 184f72fdb810..961e02eec864 100644 --- a/drawinglayer/source/primitive2d/polygonprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/polygonprimitive2d.cxx @@ -193,6 +193,7 @@ void PolygonMarkerPrimitive2D::get2DDecomposition( } // use parent implementation + aGuard.unlock(); BufferedDecompositionPrimitive2D::get2DDecomposition(rVisitor, rViewInformation); } diff --git a/drawinglayer/source/primitive2d/primitivetools2d.cxx b/drawinglayer/source/primitive2d/primitivetools2d.cxx index 61e060e5ecfa..c4ab4f5c800b 100644 --- a/drawinglayer/source/primitive2d/primitivetools2d.cxx +++ b/drawinglayer/source/primitive2d/primitivetools2d.cxx @@ -45,6 +45,7 @@ namespace drawinglayer::primitive2d } // call base implementation + aGuard.unlock(); BufferedDecompositionPrimitive2D::get2DDecomposition(rVisitor, rViewInformation); } @@ -71,6 +72,7 @@ namespace drawinglayer::primitive2d } // call base implementation + aGuard.unlock(); BufferedDecompositionPrimitive2D::get2DDecomposition(rVisitor, rViewInformation); } @@ -94,6 +96,7 @@ namespace drawinglayer::primitive2d } // call base implementation + aGuard.unlock(); BufferedDecompositionPrimitive2D::get2DDecomposition(rVisitor, rViewInformation); } @@ -127,6 +130,7 @@ namespace drawinglayer::primitive2d } // call base implementation + aGuard.unlock(); BufferedDecompositionPrimitive2D::get2DDecomposition(rVisitor, rViewInformation); } diff --git a/drawinglayer/source/primitive2d/sceneprimitive2d.cxx b/drawinglayer/source/primitive2d/sceneprimitive2d.cxx index cde119d514ba..870d187b222c 100644 --- a/drawinglayer/source/primitive2d/sceneprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/sceneprimitive2d.cxx @@ -128,8 +128,6 @@ namespace drawinglayer::primitive2d { bool ScenePrimitive2D::impGetShadow3D() const { - std::unique_lock aGuard( m_aMutex ); - // create on demand if(!mbShadow3DChecked && !getChildren3D().empty()) { @@ -511,6 +509,8 @@ namespace drawinglayer::primitive2d Primitive2DContainer ScenePrimitive2D::getShadow2D() const { + std::unique_lock aGuard( m_aMutex ); + Primitive2DContainer aRetval; // create 2D shadows from contained 3D primitives @@ -681,6 +681,7 @@ namespace drawinglayer::primitive2d } // use parent implementation + aGuard.unlock(); BufferedDecompositionPrimitive2D::get2DDecomposition(rVisitor, rViewInformation); } diff --git a/drawinglayer/source/primitive2d/texteffectprimitive2d.cxx b/drawinglayer/source/primitive2d/texteffectprimitive2d.cxx index 2a3f9e849eca..d05e727ce50c 100644 --- a/drawinglayer/source/primitive2d/texteffectprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/texteffectprimitive2d.cxx @@ -233,6 +233,7 @@ void TextEffectPrimitive2D::get2DDecomposition( } // use parent implementation + aGuard.unlock(); BufferedDecompositionPrimitive2D::get2DDecomposition(rVisitor, rViewInformation); } diff --git a/include/drawinglayer/primitive2d/baseprimitive2d.hxx b/include/drawinglayer/primitive2d/baseprimitive2d.hxx index f76c3e5a1520..c5ffa61d5230 100644 --- a/include/drawinglayer/primitive2d/baseprimitive2d.hxx +++ b/include/drawinglayer/primitive2d/baseprimitive2d.hxx @@ -37,7 +37,7 @@ class ViewInformation2D; } /** This is a custom re-implementation of cppu::WeakComponentImplHelper which uses - std::recursive_mutex and skips parts of the XComponent stuff. + std::mutex and skips parts of the XComponent stuff. */ class DRAWINGLAYER_DLLPUBLIC BasePrimitive2DImplBase : public cppu::OWeakObject, public css::lang::XComponent, @@ -67,7 +67,7 @@ public: } protected: - mutable std::recursive_mutex m_aMutex; + mutable std::mutex m_aMutex; }; namespace drawinglayer::primitive2d |