Fix put(Dynamic_property_map&..)

This commit is contained in:
Andreas Fabri 2017-10-06 09:41:36 +01:00 committed by Jane Tournois
parent bfb8d1fcc6
commit d2425251bf
1 changed files with 5 additions and 7 deletions

View File

@ -49,23 +49,21 @@ struct Dynamic_property_map {
} }
} }
friend value_type get(const Dynamic_property_map& m, const key_type& k)
friend reference get(const Dynamic_property_map& m, const key_type& k)
{ {
typename Map::const_iterator it = m.map_->find(k); typename Map::const_iterator it = m.map_->find(k);
if(it == m.map_->end()){ if(it == m.map_->end()){
(*(const_cast<Dynamic_property_map&>(m).map_))[k] = m.default_value();
return m.default_value(); return m.default_value();
} }
return it->second; return it->second;
} }
friend void put(Dynamic_property_map& m, const key_type& k, const value_type& v) friend void put(const Dynamic_property_map& m, const key_type& k, const value_type& v)
{ {
if(v != m.default_value()){
(*(m.map_))[k] = v; (*(m.map_))[k] = v;
} }
}
const V& default_value() const const V& default_value() const
@ -191,7 +189,7 @@ add_property(face_property_t<T> prop, const G&)
return internal::Dynamic_property_map<face_descriptor,T>(prop.t); return internal::Dynamic_property_map<face_descriptor,T>(prop.t);
} }
template<class G, class T, typename Descriptor> template<typename G, typename Descriptor, typename T>
void remove_property( void remove_property(
internal::Dynamic_property_map<Descriptor, T> pm, internal::Dynamic_property_map<Descriptor, T> pm,
const G&) const G&)