From a69dd97adcf2bbcbc732803bce8b817944d5bd3e Mon Sep 17 00:00:00 2001
From: Mickael PHILIT <mickey.phy@gmail.com>
Date: Mon, 27 Jan 2025 10:12:20 +0100
Subject: [PATCH] move allocation out of cell loop

---
 IO/FLUENTCFF/vtkFLUENTCFFReader.cxx | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/IO/FLUENTCFF/vtkFLUENTCFFReader.cxx b/IO/FLUENTCFF/vtkFLUENTCFFReader.cxx
index 274aa4948d0..a50035cac49 100644
--- a/IO/FLUENTCFF/vtkFLUENTCFFReader.cxx
+++ b/IO/FLUENTCFF/vtkFLUENTCFFReader.cxx
@@ -146,6 +146,13 @@ int vtkFLUENTCFFReader::RequestData(vtkInformation* vtkNotUsed(request),
   }
   this->Faces.clear();
 
+  // Transfer structures for VTK polyhedron cells
+  vtkNew<vtkCellArray> faces;
+  vtkNew<vtkIntArray> nodes;
+  vtkNew<vtkIntArray> nodesOffset;
+  nodes->SetNumberOfComponents(1);
+  nodesOffset->SetNumberOfComponents(1);
+
   // Convert Fluent format to VTK
   this->NumberOfCells = static_cast<vtkIdType>(this->Cells.size());
 
@@ -216,11 +223,6 @@ int vtkFLUENTCFFReader::RequestData(vtkInformation* vtkNotUsed(request),
     else if (cell.type == 7)
     {
       vtkNew<vtkIdList> pointIds;
-      vtkNew<vtkCellArray> faces;
-      vtkNew<vtkIntArray> nodes;
-      vtkNew<vtkIntArray> nodesOffset;
-      nodes->SetNumberOfComponents(1);
-      nodesOffset->SetNumberOfComponents(1);
       nodes->SetArray(cell.nodes.data(), cell.nodes.size(), 1);
       nodesOffset->SetArray(cell.nodesOffset.data(), cell.nodesOffset.size(), 1);
       faces->SetData(nodesOffset, nodes);
-- 
GitLab