From: <sz...@us...> - 2011-04-25 21:12:39
|
Revision: 12643 http://swig.svn.sourceforge.net/swig/?rev=12643&view=rev Author: szager Date: 2011-04-25 21:12:33 +0000 (Mon, 25 Apr 2011) Log Message: ----------- Bug 1498929: Access to member fields of map elements. Modified Paths: -------------- trunk/CHANGES.current trunk/Examples/test-suite/python/Makefile.in trunk/Lib/python/std_map.i Added Paths: ----------- trunk/Examples/test-suite/li_std_map_member.i trunk/Examples/test-suite/python/li_std_map_member_runme.py Modified: trunk/CHANGES.current =================================================================== --- trunk/CHANGES.current 2011-04-23 13:34:19 UTC (rev 12642) +++ trunk/CHANGES.current 2011-04-25 21:12:33 UTC (rev 12643) @@ -4,6 +4,9 @@ Version 2.0.4 (in progress) =========================== +2011-04-25: szager + Fixed bug 1498929: Access to member fields in map elements + 2011-04-23: klickverbot [D] nspace: Correctly generate identifiers for base classes when not in split proxy mode. Added: trunk/Examples/test-suite/li_std_map_member.i =================================================================== --- trunk/Examples/test-suite/li_std_map_member.i (rev 0) +++ trunk/Examples/test-suite/li_std_map_member.i 2011-04-25 21:12:33 UTC (rev 12643) @@ -0,0 +1,20 @@ +%module li_std_map_member + +%inline %{ +int i; +class TestA { +public: +TestA() { i = 1; } +int i; +}; +%} +%include std_pair.i +%include std_map.i + +namespace std +{ +%template(pairii) pair<int,int>; +%template(mapii) map<int,int>; +%template(pairita) pair<int,TestA>; +%template(mapita) map<int,TestA>; +} Modified: trunk/Examples/test-suite/python/Makefile.in =================================================================== --- trunk/Examples/test-suite/python/Makefile.in 2011-04-23 13:34:19 UTC (rev 12642) +++ trunk/Examples/test-suite/python/Makefile.in 2011-04-25 21:12:33 UTC (rev 12643) @@ -49,6 +49,7 @@ li_implicit \ li_std_vectora \ li_std_vector_extra \ + li_std_map_member \ li_std_multimap \ li_std_pair_extra \ li_std_set \ Added: trunk/Examples/test-suite/python/li_std_map_member_runme.py =================================================================== --- trunk/Examples/test-suite/python/li_std_map_member_runme.py (rev 0) +++ trunk/Examples/test-suite/python/li_std_map_member_runme.py 2011-04-25 21:12:33 UTC (rev 12643) @@ -0,0 +1,11 @@ +import li_std_map_member + +a = li_std_map_member.mapita() +a[1] = li_std_map_member.TestA() + +if (a[1].i != 1) : + raise RuntimeError("a[1] != 1") + +a[1].i = 2 +if (a[1].i != 2) : + raise RuntimeError("a[1] != 2") Modified: trunk/Lib/python/std_map.i =================================================================== --- trunk/Lib/python/std_map.i 2011-04-23 13:34:19 UTC (rev 12642) +++ trunk/Lib/python/std_map.i 2011-04-25 21:12:33 UTC (rev 12643) @@ -187,7 +187,7 @@ #endif %extend { - mapped_type __getitem__(const key_type& key) const throw (std::out_of_range) { + mapped_type const & __getitem__(const key_type& key) throw (std::out_of_range) { Map::const_iterator i = self->find(key); if (i != self->end()) return i->second; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |