diff --git a/Doc/changelog.docu b/Doc/changelog.docu index c2b1fcc2..d3021a7a 100644 --- a/Doc/changelog.docu +++ b/Doc/changelog.docu @@ -64,6 +64,7 @@
  • OM Writer: Added Mark to the format header to identify end of stream correctly (Thanks to Jamie Kydd for the patch)
  • PLY Reader: Skip reading extra elements after face
  • PLY Reader: Return error when reaching EOF
  • +
  • OMFormat: Fix implicit fallthrough warning on gcc(Thanks to Manuel Massing for the patch)
  • Unittests diff --git a/src/OpenMesh/Core/IO/OMFormat.hh b/src/OpenMesh/Core/IO/OMFormat.hh index 13228e84..9bbcd860 100644 --- a/src/OpenMesh/Core/IO/OMFormat.hh +++ b/src/OpenMesh/Core/IO/OMFormat.hh @@ -315,16 +315,16 @@ namespace OMFormat { /// Return the size of chunk data in bytes inline size_t chunk_data_size( Header& _hdr, Chunk::Header& _chunk_hdr ) { - size_t C = 0; - + size_t C; switch( _chunk_hdr.entity_ ) { case Chunk::Entity_Vertex: C = _hdr.n_vertices_; break; case Chunk::Entity_Face: C = _hdr.n_faces_; break; - case Chunk::Entity_Halfedge: C = _hdr.n_edges_; // no break! - case Chunk::Entity_Edge: C += _hdr.n_edges_; break; + case Chunk::Entity_Halfedge: C = _hdr.n_edges_*2; break; + case Chunk::Entity_Edge: C = _hdr.n_edges_; break; case Chunk::Entity_Mesh: C = 1; break; default: + C = 0; std::cerr << "Invalid value in _chunk_hdr.entity_\n"; assert( false ); break;