[Libreoffice-commits] core.git: 5 commits - chart2/source

Markus Mohrhard markus.mohrhard at collabora.co.uk
Wed Jul 23 14:06:11 PDT 2014


 chart2/source/view/charttypes/GL3DBarChart.cxx |   29 +++++++++++++++++++++----
 1 file changed, 25 insertions(+), 4 deletions(-)

New commits:
commit efea971d33d83b39bcb883da51cc204a981897f9
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date:   Wed Jul 23 22:57:17 2014 +0200

    by default we want the non-benchmark mode
    
    Change-Id: I82c8d0c36f1748158545a2bfa5b816c5bb9d44f0

diff --git a/chart2/source/view/charttypes/GL3DBarChart.cxx b/chart2/source/view/charttypes/GL3DBarChart.cxx
index d681c33..7d3ffd5 100644
--- a/chart2/source/view/charttypes/GL3DBarChart.cxx
+++ b/chart2/source/view/charttypes/GL3DBarChart.cxx
@@ -24,7 +24,7 @@
 #include <windows.h>
 #endif
 
-#define BENCH_MARK_MODE 1
+#define BENCH_MARK_MODE 0
 
 using namespace com::sun::star;
 
commit bffb6ccc133987dcb11d0b9ac7135fdc7430c49b
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date:   Wed Jul 23 22:56:24 2014 +0200

    that mutex is not necessary
    
    The join makes sure that the thread is not running anymore
    
    Change-Id: I3f900e36833240544005d03ce1ae1f2330365a03

diff --git a/chart2/source/view/charttypes/GL3DBarChart.cxx b/chart2/source/view/charttypes/GL3DBarChart.cxx
index c5526b1..d681c33 100644
--- a/chart2/source/view/charttypes/GL3DBarChart.cxx
+++ b/chart2/source/view/charttypes/GL3DBarChart.cxx
@@ -223,9 +223,10 @@ GL3DBarChart::~GL3DBarChart()
         osl::MutexGuard aGuard(maMutex);
         mbRenderDie = true;
     }
+
     if(mpRenderThread.is())
         mpRenderThread->join();
-    osl::MutexGuard aGuard(maMutex);
+
     if(mbValidContext)
         mrWindow.setRenderer(NULL);
 }
commit 5e72b7b77e77561fe965b0c5a3446d4fdb99503f
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date:   Wed Jul 23 22:54:31 2014 +0200

    fix one more deadlock
    
    Change-Id: I1e8e24735f6a57982834f84b26042b7082fa4410

diff --git a/chart2/source/view/charttypes/GL3DBarChart.cxx b/chart2/source/view/charttypes/GL3DBarChart.cxx
index 16ace23..c5526b1 100644
--- a/chart2/source/view/charttypes/GL3DBarChart.cxx
+++ b/chart2/source/view/charttypes/GL3DBarChart.cxx
@@ -669,10 +669,11 @@ void GL3DBarChart::moveToCorner()
         return;
     }
 
-    osl::MutexGuard aGuard(maMutex);
     if(mpRenderThread.is())
         mpRenderThread->join();
 
+    osl::MutexGuard aGuard(maMutex);
+
     Size aSize = mrWindow.GetSizePixel();
     mrWindow.getContext().setWinSize(aSize);
     mpRenderThread = rtl::Reference<RenderThread>(new RenderAnimationThread(this, getCornerPosition(mnCornerId),
commit 453aeef36c8455ecbb5ef4e58109b4610d5ba243
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date:   Wed Jul 23 22:54:00 2014 +0200

    avoid deadlocks in BENCHMARK_MODE
    
    Change-Id: I1f994ecb6efbd302430062421ccc953dee904741

diff --git a/chart2/source/view/charttypes/GL3DBarChart.cxx b/chart2/source/view/charttypes/GL3DBarChart.cxx
index e3aef22..16ace23 100644
--- a/chart2/source/view/charttypes/GL3DBarChart.cxx
+++ b/chart2/source/view/charttypes/GL3DBarChart.cxx
@@ -509,6 +509,12 @@ public:
 
 void GL3DBarChart::moveToDefault()
 {
+    if(BENCH_MARK_MODE)
+    {
+        // add correct handling here!!
+        return;
+    }
+
     if(mpRenderThread.is())
         mpRenderThread->join();
 
@@ -540,6 +546,12 @@ void GL3DBarChart::clickedAt(const Point& rPos, sal_uInt16 nButtons)
     if(nButtons != MOUSE_LEFT)
         return;
 
+    if (BENCH_MARK_MODE)
+    {
+        // add correct handling here !!
+        return;
+    }
+
     sal_uInt32 nId = 5;
     {
         PickingModeSetter aPickingModeSetter(mpRenderer.get());
@@ -592,6 +604,7 @@ void GL3DBarChart::render()
 {
     if (BENCH_MARK_MODE)
         return;
+
     osl::MutexGuard aGuard(maMutex);
     update();
 }
@@ -650,6 +663,12 @@ glm::vec3 GL3DBarChart::getCornerPosition(sal_Int8 nId)
 
 void GL3DBarChart::moveToCorner()
 {
+    if(BENCH_MARK_MODE)
+    {
+        // add correct handling here!!
+        return;
+    }
+
     osl::MutexGuard aGuard(maMutex);
     if(mpRenderThread.is())
         mpRenderThread->join();
commit 96f373e26ca4632c15dfcb30b14d92714c484313
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date:   Wed Jul 23 22:49:17 2014 +0200

    avoid deadlock in 3D charts
    
    taking the mutex before calling join is silly
    
    Change-Id: I5a2df82f748aa7ccd13824369da5c81842285076

diff --git a/chart2/source/view/charttypes/GL3DBarChart.cxx b/chart2/source/view/charttypes/GL3DBarChart.cxx
index 733d46f..e3aef22 100644
--- a/chart2/source/view/charttypes/GL3DBarChart.cxx
+++ b/chart2/source/view/charttypes/GL3DBarChart.cxx
@@ -509,10 +509,10 @@ public:
 
 void GL3DBarChart::moveToDefault()
 {
-    osl::MutexGuard aGuard(maMutex);
     if(mpRenderThread.is())
         mpRenderThread->join();
 
+    osl::MutexGuard aGuard(maMutex);
     Size aSize = mrWindow.GetSizePixel();
     mrWindow.getContext().setWinSize(aSize);
     mpRenderThread = rtl::Reference<RenderThread>(new RenderAnimationThread(this, maCameraPosition, maDefaultCameraPosition, STEPS));


More information about the Libreoffice-commits mailing list