From 3335aad83c16ea6952e775b3050c99fd1c38203d Mon Sep 17 00:00:00 2001
From: Thomas Fischer <thomas.fischer@ufz.de>
Date: Wed, 15 Feb 2017 10:07:06 +0100
Subject: [PATCH] [A/U/MP] Write and read number of PropertyVectors.

---
 .../PartitionMesh/NodeWiseMeshPartitioner.cpp              | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/Applications/Utils/ModelPreparation/PartitionMesh/NodeWiseMeshPartitioner.cpp b/Applications/Utils/ModelPreparation/PartitionMesh/NodeWiseMeshPartitioner.cpp
index 8f4cfc06199..2d9c5bf8c82 100644
--- a/Applications/Utils/ModelPreparation/PartitionMesh/NodeWiseMeshPartitioner.cpp
+++ b/Applications/Utils/ModelPreparation/PartitionMesh/NodeWiseMeshPartitioner.cpp
@@ -272,6 +272,9 @@ void NodeWiseMeshPartitioner::writePropertiesBinary(
 
     auto const& properties(_mesh->getProperties());
     auto const& property_names(properties.getPropertyVectorNames());
+    std::size_t number_of_properties(property_names.size());
+    out.write(reinterpret_cast<char*>(&number_of_properties),
+              sizeof(number_of_properties));
     for (auto const& name : property_names)
     {
         MeshLib::IO::PropertyVectorMetaData pvmd;
@@ -336,7 +339,9 @@ void NodeWiseMeshPartitioner::readPropertiesConfigDataBinary(
     {
         ERR("Could not open file '%s' in binary mode.", fname.c_str());
     }
-    while (is)
+    std::size_t number_of_properties = 0;
+    is.read(reinterpret_cast<char*>(&number_of_properties), sizeof(std::size_t));
+    for (std::size_t i(0); i < number_of_properties; ++i)
     {
         boost::optional<MeshLib::IO::PropertyVectorMetaData> pvmd(
             MeshLib::IO::readPropertyVectorMetaData(is));
-- 
GitLab