From d4eec2670b657eb510350860cba16692efca787c Mon Sep 17 00:00:00 2001 From: Gonzalo Garramuno Date: Wed, 16 May 2007 21:27:08 +0000 Subject: [PATCH] Fixed renames of std_* containers to a safer %rename directive. git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@9810 626c5289-ae23-0410-ae9c-e8d60b6d4f22 --- Lib/ruby/std_list.i | 10 ++++++++++ Lib/ruby/std_map.i | 12 ++++++++++++ Lib/ruby/std_multimap.i | 9 +++++++++ Lib/ruby/std_multiset.i | 9 +++++++++ Lib/ruby/std_pair.i | 12 ++++++++---- Lib/ruby/std_queue.i | 9 +++++++++ Lib/ruby/std_set.i | 12 ++++++++++++ Lib/ruby/std_stack.i | 11 +++++++++++ Lib/ruby/std_vector.i | 10 ++++++++++ 9 files changed, 90 insertions(+), 4 deletions(-) diff --git a/Lib/ruby/std_list.i b/Lib/ruby/std_list.i index caeb841a9..8d4284bbc 100644 --- a/Lib/ruby/std_list.i +++ b/Lib/ruby/std_list.i @@ -27,5 +27,15 @@ #define %swig_list_methods(Type...) %swig_sequence_methods(Type) #define %swig_list_methods_val(Type...) %swig_sequence_methods_val(Type); + +%rename("delete") std::list::__delete__; +%rename("reject!") std::list::reject_bang; +%rename("map!") std::list::map_bang; +%rename("empty?") std::list::empty; +%rename("include?" ) std::list::__contains__ const; +%rename("has_key?" ) std::list::has_key const; + +%alias std::list::push "<<"; + %include diff --git a/Lib/ruby/std_map.i b/Lib/ruby/std_map.i index a102f4132..33fa9569c 100644 --- a/Lib/ruby/std_map.i +++ b/Lib/ruby/std_map.i @@ -404,4 +404,16 @@ %mixin std::map "Enumerable"; %include + + +%rename("delete") std::map::__delete__; +%rename("reject!") std::map::reject_bang; +%rename("map!") std::map::map_bang; +%rename("empty?") std::map::empty; +%rename("include?" ) std::map::__contains__ const; +%rename("has_key?" ) std::map::has_key const; + +%alias std::map::push "<<"; + + %include diff --git a/Lib/ruby/std_multimap.i b/Lib/ruby/std_multimap.i index b5168bb47..7fec50de1 100644 --- a/Lib/ruby/std_multimap.i +++ b/Lib/ruby/std_multimap.i @@ -213,5 +213,14 @@ %mixin std::multimap "Enumerable"; +%rename("delete") std::multimap::__delete__; +%rename("reject!") std::multimap::reject_bang; +%rename("map!") std::multimap::map_bang; +%rename("empty?") std::multimap::empty; +%rename("include?" ) std::multimap::__contains__ const; +%rename("has_key?" ) std::multimap::has_key const; + +%alias std::multimap::push "<<"; + %include diff --git a/Lib/ruby/std_multiset.i b/Lib/ruby/std_multiset.i index c65b2208c..01aca0ad3 100644 --- a/Lib/ruby/std_multiset.i +++ b/Lib/ruby/std_multiset.i @@ -41,4 +41,13 @@ +%rename("delete") std::multiset::__delete__; +%rename("reject!") std::multiset::reject_bang; +%rename("map!") std::multiset::map_bang; +%rename("empty?") std::multiset::empty; +%rename("include?" ) std::multiset::__contains__ const; +%rename("has_key?" ) std::multiset::has_key const; + +%alias std::multiset::push "<<"; + %include diff --git a/Lib/ruby/std_pair.i b/Lib/ruby/std_pair.i index c8b60dd12..82cad0cc2 100644 --- a/Lib/ruby/std_pair.i +++ b/Lib/ruby/std_pair.i @@ -7,7 +7,7 @@ %fragment("StdPairTraits","header",fragment="StdTraits") { namespace swig { -#ifdef SWIG_STD_PAIR_ASVAL + template struct traits_asval > { typedef std::pair value_type; @@ -25,7 +25,7 @@ return res1 > res2 ? res1 : res2; } else { T *pfirst = 0; - int res1 = swig::asval((VALUE)first, 0); + int res1 = swig::asval((VALUE)first, pfirst); if (!SWIG_IsOK(res1)) return res1; U *psecond = 0; int res2 = swig::asval((VALUE)second, psecond); @@ -52,7 +52,6 @@ } }; -#else template struct traits_asptr > { typedef std::pair value_type; @@ -99,8 +98,13 @@ } }; -#endif + template <> + template + struct noconst_traits< const std::pair< T, U > > + { + typedef std::pair< typename swig::noconst_traits, U > noconst_type; + }; template struct traits_from > { diff --git a/Lib/ruby/std_queue.i b/Lib/ruby/std_queue.i index a83fe0265..a12936775 100644 --- a/Lib/ruby/std_queue.i +++ b/Lib/ruby/std_queue.i @@ -21,4 +21,13 @@ } %} +%rename("delete") std::queue::__delete__; +%rename("reject!") std::queue::reject_bang; +%rename("map!") std::queue::map_bang; +%rename("empty?") std::queue::empty; +%rename("include?" ) std::queue::__contains__ const; +%rename("has_key?" ) std::queue::has_key const; + +%alias std::queue::push "<<"; + %include diff --git a/Lib/ruby/std_set.i b/Lib/ruby/std_set.i index 9f6967cf5..9d817f7b3 100644 --- a/Lib/ruby/std_set.i +++ b/Lib/ruby/std_set.i @@ -61,4 +61,16 @@ %mixin std::set "Enumerable"; %include + + +%rename("delete") std::set::__delete__; +%rename("reject!") std::set::reject_bang; +%rename("map!") std::set::map_bang; +%rename("empty?") std::set::empty; +%rename("include?" ) std::set::__contains__ const; +%rename("has_key?" ) std::set::has_key const; + +%alias std::set::push "<<"; + + %include diff --git a/Lib/ruby/std_stack.i b/Lib/ruby/std_stack.i index 47455dfb8..600c81c96 100644 --- a/Lib/ruby/std_stack.i +++ b/Lib/ruby/std_stack.i @@ -21,4 +21,15 @@ } %} + +%rename("delete") std::stack::__delete__; +%rename("reject!") std::stack::reject_bang; +%rename("map!") std::stack::map_bang; +%rename("empty?") std::stack::empty; +%rename("include?" ) std::stack::__contains__ const; +%rename("has_key?" ) std::stack::has_key const; + +%alias std::stack::push "<<"; + + %include diff --git a/Lib/ruby/std_vector.i b/Lib/ruby/std_vector.i index 129676b83..67fdcd1fc 100644 --- a/Lib/ruby/std_vector.i +++ b/Lib/ruby/std_vector.i @@ -38,5 +38,15 @@ %ignore std::vector::push_back; %ignore std::vector::pop_back; + +%rename("delete") std::vector::__delete__; +%rename("reject!") std::vector::reject_bang; +%rename("map!") std::vector::map_bang; +%rename("empty?") std::vector::empty; +%rename("include?" ) std::vector::__contains__ const; +%rename("has_key?" ) std::vector::has_key const; + +%alias std::vector::push "<<"; + %include