From ef05ead0cd6f65198d4efa9bb60ad9214445adf9 Mon Sep 17 00:00:00 2001 From: Oliver Sander <oliver.sander@tu-dresden.de> Date: Thu, 3 Jan 2019 14:25:46 +0100 Subject: [PATCH] Fix crash in method fillVTKWriter --- src/harmonicmaps.cc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/harmonicmaps.cc b/src/harmonicmaps.cc index 9ba0c2cd..00479169 100644 --- a/src/harmonicmaps.cc +++ b/src/harmonicmaps.cc @@ -105,15 +105,19 @@ void fillVTKWriter(Writer& vtkWriter, const Basis& feBasis, const SolutionType& vtkWriter.addVertexData(dFunction0, VTK::FieldInfo("director0", VTK::FieldInfo::Type::vector, 3)); vtkWriter.addVertexData(dFunction1, VTK::FieldInfo("director1", VTK::FieldInfo::Type::vector, 3)); vtkWriter.addVertexData(dFunction2, VTK::FieldInfo("director2", VTK::FieldInfo::Type::vector, 3)); + + // Needs to be in this scope; otherwise the stack-allocated dFunction?-objects will get + // destructed before 'write' is called. + vtkWriter.write(filename); } else { auto xFunction = Dune::Functions::makeDiscreteGlobalBasisFunction<TargetSpace::CoordinateType>(feBasis,TypeTree::hybridTreePath(),xEmbedded); vtkWriter.addVertexData(xFunction, VTK::FieldInfo("orientation", VTK::FieldInfo::Type::vector, xEmbedded[0].size())); - } - vtkWriter.write(filename); + vtkWriter.write(filename); + } } -- GitLab