summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichele Mocciola2015-07-06 23:25:34 +0200
committerMichele Mocciola2015-07-06 23:25:34 +0200
commitba3e87a34790f9b97fbfd5abbcd28dcc7e68fc45 (patch)
tree4ecbbf45132959b9faee3b4c8262144c98b9aea8
parent6c4ead2bfd825e9d21a6d6ae7517a4d00b1a77ad (diff)
downloadaur-ba3e87a34790f9b97fbfd5abbcd28dcc7e68fc45.tar.gz
Update to versione 4.3.1
-rw-r--r--.SRCINFO16
-rw-r--r--PKGBUILD20
-rw-r--r--patch-gcc49.diff122
-rwxr-xr-xpatch-salome.diff1373
4 files changed, 139 insertions, 1392 deletions
diff --git a/.SRCINFO b/.SRCINFO
index fc228b5a3846..f771c7f91c65 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = paraview-salome
- pkgdesc = Parallel Visualization Application using VTK - This version is built to be linked against salome-paravis
- pkgver = 4.2.0
+ pkgdesc = Parallel Visualization Application using VTK - This version is built to be linked against salome modules
+ pkgver = 4.3.1
pkgrel = 1
url = http://www.paraview.org
arch = i686
@@ -27,18 +27,18 @@ pkgbase = paraview-salome
depends = protobuf
optdepends = python2-matplotlib: Needed to support equation rendering using MathText markup language
optdepends = python2-numpy: Needed for using some filters such as "Python Calculator"
- provides = paraview=4.2.0
+ provides = paraview=4.3.1
options = staticlibs
- source = http://paraview.org/files/v4.2/ParaView-v4.2.0-source.tar.gz
+ source = http://paraview.org/files/v4.3/ParaView-v4.3.1-source.tar.gz
source = paraview-salome.png
source = paraview-salome.desktop
source = patch-uint.diff
- source = patch-salome.diff
- md5sums = 77cf0e3804eb7bb91d2d94b10bd470f4
+ source = patch-gcc49.diff
+ md5sums = d03d3ab504037edd21306413dff64293
md5sums = db623002bc71a257ddfdd0c9c7b14c3f
md5sums = e3ba22be644f91da7018f429c3b7dd39
- md5sums = fbe1655d27b78fcb03d756be0810e4e9
- md5sums = 3e4c48633eb337c42653f51e6112f347
+ md5sums = e034fc590bd332175dcd6bf126f14d97
+ md5sums = 12fa547d0c79ea6a780279712574a5fe
pkgname = paraview-salome
diff --git a/PKGBUILD b/PKGBUILD
index 0ce3c793329a..c4f694b91b68 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -5,7 +5,7 @@
# Contributor: Simon Zilliken <simon____AT____zilliken____DOT____name>
pkgname=paraview-salome
-pkgver=4.2.0
+pkgver=4.3.1
pkgrel=1
pkgdesc='Parallel Visualization Application using VTK - This version is built to be linked against salome modules'
arch=('i686' 'x86_64')
@@ -14,24 +14,22 @@ license=('custom')
depends=('qtwebkit' 'openmpi' 'python2' 'ffmpeg-compat' 'boost' 'libcgns-paraview' 'expat' 'freetype2' 'hdf5' 'libjpeg' 'libxml2' 'libtheora' 'libpng' 'libtiff' 'zlib' 'protobuf')
makedepends=('cmake' 'mesa' 'eigen3')
optdepends=('python2-matplotlib: Needed to support equation rendering using MathText markup language' 'python2-numpy: Needed for using some filters such as "Python Calculator"')
-source=("http://paraview.org/files/v${pkgver:0:3}/ParaView-v${pkgver}-source.tar.gz" "${pkgname}.png" "${pkgname}.desktop" "patch-uint.diff" "patch-salome.diff")
-
-# "patch-mpi4py.diff" "patch-local-tiff.diff" "patch-no-local-glext.h.diff" "patch-rescale-over-time.diff" "freetype-uint.diff")
+source=("http://paraview.org/files/v${pkgver:0:3}/ParaView-v${pkgver}-source.tar.gz" "${pkgname}.png" "${pkgname}.desktop" "patch-uint.diff" "patch-gcc49.diff")
options=(staticlibs)
provides=("paraview=${pkgver}")
-# _installdir=/opt/paraview42
+# _installdir=/opt/paraview43
_installdir=/usr
prepare(){
cd "${srcdir}/ParaView-v${pkgver}-source"
# patch to solve uint conversion to int
+ patch -Np1 -i "${srcdir}/patch-gcc49.diff"
+
+ # patch to solve uint conversion to int
patch -Np1 -i "${srcdir}/patch-uint.diff"
-
- # patch taken from salome distro
- patch -Np1 -i "${srcdir}/patch-salome.diff"
}
build() {
@@ -132,8 +130,8 @@ package() {
done
sed -e "s|${srcdir}/ParaView-v${pkgver}/CMake|${_installdir}/lib/CMake|" -i ParaViewConfig.cmake
}
-md5sums=('77cf0e3804eb7bb91d2d94b10bd470f4'
+md5sums=('d03d3ab504037edd21306413dff64293'
'db623002bc71a257ddfdd0c9c7b14c3f'
'e3ba22be644f91da7018f429c3b7dd39'
- 'fbe1655d27b78fcb03d756be0810e4e9'
- '3e4c48633eb337c42653f51e6112f347')
+ 'e034fc590bd332175dcd6bf126f14d97'
+ '12fa547d0c79ea6a780279712574a5fe')
diff --git a/patch-gcc49.diff b/patch-gcc49.diff
new file mode 100644
index 000000000000..2ed74f0282c9
--- /dev/null
+++ b/patch-gcc49.diff
@@ -0,0 +1,122 @@
+--- a/VTK/Filters/ParallelMPI/vtkDistributedDataFilter.cxx 2014-09-23 16:47:10.000000000 +0200
++++ b/VTK/Filters/ParallelMPI/vtkDistributedDataFilter.cxx 2014-12-22 10:31:13.575228267 +0100
+@@ -1091,7 +1091,10 @@
+ vtkIdType cellsPerNode = numTotalCells / nprocs;
+
+ vtkIdList **sendCells = new vtkIdList * [ nprocs ];
+- memset(sendCells, 0, sizeof(vtkIdList *) * nprocs);
++
++ if (sizeof(vtkIdList *) * nprocs > 0) {
++ memset(sendCells, 0, sizeof(vtkIdList *) * nprocs);
++ }
+
+ if (numConsumers == nprocs - 1)
+ {
+@@ -1582,7 +1585,9 @@
+ // Exchange int arrays
+
+ float **recvArrays = new float * [nprocs];
+- memset(recvArrays, 0, sizeof(float *) * nprocs);
++ if (sizeof(float *) * nprocs > 0) {
++ memset(recvArrays, 0, sizeof(float *) * nprocs);
++ }
+
+ if (sendSize[me] > 0) // sent myself an array
+ {
+@@ -1703,7 +1708,9 @@
+ // Exchange int arrays
+
+ vtkIdType **recvArrays = new vtkIdType * [nprocs];
+- memset(recvArrays, 0, sizeof(vtkIdType *) * nprocs);
++ if (sizeof(vtkIdType *) * nprocs > 0) {
++ memset(recvArrays, 0, sizeof(vtkIdType *) * nprocs);
++ }
+
+ if (sendSize[me] > 0) // sent myself an array
+ {
+@@ -2807,7 +2814,9 @@
+
+ unsigned char *vals = new unsigned char [npoints];
+
+- memset(vals, val, npoints);
++ if (npoints > 0) {
++ memset(vals, val, npoints);
++ }
+
+ vtkUnsignedCharArray *Array = vtkUnsignedCharArray::New();
+ Array->SetName(arrayName);
+@@ -2827,7 +2836,9 @@
+
+ unsigned char *vals = new unsigned char [ncells];
+
+- memset(vals, val, ncells);
++ if (ncells > 0) {
++ memset(vals, val, ncells);
++ }
+
+ vtkUnsignedCharArray *Array = vtkUnsignedCharArray::New();
+ Array->SetName(arrayName);
+@@ -3026,7 +3037,9 @@
+ vtkIdType nGridPoints = grid->GetNumberOfPoints();
+
+ vtkIdType *numPointsOutside = new vtkIdType [nprocs];
+- memset(numPointsOutside, 0, sizeof(vtkIdType) * nprocs);
++ if (sizeof(vtkIdType) * nprocs > 0) {
++ memset(numPointsOutside, 0, sizeof(vtkIdType) * nprocs);
++ }
+
+ vtkIdTypeArray *globalIds = vtkIdTypeArray::New();
+ globalIds->SetNumberOfValues(nGridPoints);
+@@ -3108,10 +3121,16 @@
+ // global ID back?
+
+ vtkFloatArray **ptarrayOut = new vtkFloatArray * [nprocs];
+- memset(ptarrayOut, 0, sizeof(vtkFloatArray *) * nprocs);
++
++ if (sizeof(vtkFloatArray *) * nprocs > 0) {
++ memset(ptarrayOut, 0, sizeof(vtkFloatArray *) * nprocs);
++ }
+
+ vtkIdTypeArray **localIds = new vtkIdTypeArray * [nprocs];
+- memset(localIds, 0, sizeof(vtkIdTypeArray *) * nprocs);
++
++ if (sizeof(vtkIdTypeArray *) * nprocs > 0) {
++ memset(localIds, 0, sizeof(vtkIdTypeArray *) * nprocs);
++ }
+
+ vtkIdType *next = new vtkIdType [nprocs];
+ vtkIdType *next3 = new vtkIdType [nprocs];
+@@ -3286,7 +3305,9 @@
+ {
+ // There are no cells in my assigned region
+
+- memset(gids, 0, sizeof(vtkIdTypeArray *) * nprocs);
++ if (sizeof(vtkIdTypeArray *) * nprocs > 0) {
++ memset(gids, 0, sizeof(vtkIdTypeArray *) * nprocs);
++ }
+
+ return gids;
+ }
+@@ -3491,7 +3512,10 @@
+ std::multimap<int, int>::iterator mapIt;
+
+ vtkIdTypeArray **processList = new vtkIdTypeArray * [nprocs];
+- memset(processList, 0, sizeof (vtkIdTypeArray *) * nprocs);
++
++ if (sizeof (vtkIdTypeArray *) * nprocs > 0) {
++ memset(processList, 0, sizeof (vtkIdTypeArray *) * nprocs);
++ }
+
+ for (int i=0; i<nprocs; i++)
+ {
+@@ -3581,7 +3605,9 @@
+ vtkIdType numPoints = grid->GetNumberOfPoints();
+
+ vtkIdTypeArray **ghostPtIds = new vtkIdTypeArray * [nprocs];
+- memset(ghostPtIds, 0, sizeof(vtkIdTypeArray *) * nprocs);
++ if (sizeof(vtkIdTypeArray *) * nprocs) {
++ memset(ghostPtIds, 0, sizeof(vtkIdTypeArray *) * nprocs);
++ }
+
+ if (numPoints < 1)
+ {
diff --git a/patch-salome.diff b/patch-salome.diff
deleted file mode 100755
index 843a06844e0b..000000000000
--- a/patch-salome.diff
+++ /dev/null
@@ -1,1373 +0,0 @@
-diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/CMakeLists.txt ParaView-4.2.0_SRC.new/CMakeLists.txt
---- ParaView-4.2.0_SRC/CMakeLists.txt 2014-09-23 18:46:43.000000000 +0400
-+++ ParaView-4.2.0_SRC.new/CMakeLists.txt 2014-12-19 15:39:41.000000000 +0300
-@@ -543,8 +543,8 @@
-
- #----------------------------------------------------------------------------------
- # Set some flags that affect VTK's modules.
-- set (VTK_NO_PYTHON_THREADS 1 CACHE INTERNAL
-- "Disable Python Threads support" FORCE)
-+ set (VTK_NO_PYTHON_THREADS ON CACHE BOOL
-+ "Disable Python Threads support")
- set(VTK_WRAP_PYTHON ${PARAVIEW_ENABLE_PYTHON}
- CACHE INTERNAL "Should VTK Python wrapping be built?" FORCE)
-
-diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/ParaViewCore/ClientServerCore/Core/vtkPVPythonInformation.cxx ParaView-4.2.0_SRC.new/ParaViewCore/ClientServerCore/Core/vtkPVPythonInformation.cxx
---- ParaView-4.2.0_SRC/ParaViewCore/ClientServerCore/Core/vtkPVPythonInformation.cxx 2014-09-23 18:46:44.000000000 +0400
-+++ ParaView-4.2.0_SRC.new/ParaViewCore/ClientServerCore/Core/vtkPVPythonInformation.cxx 2014-12-19 15:39:41.000000000 +0300
-@@ -100,7 +100,9 @@
- namespace {
- bool hasModule(const char *module)
- {
-+ VTK_PY_GIL_ENSURE
- vtkSmartPyObject mod(PyImport_ImportModule(module));
-+ VTK_PY_GIL_RELEASE
- bool result = mod;
- return result;
- }
-@@ -108,11 +110,13 @@
- // Returns empty string on error.
- std::string getModuleAttrAsString(const char *module, const char *attribute)
- {
-+ VTK_PY_GIL_ENSURE
- vtkSmartPyObject mod(PyImport_ImportModule(module));
- if (!mod)
- {
- std::ostringstream result;
- result << "(module '" << module << "' not found)";
-+ VTK_PY_GIL_RELEASE
- return result.str();
- }
-
-@@ -122,11 +126,13 @@
- std::ostringstream result;
- result << "('" << module << "' module found, missing '" << attribute
- << "' attribute)";
-+ VTK_PY_GIL_RELEASE
- return result.str();
- }
-
- std::string result = PyBytes_AsString(attr);
-
-+ VTK_PY_GIL_RELEASE
- return result;
- }
-
-diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/ParaViewCore/ClientServerCore/Core/vtkSession.cxx ParaView-4.2.0_SRC.new/ParaViewCore/ClientServerCore/Core/vtkSession.cxx
---- ParaView-4.2.0_SRC/ParaViewCore/ClientServerCore/Core/vtkSession.cxx 2014-09-23 18:46:44.000000000 +0400
-+++ ParaView-4.2.0_SRC.new/ParaViewCore/ClientServerCore/Core/vtkSession.cxx 2014-12-19 15:39:41.000000000 +0300
-@@ -30,13 +30,15 @@
- //----------------------------------------------------------------------------
- void vtkSession::Activate()
- {
-- vtkProcessModule::GetProcessModule()->PushActiveSession(this);
-+ if(vtkProcessModule::GetProcessModule())
-+ vtkProcessModule::GetProcessModule()->PushActiveSession(this);
- }
-
- //----------------------------------------------------------------------------
- void vtkSession::DeActivate()
- {
-- vtkProcessModule::GetProcessModule()->PopActiveSession(this);
-+ if(vtkProcessModule::GetProcessModule())
-+ vtkProcessModule::GetProcessModule()->PopActiveSession(this);
- }
-
- //----------------------------------------------------------------------------
-diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/ParaViewCore/ClientServerCore/Rendering/vtkGeometryRepresentation.cxx ParaView-4.2.0_SRC.new/ParaViewCore/ClientServerCore/Rendering/vtkGeometryRepresentation.cxx
---- ParaView-4.2.0_SRC/ParaViewCore/ClientServerCore/Rendering/vtkGeometryRepresentation.cxx 2014-09-23 18:46:44.000000000 +0400
-+++ ParaView-4.2.0_SRC.new/ParaViewCore/ClientServerCore/Rendering/vtkGeometryRepresentation.cxx 2014-12-19 15:39:41.000000000 +0300
-@@ -172,6 +172,7 @@
- if (geomFilter)
- {
- geomFilter->SetUseOutline(0);
-+ geomFilter->SetTriangulate(0);
- geomFilter->SetNonlinearSubdivisionLevel(1);
- geomFilter->SetPassThroughCellIds(1);
- geomFilter->SetPassThroughPointIds(1);
-@@ -236,7 +237,7 @@
- vtkPVRenderView::MarkAsRedistributable(inInfo, this);
-
- // Tell the view if this representation needs ordered compositing. We need
-- // ordered compositing when rendering translucent geometry.
-+ // ordered compositing when rendering translucent geometry.
- if (this->Actor->HasTranslucentPolygonalGeometry())
- {
- // We need to extend this condition to consider translucent LUTs once we
-@@ -270,7 +271,7 @@
- this->LODOutlineFilter->Update();
- // Pass along the LOD geometry to the view so that it can deliver it to
- // the rendering node as and when needed.
-- vtkPVRenderView::SetPieceLOD(inInfo, this,
-+ vtkPVRenderView::SetPieceLOD(inInfo, this,
- this->LODOutlineFilter->GetOutputDataObject(0));
- }
- else
-@@ -290,7 +291,7 @@
-
- // Pass along the LOD geometry to the view so that it can deliver it to
- // the rendering node as and when needed.
-- vtkPVRenderView::SetPieceLOD(inInfo, this,
-+ vtkPVRenderView::SetPieceLOD(inInfo, this,
- this->Decimator->GetOutputDataObject(0));
- }
- }
-@@ -780,6 +781,19 @@
- }
-
- //----------------------------------------------------------------------------
-+void vtkGeometryRepresentation::SetTriangulate(int val)
-+{
-+ if (vtkPVGeometryFilter::SafeDownCast(this->GeometryFilter))
-+ {
-+ vtkPVGeometryFilter::SafeDownCast(this->GeometryFilter)->SetTriangulate(val);
-+ }
-+
-+ // since geometry filter needs to execute, we need to mark the representation
-+ // modified.
-+ this->MarkModified();
-+}
-+
-+//----------------------------------------------------------------------------
- void vtkGeometryRepresentation::SetNonlinearSubdivisionLevel(int val)
- {
- if (vtkPVGeometryFilter::SafeDownCast(this->GeometryFilter))
-diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/ParaViewCore/ClientServerCore/Rendering/vtkGeometryRepresentation.h ParaView-4.2.0_SRC.new/ParaViewCore/ClientServerCore/Rendering/vtkGeometryRepresentation.h
---- ParaView-4.2.0_SRC/ParaViewCore/ClientServerCore/Rendering/vtkGeometryRepresentation.h 2014-09-23 18:46:44.000000000 +0400
-+++ ParaView-4.2.0_SRC.new/ParaViewCore/ClientServerCore/Rendering/vtkGeometryRepresentation.h 2014-12-19 15:39:41.000000000 +0300
-@@ -19,7 +19,7 @@
- // It handles non-polygonal datasets by extracting external surfaces. One can
- // use this representation to show surface/wireframe/points/surface-with-edges.
- // .SECTION Thanks
--// The addition of a transformation matrix was supported by CEA/DIF
-+// The addition of a transformation matrix was supported by CEA/DIF
- // Commissariat a l'Energie Atomique, Centre DAM Ile-De-France, Arpajon, France.
-
- #ifndef __vtkGeometryRepresentation_h
-@@ -109,7 +109,7 @@
- // Description:
- // Returns true if this class would like to get ghost-cells if available for
- // the connection whose information object is passed as the argument.
-- static bool DoRequestGhostCells(vtkInformation* information);
-+ static bool DoRequestGhostCells(vtkInformation* information);
-
- // Description:
- // Representations that use geometry representation as the internal
-@@ -122,6 +122,7 @@
- //***************************************************************************
- // Forwarded to vtkPVGeometryFilter
- virtual void SetUseOutline(int);
-+ void SetTriangulate(int);
- void SetNonlinearSubdivisionLevel(int);
-
- //***************************************************************************
-@@ -145,7 +146,7 @@
- virtual void SetPosition(double, double, double);
- virtual void SetScale(double, double, double);
- virtual void SetTexture(vtkTexture*);
-- virtual void SetUserTransform(const double[16]);
-+ virtual void SetUserTransform(const double[16]);
-
- //***************************************************************************
- // Forwarded to Mapper and LODMapper.
-diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/ParaViewCore/ServerManager/Core/vtkSMTrace.cxx ParaView-4.2.0_SRC.new/ParaViewCore/ServerManager/Core/vtkSMTrace.cxx
---- ParaView-4.2.0_SRC/ParaViewCore/ServerManager/Core/vtkSMTrace.cxx 2014-09-23 18:46:44.000000000 +0400
-+++ ParaView-4.2.0_SRC.new/ParaViewCore/ServerManager/Core/vtkSMTrace.cxx 2014-12-19 15:39:41.000000000 +0300
-@@ -69,6 +69,7 @@
- #ifdef PARAVIEW_ENABLE_PYTHON
- // ensure Python interpreter is initialized.
- vtkPythonInterpreter::Initialize();
-+ VTK_PY_GIL_ENSURE
- this->Internals->TraceModule.TakeReference(PyImport_ImportModule("paraview.smtrace"));
- if (!this->Internals->TraceModule)
- {
-@@ -92,6 +93,7 @@
- this->Internals->CreateItemFunction.TakeReference(NULL);
- }
- }
-+ VTK_PY_GIL_RELEASE
- #endif
- }
-
-@@ -115,12 +117,15 @@
-
- #ifdef PARAVIEW_ENABLE_PYTHON
- vtkPythonInterpreter::Initialize();
-+ VTK_PY_GIL_ENSURE
- try
- {
-+
- vtkSmartPyObject module(PyImport_ImportModule("paraview.smstate"));
- if (!module || PyErr_Occurred())
- {
- vtkGenericWarningMacro("Failed to import paraview.smstate module.");
-+ VTK_PY_GIL_RELEASE
- throw 1;
- }
-
-@@ -132,9 +137,12 @@
- if (!result || PyErr_Occurred())
- {
- vtkGenericWarningMacro("Failed to generate state.");
-+ VTK_PY_GIL_RELEASE
- throw 1;
- }
-- return vtkStdString(PyString_AsString(result));
-+ vtkStdString s(PyString_AsString(result));
-+ VTK_PY_GIL_RELEASE
-+ return s;
- }
- catch (int)
- {
-@@ -144,6 +152,7 @@
- PyErr_Clear();
- }
- }
-+ VTK_PY_GIL_RELEASE
- #endif
- (void)propertiesToTraceOnCreate;
- (void)skipHiddenRepresentations;
-@@ -164,9 +173,11 @@
- }
- else
- {
-+ VTK_PY_GIL_ENSURE
- vtkSmartPyObject _start_trace_internal(
- PyObject_CallMethod(vtkSMTrace::ActiveTracer->GetTraceModule(),
- const_cast<char*>("_start_trace_internal"), NULL));
-+ VTK_PY_GIL_RELEASE
- vtkSMTrace::ActiveTracer->CheckForError();
- }
- #endif
-@@ -192,6 +203,7 @@
- vtkSMTrace::ActiveTracer = NULL;
-
- #ifdef PARAVIEW_ENABLE_PYTHON
-+ VTK_PY_GIL_ENSURE
- vtkSmartPyObject _stop_trace_internal(
- PyObject_CallMethod(active->GetTraceModule(), const_cast<char*>("_stop_trace_internal"), NULL));
- if (active->CheckForError() == false)
-@@ -199,14 +211,18 @@
- // no error.
- if (Py_None != _stop_trace_internal.GetPointer() && _stop_trace_internal.GetPointer() != NULL)
- {
-- return vtkStdString(PyString_AsString(_stop_trace_internal));
-+ vtkStdString s(PyString_AsString(_stop_trace_internal));
-+ VTK_PY_GIL_RELEASE
-+ return s;
- }
- else
- {
- vtkGenericWarningMacro("Empty trace returned!!!");
-+ VTK_PY_GIL_RELEASE
- return vtkStdString();
- }
- }
-+ VTK_PY_GIL_RELEASE
- #endif
- return vtkStdString();
- }
-@@ -223,13 +239,17 @@
-
- #ifdef PARAVIEW_ENABLE_PYTHON
- vtkSMTrace* active = vtkSMTrace::ActiveTracer;
-+ VTK_PY_GIL_ENSURE
- vtkSmartPyObject get_current_trace_output(
- PyObject_CallMethod(active->GetTraceModule(), const_cast<char*>("get_current_trace_output"), NULL));
- if (active->CheckForError() == false && get_current_trace_output)
- {
- // no error.
-- return vtkStdString(PyString_AsString(get_current_trace_output));
-+ vtkStdString s(PyString_AsString(get_current_trace_output));
-+ VTK_PY_GIL_RELEASE
-+ return s;
- }
-+ VTK_PY_GIL_RELEASE
- #endif
- return vtkStdString();
- }
-@@ -256,6 +276,7 @@
- bool vtkSMTrace::CheckForError()
- {
- #ifdef PARAVIEW_ENABLE_PYTHON
-+ VTK_PY_GIL_ENSURE
- PyObject *exception = PyErr_Occurred();
- if (exception)
- {
-@@ -264,12 +285,15 @@
- // catch Untraceable exceptions. We can log them when debugging is
- // enabled.
- PyErr_Clear();
-+ VTK_PY_GIL_RELEASE
- return false;
- }
- PyErr_Print();
- PyErr_Clear();
-+ VTK_PY_GIL_RELEASE
- return true;
- }
-+ VTK_PY_GIL_RELEASE
- #endif
- return false;
- }
-@@ -336,6 +360,7 @@
- if (vtkSMTrace::GetActiveTracer())
- {
- #ifdef PARAVIEW_ENABLE_PYTHON
-+ VTK_PY_GIL_ENSURE
- vtkSmartPyObject keyObj(PyString_FromString(key));
- vtkSmartPyObject valObj(vtkPythonUtil::GetObjectFromPointer(val));
- assert(valObj && keyObj);
-@@ -343,6 +368,7 @@
- int ret = PyDict_SetItem(this->Internals->GetKWArgs(), keyObj, valObj);
- (void)ret;
- assert(ret == 0);
-+ VTK_PY_GIL_RELEASE
- #endif
- }
- (void)key;
-@@ -358,6 +384,7 @@
- if (vtkSMTrace::GetActiveTracer())
- {
- #ifdef PARAVIEW_ENABLE_PYTHON
-+ VTK_PY_GIL_ENSURE
- vtkSmartPyObject keyObj(PyString_FromString(key));
- vtkSmartPyObject valObj;
- if (val == NULL)
-@@ -374,6 +401,7 @@
- int ret = PyDict_SetItem(this->Internals->GetKWArgs(), keyObj, valObj);
- (void)ret;
- assert(ret == 0);
-+ VTK_PY_GIL_RELEASE
- #endif
- }
- (void)key;
-@@ -389,6 +417,7 @@
- if (vtkSMTrace::GetActiveTracer())
- {
- #ifdef PARAVIEW_ENABLE_PYTHON
-+ VTK_PY_GIL_ENSURE
- vtkSmartPyObject keyObj(PyString_FromString(key));
- vtkSmartPyObject valObj(PyInt_FromLong(val));
- assert(keyObj && valObj);
-@@ -396,6 +425,7 @@
- int ret = PyDict_SetItem(this->Internals->GetKWArgs(), keyObj, valObj);
- (void)ret;
- assert(ret == 0);
-+ VTK_PY_GIL_RELEASE
- #endif
- }
- (void)key;
-@@ -411,6 +441,7 @@
- if (vtkSMTrace::GetActiveTracer())
- {
- #ifdef PARAVIEW_ENABLE_PYTHON
-+ VTK_PY_GIL_ENSURE
- vtkSmartPyObject keyObj(PyString_FromString(key));
- vtkSmartPyObject valObj(PyFloat_FromDouble(val));
- assert(keyObj && valObj);
-@@ -418,6 +449,7 @@
- int ret = PyDict_SetItem(this->Internals->GetKWArgs(), keyObj, valObj);
- (void)ret;
- assert(ret == 0);
-+ VTK_PY_GIL_RELEASE
- #endif
- }
- (void)key;
-@@ -432,6 +464,7 @@
- if (vtkSMTrace::GetActiveTracer())
- {
- #ifdef PARAVIEW_ENABLE_PYTHON
-+ VTK_PY_GIL_ENSURE
- vtkSmartPyObject keyObj(PyString_FromString(key));
- vtkSmartPyObject valObj(PyBool_FromLong(val? 1 : 0));
- assert(keyObj && valObj);
-@@ -439,6 +472,7 @@
- int ret = PyDict_SetItem(this->Internals->GetKWArgs(), keyObj, valObj);
- (void)ret;
- assert(ret == 0);
-+ VTK_PY_GIL_RELEASE
- #endif
- }
- (void)key;
-@@ -452,11 +486,13 @@
- if (vtkSMTrace::GetActiveTracer())
- {
- #ifdef PARAVIEW_ENABLE_PYTHON
-+ VTK_PY_GIL_ENSURE
- vtkSmartPyObject valObj(vtkPythonUtil::GetObjectFromPointer(val));
- assert(valObj);
- int ret = PyList_Append(this->Internals->GetPositionalArgs(), valObj);
- (void)ret;
- assert(ret == 0);
-+ VTK_PY_GIL_RELEASE
- #endif
- }
- (void)val;
-@@ -470,11 +506,13 @@
- if (vtkSMTrace::GetActiveTracer())
- {
- #ifdef PARAVIEW_ENABLE_PYTHON
-+ VTK_PY_GIL_ENSURE
- vtkSmartPyObject valObj(PyString_FromString(val));
- assert(valObj);
- int ret = PyList_Append(this->Internals->GetPositionalArgs(), valObj);
- (void)ret;
- assert(ret == 0);
-+ VTK_PY_GIL_RELEASE
- #endif
- }
- (void)val;
-@@ -487,11 +525,13 @@
- if (vtkSMTrace::GetActiveTracer())
- {
- #ifdef PARAVIEW_ENABLE_PYTHON
-+ VTK_PY_GIL_ENSURE
- vtkSmartPyObject valObj(PyInt_FromLong(val));
- assert(valObj);
- int ret = PyList_Append(this->Internals->GetPositionalArgs(), valObj);
- (void)ret;
- assert(ret == 0);
-+ VTK_PY_GIL_RELEASE
- #endif
- }
- (void)val;
-@@ -504,11 +544,13 @@
- if (vtkSMTrace::GetActiveTracer())
- {
- #ifdef PARAVIEW_ENABLE_PYTHON
-+ VTK_PY_GIL_ENSURE
- vtkSmartPyObject valObj(PyFloat_FromDouble(val));
- assert(valObj);
- int ret = PyList_Append(this->Internals->GetPositionalArgs(), valObj);
- (void)ret;
- assert(ret == 0);
-+ VTK_PY_GIL_RELEASE
- #endif
- }
- (void)val;
-@@ -521,11 +563,13 @@
- if (vtkSMTrace::GetActiveTracer())
- {
- #ifdef PARAVIEW_ENABLE_PYTHON
-+ VTK_PY_GIL_ENSURE
- vtkSmartPyObject valObj(PyBool_FromLong(val? 1 : 0));
- assert(valObj);
- int ret = PyList_Append(this->Internals->GetPositionalArgs(), valObj);
- (void)ret;
- assert(ret == 0);
-+ VTK_PY_GIL_RELEASE
- #endif
- }
- (void)val;
-@@ -557,9 +601,11 @@
- vtkSMTrace* tracer = vtkSMTrace::GetActiveTracer();
- if (tracer && this->Internals->PyItem)
- {
-+ VTK_PY_GIL_ENSURE
- vtkSmartPyObject reply(
- PyObject_CallMethod(this->Internals->PyItem,
- const_cast<char*>("finalize"), NULL));
-+ VTK_PY_GIL_RELEASE
- tracer->CheckForError();
- tracer->InvokeEvent(vtkCommand::UpdateEvent);
- }
-@@ -583,6 +629,7 @@
- if (vtkSMTrace* tracer = vtkSMTrace::GetActiveTracer())
- {
- #ifdef PARAVIEW_ENABLE_PYTHON
-+ VTK_PY_GIL_ENSURE
- assert(tracer->GetTraceModule());
- assert(tracer->GetCreateItemFunction());
-
-@@ -613,6 +660,7 @@
- this->Internals->PyItem.TakeReference(
- PyObject_Call(tracer->GetCreateItemFunction(), args, NULL));
- tracer->CheckForError();
-+ VTK_PY_GIL_RELEASE
- #endif
- }
- (void)arguments;
-diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/ParaViewCore/ServerManager/Rendering/vtkSMPVRepresentationProxy.cxx ParaView-4.2.0_SRC.new/ParaViewCore/ServerManager/Rendering/vtkSMPVRepresentationProxy.cxx
---- ParaView-4.2.0_SRC/ParaViewCore/ServerManager/Rendering/vtkSMPVRepresentationProxy.cxx 2014-09-23 18:46:44.000000000 +0400
-+++ ParaView-4.2.0_SRC.new/ParaViewCore/ServerManager/Rendering/vtkSMPVRepresentationProxy.cxx 2014-12-19 15:39:41.000000000 +0300
-@@ -276,7 +276,7 @@
- {
- if (!info)
- {
-- vtkWarningMacro("Could not determine array range.");
-+ // vtkWarningMacro("Could not determine array range.");
- return false;
- }
-
-diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/ParaViewCore/ServerManager/SMApplication/Resources/views_and_representations.xml ParaView-4.2.0_SRC.new/ParaViewCore/ServerManager/SMApplication/Resources/views_and_representations.xml
---- ParaView-4.2.0_SRC/ParaViewCore/ServerManager/SMApplication/Resources/views_and_representations.xml 2014-09-23 18:46:44.000000000 +0400
-+++ ParaView-4.2.0_SRC.new/ParaViewCore/ServerManager/SMApplication/Resources/views_and_representations.xml 2014-12-19 15:39:41.000000000 +0300
-@@ -2044,16 +2044,14 @@
- <IntVectorProperty command="SetStereoRender"
- default_values="0"
- name="StereoRender"
-- number_of_elements="1"
-- is_internal="1">
-+ number_of_elements="1">
- <BooleanDomain name="bool" />
- </IntVectorProperty>
- <IntVectorProperty command="SetStereoType"
- default_values="3"
- name="StereoType"
- panel_visibility="never"
-- number_of_elements="1"
-- is_internal="1">
-+ number_of_elements="1">
- <EnumerationDomain name="enum">
- <Entry text="Crystal Eyes"
- value="1" />
-@@ -3139,6 +3137,8 @@
- panel_visibility="advanced" />
- <Property name="UserTransform"
- panel_visibility="never" />
-+ <Property name="Triangulate"
-+ panel_visibility="advanced" />
- <Property name="NonlinearSubdivisionLevel"
- panel_visibility="advanced" />
- <Property name="BlockVisibility"
-@@ -8229,6 +8229,15 @@
- <!--<Entry value="2" text="Phong" />-->
- </EnumerationDomain>
- </IntVectorProperty>
-+ <IntVectorProperty command="SetTriangulate"
-+ default_values="0"
-+ name="Triangulate"
-+ number_of_elements="1">
-+ <BooleanDomain name="bool" />
-+ <Documentation>Triangulate the geometry internally to avoid rendering
-+ issues of non-convex polygons. This feature has a processing and memory
-+ cost, it should be enabled only when needed.</Documentation>
-+ </IntVectorProperty>
- <IntVectorProperty command="SetNonlinearSubdivisionLevel"
- default_values="1"
- name="NonlinearSubdivisionLevel"
-diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/ParaViewCore/VTKExtensions/Default/vtkPVImageReader.h ParaView-4.2.0_SRC.new/ParaViewCore/VTKExtensions/Default/vtkPVImageReader.h
---- ParaView-4.2.0_SRC/ParaViewCore/VTKExtensions/Default/vtkPVImageReader.h 2014-09-23 18:46:44.000000000 +0400
-+++ ParaView-4.2.0_SRC.new/ParaViewCore/VTKExtensions/Default/vtkPVImageReader.h 2014-12-19 15:39:41.000000000 +0300
-@@ -19,27 +19,15 @@
-
- #include "vtkPVVTKExtensionsDefaultModule.h" //needed for exports
-
--#ifdef PARAVIEW_USE_MPI
--#include "vtkMPIImageReader.h"
--#else
- #include "vtkImageReader.h"
--#endif
-
--class VTKPVVTKEXTENSIONSDEFAULT_EXPORT vtkPVImageReader : public
--#ifdef PARAVIEW_USE_MPI
--vtkMPIImageReader
--#else
--vtkImageReader
--#endif
-+class VTKPVVTKEXTENSIONSDEFAULT_EXPORT vtkPVImageReader : public vtkImageReader
- {
- public:
- static vtkPVImageReader* New();
-
--#ifdef PARAVIEW_USE_MPI
-- vtkTypeMacro(vtkPVImageReader, vtkMPIImageReader);
--#else
-+
- vtkTypeMacro(vtkPVImageReader, vtkImageReader);
--#endif
-
- void PrintSelf(ostream& os, vtkIndent indent);
-
-diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/ParaViewCore/VTKExtensions/Rendering/vtkPVGeometryFilter.cxx ParaView-4.2.0_SRC.new/ParaViewCore/VTKExtensions/Rendering/vtkPVGeometryFilter.cxx
---- ParaView-4.2.0_SRC/ParaViewCore/VTKExtensions/Rendering/vtkPVGeometryFilter.cxx 2014-09-23 18:46:44.000000000 +0400
-+++ ParaView-4.2.0_SRC.new/ParaViewCore/VTKExtensions/Rendering/vtkPVGeometryFilter.cxx 2014-12-19 15:39:41.000000000 +0300
-@@ -64,6 +64,7 @@
- #include "vtkStructuredGrid.h"
- #include "vtkStructuredGridOutlineFilter.h"
- #include "vtkTimerLog.h"
-+#include "vtkTriangleFilter.h"
- #include "vtkUniformGrid.h"
- #include "vtkUnsignedCharArray.h"
- #include "vtkUnsignedIntArray.h"
-@@ -78,8 +79,6 @@
- #include <set>
- #include <algorithm>
-
--#define VTK_CREATE(type, name) \
-- vtkSmartPointer<type> name = vtkSmartPointer<type>::New()
-
- vtkStandardNewMacro(vtkPVGeometryFilter);
- vtkCxxSetObjectMacro(vtkPVGeometryFilter, Controller, vtkMultiProcessController);
-@@ -149,6 +148,7 @@
- this->UseOutline = 1;
- this->UseStrips = 0;
- this->GenerateCellNormals = 1;
-+ this->Triangulate = false;
- this->NonlinearSubdivisionLevel = 1;
-
- this->DataSetSurfaceFilter = vtkDataSetSurfaceFilter::New();
-@@ -1348,8 +1348,8 @@
- {
- this->OutlineFlag = 0;
-
-- bool handleSubdivision = false;
-- if (this->NonlinearSubdivisionLevel > 0)
-+ bool handleSubdivision = (this->Triangulate != 0);
-+ if (!handleSubdivision && (this->NonlinearSubdivisionLevel > 0))
- {
- // Check to see if the data actually has nonlinear cells. Handling
- // nonlinear cells adds unnecessary work if we only have linear cells.
-@@ -1445,6 +1445,16 @@
- this->DataSetSurfaceFilter->UnstructuredGridExecute(input, output, updateghostlevel);
- }
-
-+ if (this->Triangulate && (output->GetNumberOfPolys() > 0))
-+ {
-+ // Triangulate the polygonal mesh if requested to avoid rendering
-+ // issues of non-convex polygons.
-+ vtkNew<vtkTriangleFilter> triangleFilter;
-+ triangleFilter->SetInputData(output);
-+ triangleFilter->Update();
-+ output->ShallowCopy(triangleFilter->GetOutput());
-+ }
-+
- if (handleSubdivision)
- {
- // Restore state of DataSetSurfaceFilter.
-@@ -1456,9 +1466,9 @@
-
- // Now use vtkPVRecoverGeometryWireframe to create an edge flag attribute
- // that will cause the wireframe to be rendered correctly.
-- VTK_CREATE(vtkPolyData, nextStageInput);
-+ vtkNew<vtkPolyData> nextStageInput;
- nextStageInput->ShallowCopy(output); // Yes output is correct.
-- this->RecoverWireframeFilter->SetInputData(nextStageInput);
-+ this->RecoverWireframeFilter->SetInputData(nextStageInput.Get());
-
- // Observe the progress of the internal filter.
- // TODO: Make the consecutive internal filter execution have monotonically
-@@ -1489,7 +1499,7 @@
- return;
- }
- vtkIdType numPts = polyPtIds2FacePtIds->GetNumberOfTuples();
-- VTK_CREATE(vtkIdTypeArray, polyPtIds2OriginalPtIds);
-+ vtkNew<vtkIdTypeArray> polyPtIds2OriginalPtIds;
- polyPtIds2OriginalPtIds->SetName("vtkOriginalPointIds");
- polyPtIds2OriginalPtIds->SetNumberOfComponents(1);
- polyPtIds2OriginalPtIds->SetNumberOfTuples(numPts);
-@@ -1503,7 +1513,7 @@
- }
- polyPtIds2OriginalPtIds->SetValue(polyPtId, originalPtId);
- }
-- output->GetPointData()->AddArray(polyPtIds2OriginalPtIds);
-+ output->GetPointData()->AddArray(polyPtIds2OriginalPtIds.Get());
- }
- }
-
-@@ -1518,7 +1528,7 @@
-
- //----------------------------------------------------------------------------
- void vtkPVGeometryFilter::PolyDataExecute(
-- vtkPolyData* input, vtkPolyData* out, int doCommunicate)
-+ vtkPolyData* input, vtkPolyData* output, int doCommunicate)
- {
- if (!this->UseOutline)
- {
-@@ -1533,54 +1543,90 @@
- inCopy->RemoveGhostCells(1);
- stripper->SetInputData(inCopy);
- stripper->Update();
-- out->CopyStructure(stripper->GetOutput());
-- out->GetPointData()->ShallowCopy(stripper->GetOutput()->GetPointData());
-- out->GetCellData()->ShallowCopy(stripper->GetOutput()->GetCellData());
-+ output->CopyStructure(stripper->GetOutput());
-+ output->GetPointData()->ShallowCopy(stripper->GetOutput()->GetPointData());
-+ output->GetCellData()->ShallowCopy(stripper->GetOutput()->GetCellData());
- inCopy->Delete();
- stripper->Delete();
- }
- else
- {
-- out->ShallowCopy(input);
-+ output->ShallowCopy(input);
- if (this->PassThroughCellIds)
- {
-- vtkIdTypeArray *originalCellIds = vtkIdTypeArray::New();
-+ vtkNew<vtkIdTypeArray> originalCellIds;
- originalCellIds->SetName("vtkOriginalCellIds");
- originalCellIds->SetNumberOfComponents(1);
-- vtkCellData *outputCD = out->GetCellData();
-- outputCD->AddArray(originalCellIds);
-- vtkIdType numTup = out->GetNumberOfCells();
-+ vtkNew<vtkIdTypeArray> originalFaceIds;
-+ originalFaceIds->SetName(vtkPVRecoverGeometryWireframe::ORIGINAL_FACE_IDS());
-+ originalFaceIds->SetNumberOfComponents(1);
-+ vtkCellData *outputCD = output->GetCellData();
-+ outputCD->AddArray(originalCellIds.Get());
-+ if (this->Triangulate)
-+ {
-+ outputCD->AddArray(originalFaceIds.Get());
-+ }
-+ vtkIdType numTup = output->GetNumberOfCells();
- originalCellIds->SetNumberOfValues(numTup);
-+ originalFaceIds->SetNumberOfValues(numTup);
- for (vtkIdType cId = 0; cId < numTup; cId++)
- {
- originalCellIds->SetValue(cId, cId);
-+ originalFaceIds->SetValue(cId, cId);
- }
-- originalCellIds->Delete();
-- originalCellIds = NULL;
- }
- if (this->PassThroughPointIds)
- {
-- vtkIdTypeArray *originalPointIds = vtkIdTypeArray::New();
-+ vtkNew<vtkIdTypeArray> originalPointIds;
- originalPointIds->SetName("vtkOriginalPointIds");
- originalPointIds->SetNumberOfComponents(1);
-- vtkPointData *outputPD = out->GetPointData();
-- outputPD->AddArray(originalPointIds);
-- vtkIdType numTup = out->GetNumberOfPoints();
-+ vtkPointData *outputPD = output->GetPointData();
-+ outputPD->AddArray(originalPointIds.Get());
-+ vtkIdType numTup = output->GetNumberOfPoints();
- originalPointIds->SetNumberOfValues(numTup);
- for (vtkIdType pId = 0; pId < numTup; pId++)
- {
- originalPointIds->SetValue(pId, pId);
- }
-- originalPointIds->Delete();
-- originalPointIds = NULL;
- }
-- out->RemoveGhostCells(1);
-+
-+ output->RemoveGhostCells(1);
-+
-+ if (this->Triangulate)
-+ {
-+ // Triangulate the polygonal mesh.
-+ vtkNew<vtkTriangleFilter> triangleFilter;
-+ triangleFilter->SetInputData(output);
-+ triangleFilter->Update();
-+
-+ // Now use vtkPVRecoverGeometryWireframe to create an edge flag attribute
-+ // that will cause the wireframe to be rendered correctly.
-+ this->RecoverWireframeFilter->SetInputData(triangleFilter->GetOutput());
-+
-+ // Observe the progress of the internal filter.
-+ // TODO: Make the consecutive internal filter execution have monotonically
-+ // increasing progress rather than restarting for every internal filter.
-+ this->RecoverWireframeFilter->AddObserver(
-+ vtkCommand::ProgressEvent,
-+ this->InternalProgressObserver);
-+ this->RecoverWireframeFilter->Update();
-+ // The internal filter finished. Remove the observer.
-+ this->RecoverWireframeFilter->RemoveObserver(
-+ this->InternalProgressObserver);
-+
-+ this->RecoverWireframeFilter->SetInputData(NULL);
-+
-+ // Get what should be the final output.
-+ output->ShallowCopy(this->RecoverWireframeFilter->GetOutput());
-+
-+ output->GetCellData()->RemoveArray(vtkPVRecoverGeometryWireframe::ORIGINAL_FACE_IDS());
-+ }
- }
- return;
- }
-
- this->OutlineFlag = 1;
-- this->DataSetExecute(input, out, doCommunicate);
-+ this->DataSetExecute(input, output, doCommunicate);
- }
-
- //----------------------------------------------------------------------------
-diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/ParaViewCore/VTKExtensions/Rendering/vtkPVGeometryFilter.h ParaView-4.2.0_SRC.new/ParaViewCore/VTKExtensions/Rendering/vtkPVGeometryFilter.h
---- ParaView-4.2.0_SRC/ParaViewCore/VTKExtensions/Rendering/vtkPVGeometryFilter.h 2014-09-23 18:46:44.000000000 +0400
-+++ ParaView-4.2.0_SRC.new/ParaViewCore/VTKExtensions/Rendering/vtkPVGeometryFilter.h 2014-12-19 15:39:41.000000000 +0300
-@@ -85,6 +85,13 @@
- vtkBooleanMacro(GenerateCellNormals, int);
-
- // Description:
-+ // Whether to triangulate mesh for rendering. This parameter avoid
-+ // rendering issues of non-convex polygons.
-+ vtkSetMacro(Triangulate, int);
-+ vtkGetMacro(Triangulate, int);
-+ vtkBooleanMacro(Triangulate, int);
-+
-+ // Description:
- // Nonlinear faces are approximated with flat polygons. This parameter
- // controls how many times to subdivide nonlinear surface cells. Higher
- // subdivisions generate closer approximations but take more memory and
-@@ -101,8 +108,7 @@
- // Description:
- // If on, the output polygonal dataset will have a celldata array that
- // holds the cell index of the original 3D cell that produced each output
-- // cell. This is useful for picking. The default is off to conserve
-- // memory.
-+ // cell. This is useful for picking but it takes memory. The default is on.
- void SetPassThroughCellIds(int);
- vtkGetMacro(PassThroughCellIds,int);
- vtkBooleanMacro(PassThroughCellIds,int);
-@@ -110,8 +116,7 @@
- // Description:
- // If on, the output polygonal dataset will have a pointdata array that
- // holds the point index of the original vertex that produced each output
-- // vertex. This is useful for picking. The default is off to conserve
-- // memory.
-+ // vertex. This is useful for picking but it takes memory. The default is on.
- void SetPassThroughPointIds(int);
- vtkGetMacro(PassThroughPointIds,int);
- vtkBooleanMacro(PassThroughPointIds,int);
-@@ -176,7 +181,7 @@
- virtual vtkExecutive* CreateDefaultExecutive();
-
- // Description:
-- // Produce geometry for a block in the dataset.
-+ // Produce geometry for a block in the dataset.
- // This does not handle producing outlines. Call only when this->UseOutline ==
- // 0; \c extractface mask it is used to determine external faces.
- void ExecuteAMRBlock(vtkUniformGrid* input,
-@@ -250,6 +255,7 @@
- int UseOutline;
- int UseStrips;
- int GenerateCellNormals;
-+ int Triangulate;
- int NonlinearSubdivisionLevel;
-
- vtkMultiProcessController* Controller;
-diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/Qt/Components/pqPropertiesPanel.cxx ParaView-4.2.0_SRC.new/Qt/Components/pqPropertiesPanel.cxx
---- ParaView-4.2.0_SRC/Qt/Components/pqPropertiesPanel.cxx 2014-09-23 18:46:44.000000000 +0400
-+++ ParaView-4.2.0_SRC.new/Qt/Components/pqPropertiesPanel.cxx 2014-12-19 15:39:41.000000000 +0300
-@@ -383,6 +383,14 @@
- this->Internals->Ui.DisplayButton->setVisible(has_multiples_types && has_display);
- this->Internals->Ui.ViewButton->setVisible(has_multiples_types && has_view);
-
-+ // added to avoid unwanted save restore buttons
-+ this->Internals->Ui.PropertiesSaveAsDefaults->setVisible(has_source);
-+ this->Internals->Ui.PropertiesRestoreDefaults->setVisible(has_source);
-+ this->Internals->Ui.DisplaySaveAsDefaults->setVisible(has_display);
-+ this->Internals->Ui.DisplayRestoreDefaults->setVisible(has_display);
-+ this->Internals->Ui.ViewSaveAsDefaults->setVisible(has_view);
-+ this->Internals->Ui.ViewRestoreDefaults->setVisible(has_view);
-+
- this->updatePanel();
- }
-
-@@ -593,14 +601,15 @@
- }
-
- //-----------------------------------------------------------------------------
--void pqPropertiesPanel::updateViewPanel (pqView* _view)
-+void pqPropertiesPanel::updateViewPanel (pqView* argView)
- {
-+ pqView* _view = argView;
- if ( (this->PanelMode & pqPropertiesPanel::VIEW_PROPERTIES) == 0)
- {
- _view = NULL;
- }
-
-- if (this->Internals->View != _view)
-+ if (this->Internals->View != argView)
- {
- // The view has changed.
- if (this->Internals->View)
-@@ -611,8 +620,8 @@
- delete this->Internals->ViewWidgets;
- }
- }
-- this->Internals->View = _view;
-- emit this->viewChanged(_view);
-+ this->Internals->View = argView;
-+ emit this->viewChanged(argView);
- if (_view)
- {
- // create the widgets for this view
-diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/Qt/Python/pqPythonShell.cxx ParaView-4.2.0_SRC.new/Qt/Python/pqPythonShell.cxx
---- ParaView-4.2.0_SRC/Qt/Python/pqPythonShell.cxx 2014-09-23 18:46:44.000000000 +0400
-+++ ParaView-4.2.0_SRC.new/Qt/Python/pqPythonShell.cxx 2014-12-19 15:40:01.000000000 +0300
-@@ -118,6 +118,7 @@
- /// string list.
- QStringList getPythonAttributes(const QString& pythonObjectName)
- {
-+ VTK_PY_GIL_ENSURE
- if (this->Interpreter == NULL ||
- this->Interpreter->GetInteractiveConsoleLocalsPyObject() == NULL)
- {
-@@ -191,7 +192,7 @@
- }
- Py_DECREF(object);
- }
--
-+ VTK_PY_GIL_RELEASE
- return results;
- }
- };
-diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/Qt/Python/pqPythonSyntaxHighlighter.cxx ParaView-4.2.0_SRC.new/Qt/Python/pqPythonSyntaxHighlighter.cxx
---- ParaView-4.2.0_SRC/Qt/Python/pqPythonSyntaxHighlighter.cxx 2014-09-23 18:46:44.000000000 +0400
-+++ ParaView-4.2.0_SRC.new/Qt/Python/pqPythonSyntaxHighlighter.cxx 2014-12-19 15:39:41.000000000 +0300
-@@ -65,6 +65,7 @@
- this->Internals->TextEdit = textEdit;
- this->Internals->TextEdit->installEventFilter(this);
- vtkPythonInterpreter::Initialize();
-+ VTK_PY_GIL_ENSURE
- this->Internals->PygmentsModule.TakeReference(PyImport_ImportModule("pygments"));
- if (this->Internals->PygmentsModule && this->Internals->TextEdit != NULL)
- {
-@@ -99,6 +100,7 @@
- this->connect(this->Internals->TextEdit.data(), SIGNAL(textChanged()),
- this, SLOT(rehighlightSyntax()));
- }
-+ VTK_PY_GIL_RELEASE
- this->Internals->IsSyntaxHighlighting = false;
- // Replace tabs with 4 spaces
- this->Internals->ReplaceTabs = true;
-@@ -175,10 +177,12 @@
- }
- QString leadingWhitespace = text.left(leadingWhiteSpaceLength);
- QString trailingWhitespace = text.right(trailingWhiteSpaceLength);
-+ VTK_PY_GIL_ENSURE
- vtkSmartPyObject args(Py_BuildValue("sOO",text.trimmed().toStdString().c_str(),
- this->Internals->PythonLexer.GetPointer(),this->Internals->HtmlFormatter.GetPointer()));
- vtkSmartPyObject resultingText(PyObject_Call(this->Internals->HighlightFunction,args,NULL));
- const char *resultingTextAsCString = PyString_AsString(resultingText);
-+ VTK_PY_GIL_RELEASE
- QString pygmentsOutput(resultingTextAsCString);
- // the first span tag always should follow the pre tag like this; <pre ...><span
- int startOfPre = pygmentsOutput.indexOf(">",pygmentsOutput.indexOf("<pre"))+1;
-diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/Utilities/VisItBridge/databases/Velodyne/VelodyneReader.C ParaView-4.2.0_SRC.new/Utilities/VisItBridge/databases/Velodyne/VelodyneReader.C
---- ParaView-4.2.0_SRC/Utilities/VisItBridge/databases/Velodyne/VelodyneReader.C 2014-09-23 18:46:46.000000000 +0400
-+++ ParaView-4.2.0_SRC.new/Utilities/VisItBridge/databases/Velodyne/VelodyneReader.C 2014-12-19 15:39:41.000000000 +0300
-@@ -2,7 +2,7 @@
- // This code was contributed to the VisIt project by Corvid Technologies
- // on February 10, 2010.
- //
--
-+#define H5Eset_auto_vers 2
- #include <string.h>
- #include <cstdlib>
-
-@@ -16,7 +16,6 @@
- #endif
-
- #include <VelodyneReader.h>
--
- #include <visit-hdf5.h>
-
- #include <set>
-diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/Utilities/VisItBridge/databases/Vs/VsFilter.C ParaView-4.2.0_SRC.new/Utilities/VisItBridge/databases/Vs/VsFilter.C
---- ParaView-4.2.0_SRC/Utilities/VisItBridge/databases/Vs/VsFilter.C 2014-09-23 18:46:46.000000000 +0400
-+++ ParaView-4.2.0_SRC.new/Utilities/VisItBridge/databases/Vs/VsFilter.C 2014-12-19 15:39:41.000000000 +0300
-@@ -1,3 +1,7 @@
-+#define H5Gopen_vers 2
-+#define H5Dopen_vers 2
-+#define H5Eset_auto_vers 2
-+#define H5Aiterate_vers 2
- #include <vtk_hdf5.h>
- #include <visit-hdf5.h>
- #if HDF5_VERSION_GE(1,8,1)
-@@ -146,11 +150,7 @@
-
- // Get info of the linked object.
- H5O_info_t objinfo;
--#ifndef H5_USE_16_API
- hid_t obj_id = H5Oopen(locId, name, H5P_DEFAULT);
--#else
-- hid_t obj_id = H5Oopen(locId, name);
--#endif
-
- if (obj_id < 0) {
- VsLog::errorLog() <<"VsFilter::visitLinks() - unable to get id for external object " <<name <<std::endl;
-diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/Utilities/VisItBridge/databases/Vs/VsH5File.C ParaView-4.2.0_SRC.new/Utilities/VisItBridge/databases/Vs/VsH5File.C
---- ParaView-4.2.0_SRC/Utilities/VisItBridge/databases/Vs/VsH5File.C 2014-09-23 18:46:46.000000000 +0400
-+++ ParaView-4.2.0_SRC.new/Utilities/VisItBridge/databases/Vs/VsH5File.C 2014-12-19 15:39:41.000000000 +0300
-@@ -4,7 +4,7 @@
- * Created on: Apr 27, 2010
- * Author: mdurant
- */
--
-+#define H5Eset_auto_vers 2
- #include "VsH5File.h"
- #include "VsLog.h"
- #include "VsFilter.h"
-diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/VTK/CMake/vtkModuleTop.cmake ParaView-4.2.0_SRC.new/VTK/CMake/vtkModuleTop.cmake
---- ParaView-4.2.0_SRC/VTK/CMake/vtkModuleTop.cmake 2014-09-23 18:47:10.000000000 +0400
-+++ ParaView-4.2.0_SRC.new/VTK/CMake/vtkModuleTop.cmake 2014-12-19 15:39:41.000000000 +0300
-@@ -476,6 +476,7 @@
- get_property(VTK_TARGETS GLOBAL PROPERTY VTK_TARGETS)
- if(VTK_TARGETS)
- install(EXPORT ${VTK_INSTALL_EXPORT_NAME} DESTINATION ${VTK_INSTALL_PACKAGE_DIR})
-+ install(EXPORT ${VTK_INSTALL_EXPORT_NAME} DESTINATION ${VTK_INSTALL_PACKAGE_DIR} FILE VTKTargets.cmake)
- else()
- set(CMAKE_CONFIGURABLE_FILE_CONTENT "# No targets!")
- configure_file(${CMAKE_ROOT}/Modules/CMakeConfigurableFile.in
-diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/VTK/Rendering/Matplotlib/vtkMatplotlibMathTextUtilities.cxx ParaView-4.2.0_SRC.new/VTK/Rendering/Matplotlib/vtkMatplotlibMathTextUtilities.cxx
---- ParaView-4.2.0_SRC/VTK/Rendering/Matplotlib/vtkMatplotlibMathTextUtilities.cxx 2014-09-23 18:47:11.000000000 +0400
-+++ ParaView-4.2.0_SRC.new/VTK/Rendering/Matplotlib/vtkMatplotlibMathTextUtilities.cxx 2014-12-19 15:39:41.000000000 +0300
-@@ -48,7 +48,7 @@
- //----------------------------------------------------------------------------
- vtkMatplotlibMathTextUtilities::Availablity
- vtkMatplotlibMathTextUtilities::MPLMathTextAvailable =
--vtkMatplotlibMathTextUtilities::NOT_TESTED;
-+vtkMatplotlibMathTextUtilities::UNAVAILABLE;
-
- // A macro that is used in New() to print warnings if VTK_MATPLOTLIB_DEBUG
- // is defined in the environment. Use vtkGenericWarningMacro to allow this to
-diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/VTK/ThirdParty/verdict/vtkverdict/V_TetMetric.cpp ParaView-4.2.0_SRC.new/VTK/ThirdParty/verdict/vtkverdict/V_TetMetric.cpp
---- ParaView-4.2.0_SRC/VTK/ThirdParty/verdict/vtkverdict/V_TetMetric.cpp 2014-09-23 18:47:11.000000000 +0400
-+++ ParaView-4.2.0_SRC.new/VTK/ThirdParty/verdict/vtkverdict/V_TetMetric.cpp 2014-12-19 15:39:41.000000000 +0300
-@@ -373,7 +373,7 @@
- coordinates[3][1] - coordinates[0][1],
- coordinates[3][2] - coordinates[0][2] );
-
-- double detTet = ab % ( ac * ad );
-+ double detTet = fabs( ab % ( ac * ad ) );
-
- if( detTet < VERDICT_DBL_MIN )
- return (double)VERDICT_DBL_MAX;
-@@ -413,7 +413,7 @@
- D = bd.length();
-
- double aspect_ratio;
-- aspect_ratio = normal_coeff * hm * ( A + B + C + D ) / fabs( detTet );
-+ aspect_ratio = normal_coeff * hm * ( A + B + C + D ) / detTet;
-
- if( aspect_ratio > 0 )
- return (double) VERDICT_MIN( aspect_ratio, VERDICT_DBL_MAX );
-diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/VTK/Utilities/Python/vtkPython.h ParaView-4.2.0_SRC.new/VTK/Utilities/Python/vtkPython.h
---- ParaView-4.2.0_SRC/VTK/Utilities/Python/vtkPython.h 2014-09-23 18:47:11.000000000 +0400
-+++ ParaView-4.2.0_SRC.new/VTK/Utilities/Python/vtkPython.h 2014-12-19 15:39:41.000000000 +0300
-@@ -87,4 +87,14 @@
- #error "Python.h is different version from what VTK was configured with!!"
- #endif
-
-+#ifdef VTK_NO_PYTHON_THREADS
-+# define VTK_PY_GIL_ENSURE
-+# define VTK_PY_GIL_RELEASE
-+#else
-+# define VTK_PY_GIL_ENSURE PyGILState_STATE _gstate_avoid_clash = PyGILState_Ensure();
-+# define VTK_PY_GIL_RELEASE PyGILState_Release(_gstate_avoid_clash);
-+#
-+#endif
-+
-+
- #endif
-diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/VTK/Utilities/PythonInterpreter/vtkPythonInteractiveInterpreter.cxx ParaView-4.2.0_SRC.new/VTK/Utilities/PythonInterpreter/vtkPythonInteractiveInterpreter.cxx
---- ParaView-4.2.0_SRC/VTK/Utilities/PythonInterpreter/vtkPythonInteractiveInterpreter.cxx 2014-09-23 18:47:11.000000000 +0400
-+++ ParaView-4.2.0_SRC.new/VTK/Utilities/PythonInterpreter/vtkPythonInteractiveInterpreter.cxx 2014-12-19 15:39:41.000000000 +0300
-@@ -45,6 +45,7 @@
-
- void CleanupPythonObjects()
- {
-+ VTK_PY_GIL_ENSURE
- Py_XDECREF(this->InteractiveConsoleLocals);
- Py_XDECREF(this->InteractiveConsole);
- this->InteractiveConsole = NULL;
-@@ -54,6 +55,7 @@
- const char* code = "import gc; gc.collect()\n";
- vtkPythonInterpreter::RunSimpleString(code);
- }
-+ VTK_PY_GIL_RELEASE
- }
-
- PyObject* GetInteractiveConsole()
-@@ -65,6 +67,7 @@
-
- vtkPythonInterpreter::Initialize();
-
-+ VTK_PY_GIL_ENSURE
- // set up the code.InteractiveConsole instance that we'll use.
- const char* code = "import code\n"
- "__vtkConsoleLocals={'__name__':'__vtkconsole__','__doc__':None}\n"
-@@ -83,6 +86,7 @@
- {
- vtkGenericWarningMacro(
- "Failed to locate the InteractiveConsole/InteractiveConsoleLocals object.");
-+ VTK_PY_GIL_RELEASE
- return NULL;
- }
- Py_INCREF(this->InteractiveConsole);
-@@ -105,7 +109,7 @@
- PySys_SetObject(const_cast<char*>("ps2"), ps2 = PyString_FromString("... "));
- Py_XDECREF(ps2);
- }
--
-+ VTK_PY_GIL_RELEASE
- return this->InteractiveConsole;
- }
- };
-@@ -167,6 +171,7 @@
- i++;
- }
-
-+ VTK_PY_GIL_ENSURE
- bool ret_value = false;
- PyObject *res = PyObject_CallMethod(console,
- const_cast<char*>("push"), const_cast<char*>("z"), buffer.c_str());
-@@ -179,6 +184,7 @@
- }
- Py_DECREF(res);
- }
-+ VTK_PY_GIL_RELEASE
- return ret_value;
- }
-
-@@ -190,12 +196,14 @@
-
- this->Internals->GetInteractiveConsole(); //ensure the console is initialized
-
-+ VTK_PY_GIL_ENSURE
- PyObject* context = this->Internals->GetInteractiveConsoleLocalsPyObject();
- PyObject* result = PyRun_String(const_cast<char*>(script), Py_file_input, context, context);
-
- if (result == NULL)
- {
- PyErr_Print();
-+ VTK_PY_GIL_RELEASE
- return -1;
- }
-
-@@ -204,6 +212,7 @@
- {
- PyErr_Clear();
- }
-+ VTK_PY_GIL_RELEASE
- return 0;
- }
-
-diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/VTK/Utilities/PythonInterpreter/vtkPythonInterpreter.cxx ParaView-4.2.0_SRC.new/VTK/Utilities/PythonInterpreter/vtkPythonInterpreter.cxx
---- ParaView-4.2.0_SRC/VTK/Utilities/PythonInterpreter/vtkPythonInterpreter.cxx 2014-09-23 18:47:11.000000000 +0400
-+++ ParaView-4.2.0_SRC.new/VTK/Utilities/PythonInterpreter/vtkPythonInterpreter.cxx 2014-12-19 15:39:54.000000000 +0300
-@@ -60,10 +60,12 @@
-
- inline void vtkPrependPythonPath(const char* pathtoadd)
- {
-+ VTK_PY_GIL_ENSURE
- PyObject* path = PySys_GetObject(const_cast<char*>("path"));
- PyObject* newpath = PyString_FromString(pathtoadd);
- PyList_Insert(path, 0, newpath);
- Py_DECREF(newpath);
-+ VTK_PY_GIL_RELEASE
- }
- }
-
-@@ -107,7 +109,6 @@
- //----------------------------------------------------------------------------
- bool vtkPythonInterpreter::Initialize(int initsigs /*=0*/)
- {
-- vtkPythonInterpreter::InitializedOnce = true;
- if (Py_IsInitialized() == 0)
- {
- #if (VTK_PYTHON_MAJOR_VERSION > 2) ||\
-@@ -117,11 +118,26 @@
- (void)initsigs;
- Py_Initialize();
- #endif
--
- #ifdef SIGINT
- // Put default SIGINT handler back after Py_Initialize/Py_InitializeEx.
- signal(SIGINT, SIG_DFL);
- #endif
-+ }
-+
-+ if (! vtkPythonInterpreter::InitializedOnce)
-+ {
-+#ifndef VTK_NO_PYTHON_THREADS
-+ int threadInit = PyEval_ThreadsInitialized();
-+ PyEval_InitThreads(); // safe to call this multiple time
-+#endif
-+ // At this point we have GIL, or we are mono-thread.
-+ // Access to the static below is safe:
-+ vtkPythonInterpreter::InitializedOnce = true;
-+
-+#ifndef VTK_NO_PYTHON_THREADS
-+ if(!threadInit)
-+ PyEval_SaveThread(); // release GIL
-+#endif
- // HACK: Calling PyRun_SimpleString for the first time for some reason results in
- // a "\n" message being generated which is causing the error dialog to
- // popup. So we flush that message out of the system before setting up the
-@@ -134,15 +150,17 @@
- vtkPythonStdStreamCaptureHelper* wrapperErr =
- NewPythonStdStreamCaptureHelper(true);
-
-- // Redirect Python's stdout and stderr and stdin
-- PySys_SetObject(const_cast<char*>("stdout"),
-+ // Redirect Python's stdout and stderr and stdin - GIL protected operation
-+ VTK_PY_GIL_ENSURE
-+ int ret1 = PySys_SetObject(const_cast<char*>("stdout"),
- reinterpret_cast<PyObject*>(wrapperOut));
-- PySys_SetObject(const_cast<char*>("stderr"),
-+ int ret2 = PySys_SetObject(const_cast<char*>("stderr"),
- reinterpret_cast<PyObject*>(wrapperErr));
-- PySys_SetObject(const_cast<char*>("stdin"),
-+ int ret3 = PySys_SetObject(const_cast<char*>("stdin"),
- reinterpret_cast<PyObject*>(wrapperOut));
- Py_DECREF(wrapperOut);
- Py_DECREF(wrapperErr);
-+ VTK_PY_GIL_RELEASE
-
- for (size_t cc=0; cc < PythonPaths.size(); cc++)
- {
-@@ -162,6 +180,7 @@
- if (Py_IsInitialized() != 0)
- {
- NotifyInterpreters(vtkCommand::ExitEvent);
-+ VTK_PY_GIL_ENSURE
- Py_Finalize();
- }
- }
-@@ -221,7 +240,9 @@
- vtkPythonInterpreter::SetProgramName(argv[0]);
- }
- vtkPythonInterpreter::Initialize(1);
-+ VTK_PY_GIL_ENSURE
- return Py_Main(argc, argv);
-+ // Py_Main already does a finalize etc ...
- }
-
- //----------------------------------------------------------------------------
-@@ -235,7 +256,9 @@
- buffer.erase(std::remove(buffer.begin(), buffer.end(), '\r'), buffer.end());
-
- // The cast is necessary because PyRun_SimpleString() hasn't always been const-correct
-+ VTK_PY_GIL_ENSURE
- PyRun_SimpleString(const_cast<char*>(buffer.c_str()));
-+ VTK_PY_GIL_RELEASE
- }
-
- //----------------------------------------------------------------------------
-diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/VTK/Wrapping/PythonCore/vtkPythonCommand.cxx ParaView-4.2.0_SRC.new/VTK/Wrapping/PythonCore/vtkPythonCommand.cxx
---- ParaView-4.2.0_SRC/VTK/Wrapping/PythonCore/vtkPythonCommand.cxx 2014-09-23 18:47:11.000000000 +0400
-+++ ParaView-4.2.0_SRC.new/VTK/Wrapping/PythonCore/vtkPythonCommand.cxx 2014-12-19 15:39:41.000000000 +0300
-@@ -30,14 +30,18 @@
- vtkPythonUtil::UnRegisterPythonCommand(this);
- if (this->obj && Py_IsInitialized())
- {
-+ VTK_PY_GIL_ENSURE
- Py_DECREF(this->obj);
-+ VTK_PY_GIL_RELEASE
- }
- this->obj = NULL;
- }
-
- void vtkPythonCommand::SetObject(PyObject *o)
- {
-+ VTK_PY_GIL_ENSURE
- Py_INCREF(o);
-+ VTK_PY_GIL_RELEASE
- this->obj = o;
- }
-
-@@ -92,11 +96,11 @@
- // If a threadstate has been set using vtkPythonCommand::SetThreadState,
- // then swap it in here. See the email to vtk-developers@vtk.org from
- // June 18, 2009 with subject "Py_NewInterpreter and vtkPythonCallback issue"
-- PyThreadState* prevThreadState = NULL;
-- if (this->ThreadState)
-- {
-- prevThreadState = PyThreadState_Swap(this->ThreadState);
-- }
-+// PyThreadState* prevThreadState = NULL;
-+// if (this->ThreadState)
-+// {
-+// prevThreadState = PyThreadState_Swap(this->ThreadState);
-+// }
-
- PyObject * obj2 = NULL;
- if (ptr && ptr->GetReferenceCount() > 0)
-@@ -237,10 +241,10 @@
- }
-
- // If we did the swap near the top of this function then swap back now.
-- if (this->ThreadState)
-- {
-- PyThreadState_Swap(prevThreadState);
-- }
-+// if (this->ThreadState)
-+// {
-+// PyThreadState_Swap(prevThreadState);
-+// }
-
- #ifndef VTK_NO_PYTHON_THREADS
- #if (PY_MAJOR_VERSION > 2) || \
-diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/VTK/Wrapping/PythonCore/vtkSmartPyObject.cxx ParaView-4.2.0_SRC.new/VTK/Wrapping/PythonCore/vtkSmartPyObject.cxx
---- ParaView-4.2.0_SRC/VTK/Wrapping/PythonCore/vtkSmartPyObject.cxx 2014-09-23 18:47:11.000000000 +0400
-+++ ParaView-4.2.0_SRC.new/VTK/Wrapping/PythonCore/vtkSmartPyObject.cxx 2014-12-19 15:39:41.000000000 +0300
-@@ -30,37 +30,52 @@
- vtkSmartPyObject::vtkSmartPyObject(const vtkSmartPyObject &other) :
- Object(other.Object)
- {
-+ VTK_PY_GIL_ENSURE
- Py_XINCREF(this->Object);
-+ VTK_PY_GIL_RELEASE
- }
-
- //--------------------------------------------------------------------
- vtkSmartPyObject::~vtkSmartPyObject()
- {
-- Py_XDECREF(this->Object);
-+ if (Py_IsInitialized())
-+ {
-+ VTK_PY_GIL_ENSURE
-+ Py_XDECREF(this->Object);
-+ VTK_PY_GIL_RELEASE
-+ }
-+ else
-+ Py_XDECREF(this->Object);
- }
-
- //--------------------------------------------------------------------
- vtkSmartPyObject &vtkSmartPyObject::operator=(const vtkSmartPyObject &other)
- {
-+ VTK_PY_GIL_ENSURE
- Py_XDECREF(this->Object);
- this->Object = other.Object;
- Py_XINCREF(this->Object);
-+ VTK_PY_GIL_RELEASE
- return *this;
- }
-
- //--------------------------------------------------------------------
- vtkSmartPyObject &vtkSmartPyObject::operator=(PyObject *obj)
- {
-+ VTK_PY_GIL_ENSURE
- Py_XDECREF(this->Object);
- this->Object = obj;
- Py_XINCREF(this->Object);
-+ VTK_PY_GIL_RELEASE
- return *this;
- }
-
- //--------------------------------------------------------------------
- void vtkSmartPyObject::TakeReference(PyObject *obj)
- {
-+ VTK_PY_GIL_ENSURE
- Py_XDECREF(this->Object);
-+ VTK_PY_GIL_RELEASE
- this->Object = obj;
- }
-
-@@ -99,6 +114,8 @@
- //--------------------------------------------------------------------
- PyObject *vtkSmartPyObject::GetAndIncreaseReferenceCount()
- {
-+ VTK_PY_GIL_ENSURE
- Py_XINCREF(this->Object);
-+ VTK_PY_GIL_RELEASE
- return this->Object;
- }
-diff -Naur --exclude=CVS --exclude=.git ParaView-4.2.0_SRC/Wrapping/Python/paraview/servermanager.py ParaView-4.2.0_SRC.new/Wrapping/Python/paraview/servermanager.py
---- ParaView-4.2.0_SRC/Wrapping/Python/paraview/servermanager.py 2014-09-23 18:46:44.000000000 +0400
-+++ ParaView-4.2.0_SRC.new/Wrapping/Python/paraview/servermanager.py 2014-12-19 15:39:41.000000000 +0300
-@@ -1092,7 +1092,7 @@
- property = self.SMProperty
- nElems = property.GetNumberOfElements()
- if nElems%2 != 0:
-- raise ValueError, "The SMProperty with XML label '%s' has a size that is not a multiple of 2." % property.GetXMLLabel()
-+ nElems -= 1
- self.__arrays = []
- for i in range(0, nElems, 2):
- if self.GetElement(i+1) != '0':