From: William F. <wsf...@us...> - 2005-07-27 20:09:51
|
Update of /cvsroot/swig/SWIG/Lib/ocaml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25880/ocaml Modified Files: std_common.i std_list.i std_map.i Log Message: use exception specification instead of %exception to handle STL error checking Index: std_common.i =================================================================== RCS file: /cvsroot/swig/SWIG/Lib/ocaml/std_common.i,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** std_common.i 17 Aug 2003 11:52:30 -0000 1.4 --- std_common.i 27 Jul 2005 20:09:40 -0000 1.5 *************** *** 7,10 **** --- 7,12 ---- // Ocaml implementation + %include <std/std_except.i> + %apply size_t { std::size_t }; Index: std_list.i =================================================================== RCS file: /cvsroot/swig/SWIG/Lib/ocaml/std_list.i,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** std_list.i 2 Apr 2003 07:41:56 -0000 1.4 --- std_list.i 27 Jul 2005 20:09:40 -0000 1.5 *************** *** 7,10 **** --- 7,11 ---- // Python implementation + %include <std_common.i> %module std_list *************** *** 14,43 **** %} - %include "exception.i" - - %exception std::list::__getitem__ { - try { - $action - } catch (std::out_of_range& e) { - SWIG_exception(SWIG_IndexError,const_cast<char*>(e.what())); - } - } - - %exception std::list::__setitem__ { - try { - $action - } catch (std::out_of_range& e) { - SWIG_exception(SWIG_IndexError,const_cast<char*>(e.what())); - } - } - - %exception std::list::__delitem__ { - try { - $action - } catch (std::out_of_range& e) { - SWIG_exception(SWIG_IndexError,const_cast<char*>(e.what())); - } - } - namespace std{ --- 15,18 ---- *************** *** 87,91 **** %extend { ! const_reference __getitem__(int i) { std::list<T>::iterator first = self->begin(); --- 62,66 ---- %extend { ! const_reference __getitem__(int i) throw (std::out_of_range) { std::list<T>::iterator first = self->begin(); *************** *** 102,106 **** else throw std::out_of_range("list index out of range"); } ! void __setitem__(int i, const T& x) { std::list<T>::iterator first = self->begin(); --- 77,81 ---- else throw std::out_of_range("list index out of range"); } ! void __setitem__(int i, const T& x) throw (std::out_of_range) { std::list<T>::iterator first = self->begin(); *************** *** 117,121 **** else throw std::out_of_range("list index out of range"); } ! void __delitem__(int i) { std::list<T>::iterator first = self->begin(); --- 92,96 ---- else throw std::out_of_range("list index out of range"); } ! void __delitem__(int i) throw (std::out_of_range) { std::list<T>::iterator first = self->begin(); Index: std_map.i =================================================================== RCS file: /cvsroot/swig/SWIG/Lib/ocaml/std_map.i,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** std_map.i 8 Mar 2003 17:11:19 -0000 1.2 --- std_map.i 27 Jul 2005 20:09:40 -0000 1.3 *************** *** 6,27 **** // Common implementation ! %include std_common.i ! %include exception.i ! ! %exception std::map::get { ! try { ! $action ! } catch (std::out_of_range& e) { ! SWIG_exception(SWIG_IndexError,const_cast<char*>(e.what())); ! } ! } ! ! %exception std::map::del { ! try { ! $action ! } catch (std::out_of_range& e) { ! SWIG_exception(SWIG_IndexError,const_cast<char*>(e.what())); ! } ! } // ------------------------------------------------------------------------ --- 6,10 ---- // Common implementation ! %include <std_common.i> // ------------------------------------------------------------------------ *************** *** 48,52 **** void clear(); %extend { ! T& get(const K& key) { std::map<K,T >::iterator i = self->find(key); if (i != self->end()) --- 31,35 ---- void clear(); %extend { ! T& get(const K& key) throw (std::out_of_range) { std::map<K,T >::iterator i = self->find(key); if (i != self->end()) *************** *** 58,62 **** (*self)[key] = x; } ! void del(const K& key) { std::map<K,T >::iterator i = self->find(key); if (i != self->end()) --- 41,45 ---- (*self)[key] = x; } ! void del(const K& key) throw (std::out_of_range) { std::map<K,T >::iterator i = self->find(key); if (i != self->end()) *************** *** 87,91 **** void clear(); %extend { ! T& get(K key) { std::map<K,T >::iterator i = self->find(key); if (i != self->end()) --- 70,74 ---- void clear(); %extend { ! T& get(K key) throw (std::out_of_range) { std::map<K,T >::iterator i = self->find(key); if (i != self->end()) *************** *** 97,101 **** (*self)[key] = x; } ! void del(K key) { std::map<K,T >::iterator i = self->find(key); if (i != self->end()) --- 80,84 ---- (*self)[key] = x; } ! void del(K key) throw (std::out_of_range) { std::map<K,T >::iterator i = self->find(key); if (i != self->end()) *************** *** 123,127 **** void clear(); %extend { ! T get(const K& key) { std::map<K,T >::iterator i = self->find(key); if (i != self->end()) --- 106,110 ---- void clear(); %extend { ! T get(const K& key) throw (std::out_of_range) { std::map<K,T >::iterator i = self->find(key); if (i != self->end()) *************** *** 133,137 **** (*self)[key] = x; } ! void del(const K& key) { std::map<K,T >::iterator i = self->find(key); if (i != self->end()) --- 116,120 ---- (*self)[key] = x; } ! void del(const K& key) throw (std::out_of_range) { std::map<K,T >::iterator i = self->find(key); if (i != self->end()) *************** *** 160,164 **** void clear(); %extend { ! T get(K key) { std::map<K,T >::iterator i = self->find(key); if (i != self->end()) --- 143,147 ---- void clear(); %extend { ! T get(K key) throw (std::out_of_range) { std::map<K,T >::iterator i = self->find(key); if (i != self->end()) *************** *** 170,174 **** (*self)[key] = x; } ! void del(K key) { std::map<K,T >::iterator i = self->find(key); if (i != self->end()) --- 153,157 ---- (*self)[key] = x; } ! void del(K key) throw (std::out_of_range) { std::map<K,T >::iterator i = self->find(key); if (i != self->end()) |