logo       

Re: Directors and returning by value.: msg#00081

programming.swig

Subject: Re: Directors and returning by value.

Hi Kerim,

What version of SWIG are you using? SWIG cvs parses your
interface without any warnings on my machine, and does the
right thing in the python test. Note that if you ever get
warning 461, SWIG will not generate any director stubs for
the method. So the result you get in your Python test is
understandable, and the only question is what is causing the
warning.

Cheers,
Mark


On Thu, Nov 13, 2003 at 05:55:55PM +0300, Kerim Borchaev wrote:
> Hello swig,
>
> SWIG doesn't wrap for directors methods that return objects by
> value?
>
> This code:
> //main.i
> %module(directors="1") test
>
> %feature("director");
> %inline %{
> struct D{
> int value;
> };
>
> struct C{
> virtual ~C(){}
> virtual D method(){
> D d;
> d.value = 7;
> return d;
> }
> };
>
> int getValue(C&o){
> D d = o.method();
> return d.value;
> }
> %}
> //////////////////////////
>
> Produces this warning:
>
> main.i:29: Warning(461): Unable to return type D in director method C::method
> (s
> kipping method).
>
> And works like this:
>
> Python 2.3.2 (#49, Oct 2 2003, 20:02:00) [MSC v.1200 32 bit (Intel)] on win32
> Type "help", "copyright", "credits" or "license" for more information.
> >>> import test
> >>> from test import *
> >>> class Derived(C):
> ... def method(self):
> ... d = D()
> ... d.value = 13
> ... return d
> ...
> >>> getValue(Derived())#should return 13
> 7
>
>
>
> Best regards,
> Kerim mailto:warkid@xxxxxxxxx
>
>
> _______________________________________________
> Swig maillist - Swig@xxxxxxxxxxxxxxx
> http://mailman.cs.uchicago.edu/mailman/listinfo/swig
_______________________________________________
Swig maillist - Swig@xxxxxxxxxxxxxxx
http://mailman.cs.uchicago.edu/mailman/listinfo/swig



<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise