|
Björn Esser |
7a8b51f |
From 83e6a93e40cd224a10a66ec725b5f7a29be6de8f Mon Sep 17 00:00:00 2001
|
|
Björn Esser |
3c457eb |
From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= <me@besser82.io>
|
|
Björn Esser |
3c457eb |
Date: Tue, 18 Oct 2016 12:16:58 +0200
|
|
Björn Esser |
3c457eb |
Subject: [PATCH] Fix build with JSONcpp >= 1.7.7, specialized template
|
|
Björn Esser |
3c457eb |
(#16938)
|
|
Björn Esser |
3c457eb |
|
|
Björn Esser |
3c457eb |
---
|
|
Björn Esser |
7a8b51f |
ParaViewCore/ServerManager/Core/vtkSMSettings.cxx | 40 +++++++++++++++++++++++
|
|
Björn Esser |
7a8b51f |
1 file changed, 40 insertions(+)
|
|
Björn Esser |
3c457eb |
|
|
Björn Esser |
3c457eb |
diff --git a/ParaViewCore/ServerManager/Core/vtkSMSettings.cxx b/ParaViewCore/ServerManager/Core/vtkSMSettings.cxx
|
|
Björn Esser |
7a8b51f |
index 1684e40..ca86118 100644
|
|
Björn Esser |
3c457eb |
--- a/ParaViewCore/ServerManager/Core/vtkSMSettings.cxx
|
|
Björn Esser |
3c457eb |
+++ b/ParaViewCore/ServerManager/Core/vtkSMSettings.cxx
|
|
Björn Esser |
7a8b51f |
@@ -1410,6 +1410,46 @@ Json::Value vtkConvertXMLElementToJSON(
|
|
Björn Esser |
7a8b51f |
return value;
|
|
Björn Esser |
3c457eb |
}
|
|
Björn Esser |
3c457eb |
|
|
Björn Esser |
360df38 |
+// We need a specialized template for `vtkIdType`, if compiling
|
|
Björn Esser |
360df38 |
+// with `VTK_USE_64BIT_IDS=ON`, because JSONcpp >= 1.7.7 switched
|
|
Björn Esser |
7a8b51f |
+// from at-least width (long long int) to fixed width (Int64)
|
|
Björn Esser |
360df38 |
+// integers. If compiling with `VTK_USE_64BIT_IDS=OFF` this is
|
|
Björn Esser |
7a8b51f |
+// not needed, because `vtkIdType` represents plain (Int32)
|
|
Björn Esser |
7a8b51f |
+// integers in this case.
|
|
Björn Esser |
360df38 |
+//
|
|
Björn Esser |
360df38 |
+// See: https://gitlab.kitware.com/paraview/paraview/issues/16938
|
|
Björn Esser |
3c457eb |
+#ifdef VTK_USE_64BIT_IDS
|
|
Björn Esser |
3c457eb |
+template <>
|
|
Björn Esser |
3c457eb |
+Json::Value vtkConvertXMLElementToJSON <vtkIdType>(
|
|
Björn Esser |
7a8b51f |
+ vtkSMVectorProperty* vp, const std::vector<vtkSmartPointer<vtkPVXMLElement> >& elements)
|
|
Björn Esser |
3c457eb |
+{
|
|
Björn Esser |
3c457eb |
+ // Since we need to handle enumeration domain :/.
|
|
Björn Esser |
7a8b51f |
+ vtkSMEnumerationDomain* enumDomain =
|
|
Björn Esser |
7a8b51f |
+ vtkSMEnumerationDomain::SafeDownCast(vp->FindDomain("vtkSMEnumerationDomain"));
|
|
Björn Esser |
3c457eb |
+ Json::Value value(Json::arrayValue);
|
|
Björn Esser |
7a8b51f |
+ for (size_t cc = 0; cc < elements.size(); ++cc)
|
|
Björn Esser |
7a8b51f |
+ {
|
|
Björn Esser |
3c457eb |
+ vtkIdType xmlValue;
|
|
Björn Esser |
3c457eb |
+ elements[cc]->GetScalarAttribute("value", &xmlValue);
|
|
Björn Esser |
7a8b51f |
+ const char* txt = enumDomain ? enumDomain->GetEntryTextForValue(xmlValue) : NULL;
|
|
Björn Esser |
3c457eb |
+ if (txt)
|
|
Björn Esser |
7a8b51f |
+ {
|
|
Björn Esser |
3c457eb |
+ value[static_cast<unsigned int>(cc)] = Json::Value(txt);
|
|
Björn Esser |
3c457eb |
+ }
|
|
Björn Esser |
7a8b51f |
+ else
|
|
Björn Esser |
3c457eb |
+ {
|
|
Björn Esser |
7a8b51f |
+ // We need to cast from `vtkIdType` to `Int64`-type explicitly.
|
|
Björn Esser |
7a8b51f |
+ value[static_cast<unsigned int>(cc)] = Json::Value(static_cast<Json::Value::Int64>(xmlValue));
|
|
Björn Esser |
3c457eb |
+ }
|
|
Björn Esser |
7a8b51f |
+ }
|
|
Björn Esser |
7a8b51f |
+ if (vp->GetNumberOfElements() == 1 && vp->GetRepeatCommand() == 0 && value.size() == 1)
|
|
Björn Esser |
7a8b51f |
+ {
|
|
Björn Esser |
7a8b51f |
+ return value[0];
|
|
Björn Esser |
7a8b51f |
+ }
|
|
Björn Esser |
7a8b51f |
+ return value;
|
|
Björn Esser |
3c457eb |
+}
|
|
Björn Esser |
3c457eb |
+#endif // VTK_USE_64BIT_IDS
|
|
Björn Esser |
3c457eb |
+
|
|
Björn Esser |
3c457eb |
template <>
|
|
Björn Esser |
3c457eb |
Json::Value vtkConvertXMLElementToJSON<vtkStdString>(
|
|
Björn Esser |
7a8b51f |
vtkSMVectorProperty* vp, const std::vector<vtkSmartPointer<vtkPVXMLElement> >& elements)
|
|
Björn Esser |
3c457eb |
--
|
|
Björn Esser |
3c457eb |
2.7.4
|
|
Björn Esser |
3c457eb |
|