From: SourceForge.net <no...@so...> - 2006-11-27 17:24:35
|
Bugs item #1603910, was opened at 2006-11-27 12:24 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=101645&aid=1603910&group_id=1645 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: documentation Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Steven Robbins (smr99) Assigned to: David M. Beazley (beazley) Summary: %extend code uses "self", not "$self" Initial Comment: I'm guessing this is a doc bug but it might actually be a code generation bug. Section 6.17 Class extension describes using $self to access the "this" pointer in an extension function. However, the generated code does not expand "$self". One can use the bare "self" correctly, however. Demonstration using swig 1.3.29: $cat newsignature.i %module test %include std_string.i %{ #include <stdexcept> %} %inline { class Element { public: int getString( std::string& result ); }; } %extend Element { std::string getString() throw( std::runtime_error ) { std::string result; int status = $self->getString( result ); if ( status != 0 ) throw std::runtime_error( "foo" ); return result; } } $swig -c++ -java newsignature.i $less newsignature_wrap.cxx [...] SWIGINTERN std::string Element_getString__SWIG_1(Element *self){ std::string result; int status = $self->getString( result ); if ( status != 0 ) throw std::runtime_error( "foo" ); return result; } ... which of course does not compile. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=101645&aid=1603910&group_id=1645 |