From 6698b410adb265c40edb51a9f61c2a79b30af674 Mon Sep 17 00:00:00 2001 From: Pierre Kraemer Date: Tue, 15 Nov 2011 17:03:12 +0100 Subject: [PATCH] GenericMap destructor invalidates AttributeHandlers --- include/Geometry/vector_gen.hpp | 5 +++-- src/Topology/generic/genericmap.cpp | 5 +++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/include/Geometry/vector_gen.hpp b/include/Geometry/vector_gen.hpp index b979c6a8..9c25a2c7 100644 --- a/include/Geometry/vector_gen.hpp +++ b/include/Geometry/vector_gen.hpp @@ -251,7 +251,7 @@ template inline double Vector::normalize() { double n = norm() ; - if(n != T(0.0)) + if(n != T(0)) for(unsigned int i = 0; i < DIM; ++i) m_data[i] /= T(n) ; return n ; @@ -357,7 +357,8 @@ inline T tripleProduct(const Vector& v1, const Vector& v2, const V } template -inline Vector slerp(const Vector &v1, const Vector &v2, const T &t) { +inline Vector slerp(const Vector& v1, const Vector& v2, const T& t) +{ Vector res ; T omega = acos(v1 * v2) ; // assume v1,v2 normalized diff --git a/src/Topology/generic/genericmap.cpp b/src/Topology/generic/genericmap.cpp index 4dae6e32..3d84618f 100644 --- a/src/Topology/generic/genericmap.cpp +++ b/src/Topology/generic/genericmap.cpp @@ -87,6 +87,11 @@ GenericMap::~GenericMap() if(isOrbitEmbedded(i)) m_attribs[i].clear(true) ; } + + for(std::multimap::iterator it = attributeHandlers.begin(); it != attributeHandlers.end(); ++it) + (*it).second->setInvalid() ; + attributeHandlers.clear() ; + if(m_attributes_registry_map) { delete m_attributes_registry_map; -- GitLab