|
Re[3]: Directors and passing args by value.: msg#00114programming.swig
I'm sorry - I've mistaken. Passing enum to function is ok. Returning - this is what doesn't work. Best regards, Kerim mailto:warkid@xxxxxxxxx Tuesday, November 18, 2003, 3:46:36 PM, you wrote: KB> Hello. KB> I've uncommented that "dangerous" typemap;-) It works well except KB> it doesn't work with enums. KB> What could I do to make it handle them? KB> Thanks. KB> Kerim mailto:warkid@xxxxxxxxx KB> Tuesday, November 18, 2003, 10:28:21 AM, you wrote: MR>> I actually added the typemap to do this to python.swg many MR>> months ago, but commented it out with the note "this is rather MR>> dangerous." ;-) I probably should have been more explicit at MR>> that time, since I can't remember now exactly what concerned MR>> me about it (other than the possibility of the python method MR>> hanging on to references to its arguments). Maybe there's MR>> nothing terribly wrong with that typemap as it stands, or MR>> maybe there's another approach that would be safer. Any MR>> typemap/object ownership gurus care to comment? MR>> Mark MR>> On Mon, Nov 17, 2003 at 12:08:20PM +0300, Kerim Borchaev wrote: >>> Hello. >>> >>> I've checked CVS version and now it seems that directors aren't >>> generated for methods with args passed by value. Any plans to >>> support it? >>> >>> Best regards, >>> Kerim mailto:warkid@xxxxxxxxx >>> >>> Thursday, November 13, 2003, 8:16:02 PM, you wrote: >>> >>> MR> Hi Kerim, >>> >>> MR> What version of SWIG are you using? SWIG cvs parses your >>> MR> interface without any warnings on my machine, and does the >>> MR> right thing in the python test. Note that if you ever get >>> MR> warning 461, SWIG will not generate any director stubs for >>> MR> the method. So the result you get in your Python test is >>> MR> understandable, and the only question is what is causing the >>> MR> warning. >>> >>> MR> Cheers, >>> MR> Mark >>> >>> >>> MR> 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 >>> >>> KB> _______________________________________________ KB> Swig maillist - Swig@xxxxxxxxxxxxxxx KB> 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> |
|---|---|---|
| Previous by Date: | Re[2]: Directors and passing args by value.: 00114, Kerim Borchaev |
|---|---|
| Next by Date: | RE: SWIG-PERL-Vector of pointers: 00114, Nair, Sanjay S |
| Previous by Thread: | Re[2]: Directors and passing args by value.i: 00114, Kerim Borchaev |
| Next by Thread: | Re: Directors and passing args by value.: 00114, Mark Rose |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |