From: <br...@us...> - 2008-01-28 08:56:22
|
Revision: 3321 http://openvrml.svn.sourceforge.net/openvrml/?rev=3321&view=rev Author: braden Date: 2008-01-28 00:56:28 -0800 (Mon, 28 Jan 2008) Log Message: ----------- Use a multimap for storing IS mappings in the parser. This is required to accommodate exposedFields that may be mapped to an eventIn, a field, and/or an eventOut. Modified Paths: -------------- branches/0.17/ChangeLog branches/0.17/src/libopenvrml/openvrml/browser.cpp Modified: branches/0.17/ChangeLog =================================================================== --- branches/0.17/ChangeLog 2008-01-28 03:46:41 UTC (rev 3320) +++ branches/0.17/ChangeLog 2008-01-28 08:56:28 UTC (rev 3321) @@ -1,3 +1,16 @@ +2007-01-28 Braden McDaniel <br...@en...> + + Use a multimap for storing IS mappings in the parser. This is + required to accommodate exposedFields that may be mapped to an + eventIn, a field, and/or an eventOut. + + * src/libopenvrml/openvrml/browser.cpp + (openvrml::browser::vrml97_parse_actions::on_is_mapping_t::operator()(const + std::string &) const): Insertion into a multimap always + succeeds (or throws). + (openvrml::browser::vrml97_parse_actions::node_data::is_map_t): + Changed to a multimap. + 2007-01-26 Braden McDaniel <br...@en...> Updates for 0.17.4 release. Modified: branches/0.17/src/libopenvrml/openvrml/browser.cpp =================================================================== --- branches/0.17/src/libopenvrml/openvrml/browser.cpp 2008-01-28 03:46:41 UTC (rev 3320) +++ branches/0.17/src/libopenvrml/openvrml/browser.cpp 2008-01-28 08:56:28 UTC (rev 3321) @@ -4427,11 +4427,8 @@ node_data & nd = this->actions_.ps.top().node_data_.top(); assert(nd.current_field_value); - bool succeeded = - nd.is_map.insert(make_pair(nd.current_field_value->first, - proto_interface_id)) - .second; - assert(succeeded); + nd.is_map.insert(make_pair(nd.current_field_value->first, + proto_interface_id)); const field_value::type_id field_type = nd.current_field_value->second->type(); @@ -4851,7 +4848,11 @@ }; struct node_data { - typedef std::map<std::string, std::string> is_map_t; + // + // This is a multimap because an exposedField might have multiple + // entries (i.e., for the corresponding eventIn, field, and eventOut). + // + typedef std::multimap<std::string, std::string> is_map_t; boost::shared_ptr<node_type> type; std::string node_name_id; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |